
Orrery
Every coding agent. One sidebar. Like the clockwork instrument it's named after, Orrery puts all your models in motion from one place: it drives the agent CLIs you already have installed — Claude Code, Codex (GPT) and Grok — with their complete tool suite, streaming output and permission model. No API keys, no extra accounts: it uses each CLI's own login.

Why Orrery
Chat extensions wrap a completion API. Orrery runs the full agent harness — the same one you get in the terminal — rendered as a fast, glassy chat panel.
The agents
- Three harnesses, one chat — spin the model wheel through Claude, GPT and Grok models; every answer carries a badge for who wrote it
- Brain power — a reasoning-effort slider (Low → Max) passed straight to each CLI; levels a model can't do are greyed out
- Access levels — Read only (explore & plan), Edit files (edits land, commands blocked) or Full access (runs unattended), mapped to each CLI's own permission flags
- Full tool suite — file edits, terminal, search, web fetch, subagents, skills — whatever the active harness ships
The conversation
- Streaming with collapsible thinking sections and one-line tool runs — the tool's name underlines green on success, red on failure, with the output one chevron away
- Live task list — the agent's todo list renders as a checklist that ticks itself
- Files changed — every touched file with +/− line counts; click any state (modified, new, deleted) for a real side-by-side diff
- Cost per run — tokens in/out, duration and price under every answer, plus a running thread total. Rates for every model ship built in; when a CLI reports its own billed cost, that wins
- Attach anything — paste an image, drag files onto the dock, or pick from the workspace / anywhere on disk with
@
The workflow
- Threads — persistent per-workspace conversations: pin, rename inline, duplicate, export to Markdown, full-text search, keyboard navigation
- Run several at once — start a new thread while another works; a badge counts running threads, finished ones get an unread dot. While a run is live the send button splits into stop (deep red) and new thread (dark blue)
- Quick actions — a floating two-orb rail in the chat window (fix grammar, explain, find bugs, tests, refactor, docs, commit message, review); pick, arrange or hide them entirely in settings
- Full screen — drag the panel into the editor area for a centred reading column with a thread sidebar
Make it yours — font size and control size scale separately; slider sensitivity (Relaxed / Standard / Quick); arrange or hide the composer controls; acrylic glass surfaces that respect reduced-transparency settings; custom instructions appended to every request.
Requirements
At least one of these installed and logged in:
- Claude Code —
claude on your PATH, or set sideAgent.cliPath
- Codex CLI —
codex on your PATH, or set sideAgent.codexPath
- Grok CLI —
grok on your PATH, or set sideAgent.grokPath
Orrery finds the CLIs even when VS Code's PATH doesn't include them: the setting is tried as a path, then every PATH entry, then well-known install locations, then — on Windows — the registry PATH.
Getting started
- Install the extension
- Click the Orrery icon in the activity bar
- Pick an agent and model, choose an access level, and start chatting
The settings gear opens the Providers panel: a status dot per harness (logged in / installed / missing), CLI version, who you're signed in as, an enable toggle, and the live model list. Health checks re-run every sideAgent.healthCheckInterval seconds.
How the access levels map
| Level |
Claude Code |
Codex |
Grok |
| Read only |
--permission-mode plan |
-s read-only |
--permission-mode plan |
| Edit files |
--permission-mode acceptEdits |
-s workspace-write |
--permission-mode acceptEdits |
| Full access |
--permission-mode bypassPermissions |
--dangerously-bypass-approvals-and-sandbox |
--permission-mode bypassPermissions |
Settings
| Setting |
Default |
Description |
sideAgent.provider |
claude |
Active harness: claude, codex or grok |
sideAgent.models |
all default |
Model per provider; default uses the CLI's configured model |
sideAgent.effort |
default |
Brain power: low → max, clamped to what the model supports |
sideAgent.access |
edit |
read, edit or full |
sideAgent.instructions |
"" |
Custom instructions appended to every request |
sideAgent.includeActiveFile |
true |
Tell the agent which file is open |
sideAgent.includeSelection |
true |
Send the editor selection with each request |
sideAgent.maxThreads |
50 |
Threads kept per workspace |
sideAgent.providersEnabled |
all true |
Which harnesses appear in the model wheel |
sideAgent.healthCheckInterval |
300 |
Seconds between provider checks; 0 = manual |
sideAgent.modelPricing |
{} |
Per-model rate overrides (provider/model → {in, cachedIn, out} USD per Mtok); built-in rates cover every model already |
sideAgent.cliPath / codexPath / grokPath |
CLI names |
Executable paths |
Building from source
npm install
npm run compile # then press F5 for the Extension Development Host
npx @vscode/vsce package # build a .vsix
License
MIT
| |