See your Claude Code agents, PRs, and worktrees in Raycast — and hand any of them to an agent in one keystroke. Plus an ambient menu-bar read on who needs you.
Note
Built and in daily use as a local Raycast dev extension. Full design in ** SPEC.md**.
Liveness needs no hooks— the extension reads Claude Code's
ownsession registry (
~/.claude/sessions
) directly, so active agents show up out of the box. The bundled helpersadd the richer touches (Focus Tab, per-turn state, Spawn, Undo).
Every dev surface — a PR, an issue, a running agent, a past session, a worktree — carries a one-keystroke hand it to an agent action. That's the whole idea: stop context-switching to a terminal to start work; start it from wherever you already are.
Fourteen commands, grouped by what you reach for.
| Command | Mode | What it does |
|---|---|---|
| Spawn Agent |
New Session Repo pickers (Review PR · New Session · Spawn) are recency-sorted: your
localrepos first, then everything you can access onGitHub— remote picks are cloned on demand.
The Claude Fleet commands in Raycast.
Prerequisites: macOS · Raycast · Claude Code · gh ·
git
· jq
· a terminal (Ghosttyrecommended)
git clone https://github.com/vmc-7645/claude-fleet.git && cd claude-fleet
helpers/install.sh
gh auth login
cd extension && npm ci && npm run dev
Then two one-time steps:
Restart Claude Code so the new hooks load.Grant Raycast Accessibility— System Settings → Privacy & Security → Accessibility → enable** Raycast**. Needed for the tab-focus / keystroke actions;gh
reads work without it.
That's it — open Raycast and search Claude Fleet.
Preferences (Raycast → Extensions → Claude Fleet → ⚙️)
Terminal— where agents open:** Ghostty**(default), iTerm2, or Apple Terminal. Focus Tab / Nudge / Close Tab need Ghostty (per-tab accessibility); every other action (Resume, Fork, Review, Spawn, New Session…) works on any of them.Agent primary action— Focus Tab vs Resume in New Tab (what Enter does on a live agent).** Quick replies**— comma-separated canned follow-ups for the Quick Reply action.** Editor command**—code
/cursor
/ … forOpen in Editor(must be onPATH
).Repos directory— override discovery root. Blank →~/.config/claude-fleet/repos.env
→~/Repos
.
The extension is a thin, declarative UI over a few data sources it reads directly — no daemon, no polling service, nothing to keep running.
Where each fact comes from
| Source | Gives |
|---|---|
~/.claude/sessions/*.json |
|
| Active agents — Claude's own live registry (sessionId · cwd · pid · busy/idle). Authoritative liveness, no hooks needed. | |
~/.claude/projects/*.jsonl |
|
Recent sessions — title (aiTitle ), pending question (last assistant message), turn count, token usage. Parsed metadata is cached by file mtime. |
|
~/.claude/fleet/*.json |
|
Optional enrichment from the fleet-register hook — finer state (waiting / done), task label, diff, mode. |
|
gh |
|
| Cross-repo PRs & issues, CI rollup, remote repo list. |
The local commands + hooks the extension drives are vendored in (
helpers/
claude-worktree
, claude-undo
, claude-restore
, and the tab-status
/ fleet-register
/
checkpoint
hooks) — see helpers/README. The extension degrades gracefully without them: Focus Tab falls back to raising the terminal; Spawn / Undo report the missing command.
The tab-status
hook titles each Ghostty tab <emoji> <repo>:<branch> — <task>
. Ghostty exposes
tabs as a native AXTabGroup
of AXRadioButton
s (titles = those strings), so the extension
matches an agent to its tab by repo:branch
and AXPress
es it — jumping you straight there (even across Spaces for a fullscreen window). No match → it raises the terminal.
macOS · a terminal — Ghostty (default, and required for Focus Tab / Nudge / Close Tab), iTerm2, or Apple Terminal · Claude Code · gh (My PRs / PRs to Review / My Issues) ·
git
· jq
(the helpers/
hooks).MIT. The Claude marks in extension/assets/
are Anthropic's trademarks — see assets/NOTICE. Not affiliated with Anthropic.