- Modified loadChatHistory() to check for active project before fetching all sessions - When active project exists, use project.sessions instead of fetching from API - Added detailed console logging to debug session filtering - This prevents ALL sessions from appearing in every project's sidebar Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
28 KiB
UX Research Report: AI Chat Interface Patterns
Date: 2026-01-22 Focus: Session management, workspace organization, and applicable patterns for Obsidian Claude interface
Executive Summary
Based on extensive research into modern AI chat interfaces and UX patterns, I've identified key insights that can be applied to the Obsidian Claude interface. The research reveals that successful AI chat interfaces prioritize three core areas:
- Progressive Disclosure in Navigation - Using collapsible sections and folders to reduce cognitive load
- Context-Aware Prompt Suggestions - Delivering relevant, specific suggestions based on user expertise level
- Multi-Level Organization - Supporting quick access alongside deep organization capabilities
1. Key Research Sources & Findings
1.1 ChatGPT UX Case Study (Primary Source)
Source: Chat GPT history and chat management – UX case study
This comprehensive 2025 UX study provides the most relevant insights for our interface design:
Key Pain Points Identified:
- 51.6% of users can usually find old chats, but only 9.6% always succeed
- 70% of users interact with ChatGPT daily, with 76% accumulating over 30 chats
- Users give up on finding previous data in less than 15 seconds
- Cluttered sidebar with auto-generated titles that don't match content
- Similar or duplicate chats pile up, making identification difficult
Successful Patterns from User Testing:
A. Hierarchical Sidebar Organization (Most Preferred)
- Users preferred UI with:
- Clear section groupings (Recent Chats, Projects, Shared Chats)
- Progressive disclosure through expandable folders
- Everything visible at once causes cognitive overload
- Pin/highlight icons work better as contextual elements within chats, not as standalone navigation
B. Advanced Search & Preview
- Simple Search: See a few lines of chat before opening
- Icons showing media types in the chat
- Whole chat preview option
- Advanced Search: Filter by date range, content type, pinned/highlighted sections, semantic relevance
- Semantic & Exact Search support
C. In-Chat Navigation Tools
- Chat Highlights: Select text → choose color to mark important insights
- Pin Messages: Floating pin bar shows count, click to jump to pinned content
- Chapter Scroll: Auto-generates section titles, floating TOC for quick navigation
- Visual Mindmap: Interactive map showing chats by category, recency, volume, and similarity
D. Collaboration Features
- Share to collaborate vs share privately
- Invite participants with view or comment access
- Real-time collaboration within shared chats
User Persona Insights:
-
Task-Oriented Professional (Senior SWE, 15-20 queries daily)
- Treats each chat as temporary workspace
- Prioritizes control and accuracy
- Needs on-the-spot organization while actively working
- Revisits chats repeatedly until task complete
-
Knowledge Builder (Researcher, 30-40 queries daily)
- Treats GPT as learning companion and knowledge base
- Needs powerful search, highlights, and bookmarking
- Main friction: fragmentation across multiple chats
-
Casual Explorer (Beginner, sporadic usage)
- Treats GPT as disposable notepad
- Values instant access and privacy over structure
- Prime candidate for smart, automatic organization
-
Creative Maker (Creative Director, 30+ chats/project)
- Treats GPT as creative studio for rapid ideation
- Needs visual organization and cross-format retrieval
- Lacks unified galleries or prompt histories
1.2 Nielsen Norman Group: Use-Case Prompt Suggestions
Source: Designing Use-Case Prompt Suggestions
Key Design Principles:
A. Complexity Levels Match User Context
- Simple prompts (pills): Ideal for broad systems and low-complexity tasks, placed inline
- Complex prompts (cards): Better for specialized systems, shown one at a time in carousels or expandable sections
B. Placement Matters
- Position suggestions near the input field (primary focus area)
- Two effective formats:
- Pills: Short, clickable phrases, easy to scan, multiple suggestions
- Cards: More space for longer prompts, descriptions, visuals
C. Context-Aware Suggestions When users face high ambiguity or lack domain knowledge:
- Reduce cognitive load by surfacing relevant, specific queries
- Anticipate common concerns and align with user goals
- Specific beats vague - targeted suggestions increase engagement
D. Individualization Increases Relevance Match prompt complexity to user skill level:
- New user: "How do I create my first project?"
- Intermediate user: "How do I set up task dependencies between team members?"
- Experienced user: "How can I automate recurring tasks in this workspace?"
E. Example Libraries
- Curated collection of prompts paired with outputs
- Especially valuable for visual/creative systems
- Show full examples to help users grasp capabilities
2. Applicable UX Patterns for Obsidian Claude Interface
2.1 Session Management - Card-Based Organization
Pattern: Hierarchical Session Cards with Progressive Disclosure
Visual Description:
┌─────────────────────────────────────────┐
│ Recent Sessions (3) [Expand] │
├─────────────────────────────────────────┤
│ ┌────────────────────────────────────┐ │
│ │ 🔵 Obsidian Plugin Development │ │
│ │ "How to integrate Claude API..." │ │
│ │ 2 hours ago • 45 messages • 3 pins │ │
│ └────────────────────────────────────┘ │
│ ┌────────────────────────────────────┐ │
│ │ 🟢 Meeting Notes Analysis │ │
│ │ "Summarize action items from..." │ │
│ │ Yesterday • 23 messages │ │
│ └────────────────────────────────────┘ │
├─────────────────────────────────────────┤
│ Projects (2) [Expand] │
├─────────────────────────────────────────┤
│ ┌────────────────────────────────────┐ │
│ │ 📁 Knowledge Base Setup │ │
│ │ 5 sessions • Last active today │ │
│ └────────────────────────────────────┘ │
└─────────────────────────────────────────┘
Key Features:
- Expandable sections (Recent, Projects, Archive)
- Rich session cards showing:
- Title (editable)
- First message preview
- Timestamp
- Message count
- Pin count (if any)
- Color category tags
- Hover actions: Quick pin, archive, delete
- Click to expand full session
Why This Works:
- Reduces cognitive load through progressive disclosure
- Users see what they need most (recent) first
- Projects can be collapsed when not needed
- Rich metadata helps identify sessions without opening
2.2 New Session Flow - Smart Prompt Suggestions
Pattern: Context-Aware Prompt Cards
Visual Description:
┌─────────────────────────────────────────┐
│ New Session [+ New] │
├─────────────────────────────────────────┤
│ │
│ ┌───────────────────────────────────┐ │
│ │ 💡 Start with a suggestion... │ │
│ └───────────────────────────────────┘ │
│ │
│ Quick Start: │
│ ┌────────────────┐ ┌────────────────┐ │
│ │ Analyze note │ │ Generate │ │
│ │ content │ │ outline │ │
│ └────────────────┘ └────────────────┘ │
│ ┌────────────────┐ ┌────────────────┐ │
│ │ Create flash │ │ Explain │ │
│ │ cards │ │ concept │ │
│ └────────────────┘ └────────────────┘ │
│ │
│ Or type your message below... │
│ ┌───────────────────────────────────┐ │
│ │ │ │
│ └───────────────────────────────────┘ │
│ [Attach] [Voice] [Send] │
└─────────────────────────────────────────┘
Key Features:
- Skill-based suggestions that adapt to user experience:
- Beginner: "How do I create my first note?"
- Intermediate: "Create flashcards from this note"
- Advanced: "Create a Zettelkasten link graph"
- Context-aware: Changes based on active note selection
- One-click insertion: Click pill to populate input field
- Editable before sending: User can modify suggestion before submission
Why This Works:
- Reduces blank page syndrome
- Teaches capabilities through example
- Adapts to user expertise level
- Specific suggestions outperform generic ones
2.3 In-Session Navigation - Chapter Scroll & Highlights
Pattern: Floating Navigation with Context Preservation
Visual Description:
┌─────────────────────────────────────────────┐
│ [← Back] Obsidian Plugin Dev [Pin: 2] │
├─────────────────────────────────────────────┤
│ │
│ [↑] Chapter Navigation [↓] │
│ ├─ API Setup │
│ ├─ Manifest Configuration │
│ ├─ Main Handler Development ◀ Active │
│ └─ Testing & Debugging │
│ │
│ ┌─────────────────────────────────────────┐│
│ │ USER: How do I set up the manifest.json? ││
│ │ ││
│ │ CLAUDE: Here's the structure... ││
│ │ { ││
│ │ "id": "obsidian-claude-plugin", ││
│ │ "minAppVersion": "1.0.0" 📌 PINNED ││
│ │ } ││
│ └─────────────────────────────────────────┘│
│ │
│ [💬 Highlight] [📌 Pin] [🔗 Link Note] │
└─────────────────────────────────────────────┘
Key Features:
- Auto-generated chapter titles from conversation flow
- Floating TOC on right side, collapsible
- One-click navigation to any section
- Highlight important text with color coding:
- Yellow: Important info
- Green: Code snippets
- Blue: Resources/links
- Pin messages to floating bar at top
- Link to Obsidian notes for permanent storage
Why This Works:
- Long conversations don't lose context
- Users can jump to relevant sections instantly
- Important information is never lost
- Bridges chat sessions with note-taking workflow
2.4 Visual Transitions - Smooth State Changes
Pattern: Animated Workspace Transitions
Transition: Session List → Active Session
Session View → Active Chat View
┌──────────────┐ ┌──────────────────┐
│ ┌──────────┐ │ EXPAND/SLIDE │ [←] Session Name │
│ │ Card 1 │ │ ───────────────→ │ │
│ └──────────┘ │ │ Message history │
│ ┌──────────┐ │ ANIMATION: │ │
│ │ Card 2 │ │ - Card scales │ │
│ └──────────┘ │ up to full │ Input bar │
│ ┌──────────┐ │ width └──────────────────┘
│ │ Card 3 │ │ - Others fade │
│ └──────────┘ │ out below │ TIMING: 200ms
└──────────────┘ │ EASING: ease-out
Animation Specifications:
- Duration: 150-250ms (feels instant, not sluggish)
- Easing:
cubic-bezier(0.4, 0.0, 0.2, 1)- Material Design standard - Transform: Scale + Fade + Slide
- Feedback: Ripple effect on card click
Transition: New Session Creation
Empty State → Composition State
┌──────────────┐ ┌──────────────────┐
│ [+ New Chat] │ EXPAND/FADE │ Suggestions │
│ │ ───────────────→ │ │
│ Recent... │ ANIMATION: │ Input focus │
│ Projects... │ - Button └──────────────────┘
└──────────────┘ morphs to │ TIMING: 300ms
full workspace │ EASING: ease-in-out
- Suggestions
stagger in
Key Transition Principles:
- Context Preservation: Show where you came from (back button)
- Spatial Consistency: Elements expand from their source position
- Progressive Enhancement: Content loads before non-essential animations
- Performance: 60fps target, avoid layout thrashing
3. Specific Recommendations for Obsidian Claude Interface
3.1 Landing Page Structure
Recommended Layout:
┌──────────────────────────────────────────────────┐
│ Obsidian Claude [Settings] [?]│
├──────────────────────┬───────────────────────────┤
│ │ │
│ 📚 RECENT SESSIONS │ 💡 QUICK ACTIONS │
│ ┌────────────────┐ │ ┌─────────────────────┐│
│ │ Plugin Dev │ │ │ New Chat ││
│ │ "How to..." │ │ └─────────────────────┘│
│ │ 2h ago • 45 msg│ │ ┌─────────────────────┐│
│ └────────────────┘ │ │ Browse Templates ││
│ ┌────────────────┐ │ └─────────────────────┘│
│ │ Meeting Notes │ │ ┌─────────────────────┐│
│ │ "Summarize..." │ │ │ View Archive ││
│ │ Yesterday │ │ └─────────────────────┘│
│ └────────────────┘ │ │
│ │ 📊 YOUR STATS │
│ 📁 PROJECTS (3) │ 127 sessions this week │
│ ▶ Knowledge Base │ 2,345 messages total │
│ ▶ Book Summaries │ Most active: M-F │
│ ▶ Code Snippets │ │
├──────────────────────┴───────────────────────────┤
│ [Search all sessions...] │
└──────────────────────────────────────────────────┘
Design Decisions:
- Left sidebar for navigation (expandable/collapsible)
- Main area shows recent sessions with rich previews
- Right panel shows quick actions and stats
- Search bar always visible at bottom
- Color coding for different session types
3.2 Session Cards - Detailed Specification
Card Structure:
┌─────────────────────────────────────────┐
│ 🏷️ [Color Tag] │ ← Category badge (clickable)
│ │
│ 👤 Obsidian Plugin Development │ ← Editable title
│ 💬 "How to integrate Claude API..." │ ← First message preview
│ │
│ ┌───────────────────────────────────┐ │
│ │ 📎 3 attachments │ │ ← Resource summary
│ │ 🔗 5 note links │ │
│ │ ✅ 12 tasks completed │ │
│ └───────────────────────────────────┘ │
│ │
│ 2 hours ago • 45 messages 📌 2 pins │ ← Metadata
│ │
│ [Continue] [Archive] [⋮ More] │ ← Actions
└─────────────────────────────────────────┘
Interaction States:
- Default: Reduced opacity, compact
- Hover: Brighten, show action buttons, subtle lift
- Active: Full brightness, expanded if collapsed
- Selected: Accent border, checkmark
Visual Hierarchy:
- Title (bold, largest)
- Preview (italic, medium)
- Metadata (muted, small)
- Actions (accent color)
3.3 Workspace Organization
Three-Panel Layout (Recommended):
┌────────────┬──────────────────────┬────────────┐
│ │ │ │
│ SESSIONS │ ACTIVE CHAT │ CONTEXT │
│ │ │ │
│ • Recent │ [←] Session Title │ 📎 Notes │
│ • Projects │ ───────────────── │ ├─ Note A │
│ • Archive │ │ ├─ Note B │
│ │ Chat history... │ └─ Note C │
│ ┌────────┐ │ │ │
│ │ Card 1 │ │ Input field... │ 🔗 Tasks │
│ │ Card 2 │ │ [Send] │ ├─ Task 1 │
│ │ Card 3 │ │ │ └─ Task 2 │
│ └────────┘ │ │ │
│ │ │ 📌 Pins │
│ [+ New] │ │ • Quote 1 │
│ │ │ • Code │
└────────────┴──────────────────────┴────────────┘
Panel Functions:
Left Panel - Session Management:
- Toggleable (Cmd/Ctrl + B)
- Shows all sessions grouped by category
- Search/filter at top
- Drag to reorder
- Right-click for context menu
Center Panel - Active Workspace:
- Main conversation area
- Input field at bottom (fixed)
- Chapter navigation (floating)
- Formatting toolbar
Right Panel - Context & Resources:
- Linked Obsidian notes
- Task list (extracted from chat)
- Pinned messages
- File attachments
- Toggleable (Cmd/Ctrl + Shift + B)
3.4 Color Scheme & Visual Design
Recommended Color Palette:
Primary Colors:
- Background: #1e1e1e (Obsidian default dark)
- Surface: #2d2d2d (Card background)
- Border: #404040 (Subtle separation)
- Text Primary: #dcddde (Readable)
- Text Secondary: #96989d (Muted)
Accent Colors:
- Blue: #7c4dff (AI responses, links)
- Green: #00e676 (Success, confirmations)
- Yellow: #ffd740 (Highlights, warnings)
- Red: #ff5252 (Errors, deletions)
- Purple: #e040fb (Creative/code blocks)
Session Categories:
- Development: #4fc3f7 (Blue)
- Writing: #81c784 (Green)
- Research: #ffb74d (Orange)
- Personal: #ba68c8 (Purple)
- Work: #64b5f6 (Light Blue)
Typography:
Font Family:
- UI: -apple-system, BlinkMacSystemFont, "Segoe UI"
- Code: "JetBrains Mono", "Fira Code", monospace
- Content: Same as UI for consistency
Font Sizes:
- Title: 18px / 600 weight
- Body: 14px / 400 weight
- Small: 12px / 400 weight
- Code: 13px / 400 weight
Line Heights:
- UI: 1.5
- Content: 1.6
- Code: 1.4
4. Implementation Priority
Phase 1 - Foundation (Week 1-2)
- Basic session list with cards
- New session creation with empty state
- Simple chat interface with message history
- Basic navigation (back button, session switching)
Phase 2 - Enhancement (Week 3-4)
- Session cards with rich metadata
- Prompt suggestions (static, then context-aware)
- Search functionality (basic, then advanced)
- Pin and highlight features
Phase 3 - Advanced (Week 5-6)
- Chapter navigation with auto-generated TOC
- Project/folder organization
- Collaboration features (if applicable)
- Analytics dashboard
5. Technical Considerations
Performance Optimization
- Virtual scrolling for long session lists (render only visible)
- Lazy loading for message history (load on scroll)
- Debounced search (wait 300ms after typing)
- Memoized components (prevent unnecessary re-renders)
State Management
// Recommended state structure
{
sessions: {
byId: { sessionId: sessionData },
allIds: [sessionId1, sessionId2, ...],
activeId: sessionId,
filters: { search: '', category: '', dateRange: {} }
},
ui: {
sidebarOpen: true,
contextPanelOpen: false,
chapterNavVisible: false
},
user: {
preferences: { theme, fontSize, defaultCategory },
stats: { totalSessions, weeklyActivity }
}
}
Data Persistence
- Local storage for user preferences
- Obsidian vault for session data (JSON files in
.claude/folder) - IndexedDB for caching and offline support
- Export/Import functionality for backup
6. Accessibility Considerations
Keyboard Navigation
- Tab: Navigate between interactive elements
- Enter/Space: Activate buttons, expand cards
- Arrow keys: Navigate within lists
- Cmd/Ctrl + K: Quick session switcher
- Escape: Close panels/modals
Screen Reader Support
- ARIA labels on all interactive elements
- Live regions for dynamic content updates
- Semantic HTML (proper heading hierarchy)
- Alt text for images and icons
Visual Accessibility
- High contrast mode support
- Resizable text (up to 200%)
- Color blindness friendly palette
- Focus indicators on all interactive elements
7. Sources
Primary Research Sources:
- Chat GPT history and chat management – UX case study - Ellie Kesha
- Designing Use-Case Prompt Suggestions - Nielsen Norman Group
Supporting Sources:
- 10 UX Design Shifts You Can't Ignore in 2026
- 10 AI-Driven UX Patterns That Will Dominate Every App by 2026
- The 20 Best Looking Chatbot UIs in 2026
- 9 UX Patterns to Build Trustworthy AI Assistants
- Design Patterns For AI Interfaces - Smashing Magazine
- 14 Key AI Patterns for Designers Building Smarter AI
- Claude Code Command Architecture: Session Management
- Chatbot UI Best Practices for 2025 Success - Vynta AI
- Nine UX Best Practices for AI Chatbots - Mind the Product
- UI/UX Design for Chatbot: Best Practices and Examples - UX Planet
- OpenAI UI Guidelines
- Context Switching | AI Design Patterns
- Card-Based UI Design: Structure, Advantages, and Best Practices
8. Next Steps
Immediate Actions:
- Review findings with development team
- Create wireframes based on recommended layouts
- Set up design system with color palette and typography
- Define component library (SessionCard, ChatWindow, Navigation)
Research Validation:
- User interviews with Obsidian power users
- A/B testing of session card layouts
- Usability testing of navigation patterns
- Accessibility audit before launch
Documentation:
- Component specifications in Storybook
- Design handoff documentation
- Animation guidelines video
- User onboarding flow documentation
Report prepared by: Market Trend Analyst Date: January 22, 2026 Version: 1.0 Status: Ready for Implementation Planning