Navigation

Developer toolsOpen source

session-outline

A side pane for Claude Code that turns a long session into a table of contents, so you can jump to any prompt, answer heading or changed file instead of scrolling.

Designed and built by me.

  • DesktopLive

InstallGitHub

Why I made it

A friend asked me whether there was a handy app for Claude Code, Anthropic’s AI coding assistant for the terminal, that shows the history as a list of headings instead of one long scroll. I couldn’t find one, so I built this plugin.

session-outline adds a side pane next to the chat. It lists every prompt, the headings of each answer, the files that changed and the turns that went wrong. Click a row, or press Enter, and the chat scrolls to that message.

What the pane looks like

3 prompts
h: ● Headings  f: ● Files  b: ○ Only ⭐  k: ○ Compact chat
i: By file  p: Past sessions  x: Export  e: Expand all  r: ↻
[/ filter: prompts, headings, files]
──────────────────────────────────────────
  ▸ 1. ✗ fix the build
 ▶▾ 2. ⭐ add documentation
       · Installation
       · Usage
       ✎ README.md, ~build.sh · ⚙ 12 · ⏱ 2m 10s
──────────────────────────────────────────
Turn 2:  o: Expand/collapse  s: ⭐  y: Copy answer  a: Ask again…  d: Diff
Text mock-up of the pane: two turns, the second one expanded and bookmarked.

Features

  • Outline of turns: prompt → answer headings → changed files, with the time and tokens of each turn.
  • Jump to a message in the chat by clicking a row or pressing Enter.
  • Diff of the selected turn’s changes, right in the pane.
  • Markers: ⚠ a tool returned an error, ✗ a test command failed, ⏹ the turn was interrupted, ⭐ bookmark.
  • By file: every changed file with the turns that touched it.
  • Past sessions of the project, with search. Click one to copy claude --resume <id>.
  • Compact chat: hides the tool-call rows. ctrl+o still shows everything.
  • Bookmarks, copy the answer, ask again, and export the whole outline as Markdown.
  • Filter by prompts, headings and files.
  • English and Russian interface. By default the pane follows Claude Code’s language setting, then the language you write your prompts in, then $LANG. You can also set it in the plugin’s options in /plugin.

Install

The plugin installs from my GitHub repository, which works as its own plugin marketplace. At the prompt of a Claude Code terminal session:

/plugin install session-outline --marketplace gynsus/session-outline

Answer y to add the marketplace, then pick a scope (user scope is the usual choice).

From a shell:

claude plugin install session-outline --marketplace gynsus/session-outline

In the Claude Code desktop app: click + next to the prompt box → Plugins → Add marketplace with gynsus/session-outline → Add plugin.

The pane opens by itself in a wide terminal (fullscreen layout, about 110–144 columns and up). Otherwise run /outline.

Keys

The pane must have focus for the keys to work: click it, press ctrl+x tab, or run /outline.

Key What it does
↑ ↓ Move between rows
Enter / click Jump to that prompt or heading in the chat
o Expand or collapse the selected turn
s Bookmark the turn ⭐
y Copy the answer
a Send the prompt again (press twice)
d Show the diff
h f b k Toggle headings, files, only bookmarked turns, compact chat
i Files view
p Past sessions
x Export the outline as Markdown
e Expand all
r Refresh
q Back
Esc Return to the prompt

Limitations

  • ← and → do nothing in the pane: a plugin pane gets no keystrokes of its own.
  • After a restart, older messages are drawn only once you scroll to them, so the first jump to them goes in steps. If it stops, scroll up a bit and press Enter again.
  • Rows are matched to messages by text, so two identical prompts can be swapped after a restart.
  • Files changed by shell commands (sed -i, >, mv, …) are a guess. They are marked ~ and have no diff.
  • Diffs have no real line numbers.
  • Time and tokens are shown only for turns that finished while the plugin was loaded. Tokens include cache reads, so the numbers are large.

License and feedback

session-outline 0.1.0 is open source under the MIT License. The code is on GitHub. Bug reports and ideas are welcome in issues.

Details

Platforms
  • Desktop — live
Role
Designed and built by me.
Category
Developer tools
Built with
TypeScript
Source
Open source · Repository

More projects

All projects
  • Developer toolsOpen source

    Knoverge

    A shared, self-hosted knowledge base for people and AI agents, with review and version history.

    • WebIn development

    Built with TypeScript · React · Node.js