Vectrum
Sign In

README: the composer, its drawers and worktrees as they work now

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JjohannSocommitted 1 parent 53b9675commit5ad3ffc

Showing 1 changed file with 57 additions and 27 deletions.

+57−27README.mdView File
@@ -30,18 +30,32 @@ Gruvbox, Rosé Pine, Solarized and Dracula.
3030 - Settle a thread to stop its process and file it under **Settled**. Its transcript stays,
3131 and the next message resumes the conversation.
3232 - A new thread opens on a start screen, "What should we build in *project*?", with the
33- project as a switcher, a way to start without a project, and the branch it starts from.
34- - A model picker across providers: Claude's models (current ones, plus legacy models
35- folded away), every model Pi's configured providers offer, and every model route jcode's
36- logins and provider profiles make available. Star models to keep them under **Favorites**,
37- search across all of them, and pick the first nine with Ctrl+1–9. Picking another
38- provider's model starts a thread of that kind in its place.
39- - A reasoning picker: Low to Max (as the model supports), Claude's Ultracode and
40- Ultrathink, and Fast mode on models that have it. Pi threads list Pi's thinking levels;
33+ project as a picker (No project, the projects, Add project) and a way to start without a
34+ project ("What should we work on?").
35+ - The composer is laid out like T3 Code's. Its footer holds the model, reasoning and access
36+ controls (they lose their labels, then fold into **…**, when the composer is narrow), the
37+ attach button and the send button, which turns into stop, steer or queue while the agent
38+ works. Its placeholder says what it takes: a message, your own answer to a question,
39+ feedback on a plan.
40+ - Under a new thread's composer hangs T3's strip: the machine, the workspace (**Current
41+ checkout**, **New worktree** or **Previous worktree**) and the branch, with a searchable
42+ branch picker (current, worktree, remote and default branches, **Create new ref**, and
43+ **Start from origin** for a new worktree). Settings → Appearance → Composer context keeps
44+ it there once the thread has started.
45+ - A model picker across providers (Ctrl+Shift+M): a rail with **Favorites** and each provider,
46+ Claude's models (current ones, plus legacy models folded away), every model Pi's configured
47+ providers offer, and every model route jcode's logins and provider profiles make available.
48+ Star models to keep them under Favorites, search across all of them, pick the first nine
49+ with Ctrl+1–9, and switch providers with Ctrl+Shift+↑/↓. Picking another provider's model
50+ starts a thread of that kind in its place.
51+ - A reasoning menu (Ctrl+Shift+E): Low to Max (as the model supports, its default marked),
52+ Claude's Ultracode and Ultrathink, and Fast Mode on models that have it. Pi threads list Pi's thinking levels;
4153 jcode threads offer effort levels on its Anthropic, OpenAI and OpenRouter routes.
4254 All of it switches live.
43- - An access picker: Supervised, Auto-accept edits, Auto, Plan or Full access. Pi and jcode
44- have no approval prompts, so their threads always run with full access.
55+ - An access menu (Ctrl+Shift+A): Supervised, Auto-accept edits, Auto or Full access. Pi and
56+ jcode have no approval prompts, so their threads always run with full access. With plan
57+ mode turned on (Settings → General → Legacy features), a Build/Plan toggle and Shift+Tab
58+ switch Claude into plan mode and back.
4559 - Finished turns fold their tool calls and interim messages into one **Worked for 12s** row
4660 above the answer. Click it to unfold.
4761 - Under each turn that touched files, **N changed files +a −r** with a folder tree and
@@ -50,22 +64,29 @@ Gruvbox, Rosé Pine, Solarized and Dracula.
5064 touched.
5165 - Streaming Markdown with a copy button on every code block, and tool calls as
5266 collapsible cards with their input and output.
53- - Inline permission prompts (Allow, Deny, "Always allow" / "Accept all edits"), and Pi
54- extensions' confirm and choice dialogs as one-click questions.
55- - Claude's questions (AskUserQuestion) open as a form on top of the composer, one question
56- at a time with tabs between them. Pick an option by click or with 1–9, tick several on
57- multi-select questions, type your own answer in the composer, or skip. What you answered
58- stays in the transcript.
59- - Attachments: images are sent inline, other files by path. A ring shows how full the
60- context window is.
67+ - What the agent waits on docks on top of the composer, as in T3 Code: an approval (the
68+ command or file, **Decline**, **Approve**, and **Cancel** or **Always allow this session**
69+ under **…**), Claude's questions (one at a time; pick with a click or 1–9, a single choice
70+ moves on by itself, tick several on multi-select ones, or type your own answer in the
71+ composer; **Previous**, **Next question**, **Submit answers**; fold or dismiss it), a Pi
72+ extension's confirm or choice, or Claude's plan (**Plan ready**, then **Implement**,
73+ **Implement in a new thread**, or type feedback and **Refine**). The transcript keeps what
74+ you answered.
75+ - Docked there too: queued messages (drag to reorder, edit in the composer with Alt+↑, send
76+ now as a steer, remove), work left running in the background ("Running: …" with **Stop**),
77+ a usage limit, and the agent's task list with its progress.
78+ - Ctrl+S puts the prompt aside; a **Stash** tab beside the composer brings it back.
79+ - Attachments: images are sent inline, other files by path. `@` lists the thread folder's
80+ files and folders to mention. An optional ring (Settings → General → Legacy features)
81+ shows how full the context window is, with the numbers and **Compact context** on hover.
6182 - A project panel: the machine, **Open in** your editor (Zed, VS Code, Cursor, VSCodium,
6283 Sublime Text, Kate or the file manager, whichever are installed), the branch with a
6384 switcher, **Commit** (asks the agent to commit, or commit and push), the size of the
6485 uncommitted changes, and the thread's cost.
65- - Background tasks: commands, monitors and subagents Claude leaves running show in a strip
66- above the composer with their age and a stop button. When one finishes, the transcript
67- says so and Claude picks the work back up and reports back on its own. A long-running
68- command can be sent to the background from its tool card, like Ctrl+B in Claude Code.
86+ - Background tasks: when a command, monitor or subagent Claude left running finishes, the
87+ transcript says so and Claude picks the work back up and reports back on its own. A
88+ long-running command can be sent to the background from its tool card, like Ctrl+B in
89+ Claude Code.
6990 - A browser the agent and you share (Ctrl+Shift+E, or the globe in the top bar), on
7091 Vercel's [agent-browser](https://github.com/vercel-labs/agent-browser): each thread has
7192 its own headless Chrome session, which its agent drives with the `agent-browser` CLI
@@ -76,10 +97,14 @@ Gruvbox, Rosé Pine, Solarized and Dracula.
7697 - Threads are saved as you go and come back after a restart, settled ones included; the next
7798 message resumes the conversation. Optionally, threads a crash or restart interrupted
7899 continue on their own.
79- - New threads can start in a git worktree of their own: a fresh `vectrum/<title>` branch
80- checked out under `~/.local/share/vectrum-code/worktrees`, optionally from the branch as
81- origin has it, with submodules filled in. Pick Local or New worktree per thread on the
82- start screen.
100+ - New threads can start in a git worktree of their own, made like T3 Code's when the first
101+ message is sent: a temporary `vectrum/<8 hex>` branch checked out in a folder named after
102+ it (under `~/.local/share/vectrum-code/worktrees/<project>`, or the worktree location in
103+ Settings → Storage), optionally from origin's copy of the base branch, with submodules
104+ filled in. A setup card shows each stage (with **Work locally** and **Cancel**), and the
105+ branch is then renamed after the first message (Settings → Source Control → Worktree
106+ branch naming: a prefix plus a few words, a semantic prefix like `feat/`, or your own
107+ instructions). Ctrl+Shift+L starts in the project's previous worktree instead.
83108 - Thread titles written by a small model from the first message (Settings → Text generation).
84109 - Pin threads to the top, snooze them until later, rename them (right-click a thread card).
85110 The sidebar can group threads by project, fold working threads into a Working section, and
@@ -88,7 +113,7 @@ Gruvbox, Rosé Pine, Solarized and Dracula.
88113 Idle threads, and worktree threads whose pull request merged, can settle on their own.
89114 - Send while the agent works to steer it, or queue the message for after the turn (and
90115 Ctrl+Enter for the other one). Queued messages wait above the composer.
91- - A `/` menu with Claude's commands and skills (`$` for skills alone).
116+ - A `/` menu with Claude's commands and skills (`$` for skills alone), docked on the composer.
92117 - Diffs with hidden whitespace changes, foldable files, line numbers, and a stacked or
93118 side-by-side layout.
94119 - Remote connections, like T3 Code's environments: turn on **Allow remote connections** on
@@ -142,6 +167,11 @@ cargo run --release -- /path/to/project # defaults to the current directory
142167 | --- | --- |
143168 | Enter / Shift+Enter | Send / new line |
144169 | Esc | Interrupt Claude |
170+ | Ctrl+Shift+M / E / A | Model picker / reasoning / access |
171+ | Ctrl+Shift+G / X / H | Branch / workspace / machine (new thread) |
172+ | Ctrl+Shift+L | Start in the previous worktree |
173+ | Ctrl+S | Stash the prompt, or open the stash |
174+ | Alt+↑ | Edit the last queued message |
145175 | Ctrl+N | New thread in the current project |
146176 | Ctrl+O | Add a project folder |
147177 | Ctrl+K | Search threads |