Feature Request: Chat conversation outline & turn navigation (like Ophel Atlas)
- Dominant language
- TypeScript
- Stars
- 193k
- Forks
- 42.4k
- PR merge metrics
- PR metrics pending
Description
## Problem Statement
When using Copilot Chat in **Agent mode** (or Edit mode), long conversations become extremely difficult to navigate:
### Pain Point 1: Uncontrollable auto-scroll
In Agent/Edit modes, the chat **constantly auto-scrolls to the bottom** whenever tools execute or responses stream. There is no setting to disable this behavior. The auto-scroll logic in the source code is hardcoded:
```typescript
// chatEditor.ts / chatViewPane.ts
autoScroll: mode => mode !== ChatModeKind.Ask
```
This means if you want to read the model's earlier reasoning while tools are running, you have to constantly fight the scroll. Manually scrolling up does trigger `_suppressAutoScroll` temporarily, but it resets on the next response.
### Pain Point 2: No way to navigate between conversation turns
Within a single long chat session, there is **no way** to quickly jump to a specific previous exchange. You can't:
- Jump to "the 3rd question I asked" or "the 5th response"
- See an outline/TOC of the conversation
- Navigate between turns with keyboard shortcuts (Alt+↑/Alt+↓ just switch between different sessions, not turns within a session)
The only navigation options are `Ctrl+F` (search) and `Ctrl+Home`/`Ctrl+End` (top/bottom), which are insufficient for long Agent sessions.
---
## Inspiration: Ophel Atlas Chrome Extension
The Chrome extension [Ophel Atlas](https://chromewebstore.google.com/detail/ai-chat-organizer-outline/lpcohdfbomkgepfladogodgeoppclakd) (4.9★, 9,000+ users) provides exactly this kind of functionality for web-based AI chats (ChatGPT, Gemini, Claude):
| Feature | Description |
|---------|-------------|
| **Real-time outline** | Auto-generated TOC from conversation, click to jump to any section |
| **Turn navigation** | Easily navigate between question/response pairs |
| **Position tracking** | Highlights current reading position so you know where you are |
| **Global search** | Search across all sessions, prompts, and settings |
| **Session organization** | Folders, tags, pinning for managing many sessions |
---
## Proposed Solution for VS Code Copilot Chat
### Minimum Viable (Quick Wins)
1. **Add a `chat.scrollToBottom` setting** with options: `"always"`, `"ifAtBottom"`, `"never"` — so users can control auto-scroll behavior
2. **Add commands to navigate between turns** within the current session (not between sessions):
- `workbench.action.chat.previousRequest` — jump to previous user request
- `workbench.action.chat.nextRequest` — jump to next user request
- `workbench.action.chat.previousResponse` — jump to previous agent response
- `workbench.action.chat.nextResponse` — jump to next agent response
### Ideal (Full Solution)
3. **Conversation Outline sidebar** — an auto-generated table of contents showing all turns in the current session:
- Each turn shown as a collapsible heading (user question / agent response)
- Click to scroll to that position
- Highlights current position
- Could be integrated into the existing chat view or as a separate panel
### Nice to Have
4. Search across sessions, export conversations, session folders/tags
---
## Related Issues
- #304608 — "Prevent scroll jumping in agent chats" (open, labeled `ux` + `polish`, only 2 👍)
- #264602 — "Chat sessions editor should auto-scroll" (closed, related but opposite problem)
---
## Why This Matters
As AI-assisted development becomes mainstream, users are having **longer and more complex conversations** with Copilot Agent. A 20-turn debugging session is common. Without proper navigation tools, users waste significant time scrolling and searching — undermining the productivity gains that Copilot is supposed to provide.
This is not just "polish" — it's a core UX gap that affects every heavy Copilot user daily.
Contributor guide
Assessment
This issue has not been assessed yet.