Claude Modsunofficial directory

Interface·terminal·MIT

aside

Ask about the session so far in a read-only side pane. Nothing reaches the main thread.

aside has no screenshot yet: a placeholder terminal with the band above the prompt highlighted

aside opens a read-only chat pane beside the transcript where you ask about the session so far: which files Claude has touched, whether it plans to change the tests. Each answer comes from a fork of the session’s own conversation, run without tools, and nothing goes back into the main thread: Claude never sees your side questions or their answers.

Install

Needs Claude Code 2.1.270 or later with function hooks enabled and a terminal at least 110 columns wide for the pane to dock beside the transcript; narrower, it opens above the prompt.

claude plugin marketplace add JayDoubleu/aside
claude plugin install aside@aside

Run /aside to open the pane, or /aside which files has it touched so far? to open it and ask. Tab puts the cursor in the pane’s input (on 2.1.270 the pane opens focused but the cursor is not in the field yet), Enter asks, Esc hands the keys back to the composer, ctrl+x tab focuses the pane again and ctrl+x x closes it. Clear, under the input, empties the side history.

How it works

Each question is one $.model.fork over the session’s transcript as of the last completed turn. The fork starts from the same messages as the main thread and shares its prompt cache, but it gets no tools, cannot write to the transcript and runs on the session’s model. A fork takes a single user message, so the hook renders your earlier side exchanges into each prompt, the last eight by default.

That costs real tokens even though nothing enters the main context. The footer under each answer says how many: fork · 1244 ms · read 72848 · new 242 · out 100 means the whole session prefix came from the prompt cache at the cache-read rate, 242 tokens were new and the reply was 100. The author measured a question on a 73k-token session at about $0.008 on Haiku, proportionally more on the session’s model, plus about 3,000 uncached tokens right after /compact.

Until the session’s first turn completes there is no snapshot to fork. By default the question is answered at once through $.model.complete over the text of $.session.messages(): uncached, capped at the last 60,000 characters of transcript, without the session’s system prompt, on haiku with a 400-token reply, and marked live in the pane. With liveFallback off the question waits, and the turn.complete hook does one thing: it forks whatever is waiting once the turn ends.

The module reads the transcript and draws the pane, nothing else: no fs, process, http, store, tool or prompt verbs, so it cannot touch the working tree, the network beyond the model call, or the main thread’s prompt. Side history lives in memory; Clear empties it and nothing is written to disk. /aside returns an empty result, so no message lands in the transcript, and the author’s eval shows a trivial prompt gets the same reply with and without the plugin loaded.

Three options, under /config or in settings.json as pluginConfigs["aside@aside"].options:

  • liveFallback (default true): answer before the first turn completes, or queue the question for a fork.
  • liveModel (default haiku): model for live answers, as a --model value. Forks always use the session’s model.
  • maxHistory (default 8, 1 to 50): earlier side exchanges carried in each question’s prompt.

Limitations

  • During a turn, questions are answered from the last completed one: you see Claude’s previous reply, not the work in flight.
  • Answers are cut at 1,200 characters.