# Manage your Claude Code agents in Raycast

> Source: <https://github.com/vmc-7645/claude-fleet>
> Published: 2026-07-16 04:58:48+00:00

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

*own*session registry (

`~/.claude/sessions`

) directly, so active agents show up out of the box. The bundled
[helpers](/vmc-7645/claude-fleet/blob/main/helpers)add 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](https://raycast.com) · [Claude Code](https://claude.com/claude-code) · [ gh](https://cli.github.com) ·

`git`

· `jq`

· a terminal ([Ghostty](https://ghostty.org)recommended)

```
# 1 — clone
git clone https://github.com/vmc-7645/claude-fleet.git && cd claude-fleet

# 2 — install the shell helpers + hooks (idempotent; wires ~/.claude/settings.json, backs it up first)
helpers/install.sh

# 3 — sign in to GitHub (for My PRs / PRs to Review / My Issues)
gh auth login

# 4 — load the extension into Raycast (persists after you stop the dev server)
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`

/ … for*Open in Editor*(must be on`PATH`

).**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](/vmc-7645/claude-fleet/blob/main/helpers/README.md). 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](https://ghostty.org) (default, and required for
Focus Tab / Nudge / Close Tab), iTerm2, or Apple Terminal · Claude Code ·
[ gh](https://cli.github.com) (My PRs / PRs to Review / My Issues) ·

`git`

· `jq`

(the `helpers/`

hooks).[MIT](/vmc-7645/claude-fleet/blob/main/LICENSE). The Claude marks in `extension/assets/`

are Anthropic's trademarks — see
[assets/NOTICE](/vmc-7645/claude-fleet/blob/main/extension/assets/NOTICE.md). Not affiliated with Anthropic.
