-
Notifications
You must be signed in to change notification settings - Fork 0
GUI
A native SwiftUI menu-bar agent (look for ✦ in the menu bar). It's a thin view over the same agent-cli-menu back-end — it never parses your config or reads ~/.claude/ itself, so the GUI and terminal always agree.
- Left-click ✦ → popover.
- Right-click ✦ → Open / Open in window / Quit.
- Global hotkey (if set) → opens the resizable window from anywhere.
- The window is resizable and remembers its size/position.
-
Clicking outside the window, or pressing
esc, dismisses it — a menu-bar-panel feel. (Sheets and alerts keep the app active, so they don't trip this.)
A segmented control switches tabs; ⇥ does the same from the keyboard. The search field keeps focus the whole time — type to filter, ↑/↓ to select, ↵ to launch/resume, esc to clear or close. Selection is a full-row highlight and auto-scrolls into view.
- New — project dirs grouped by section (colored headers), frecency-sorted, with the git branch per row. + New dir creates a directory under any group. The tool to launch is picked bottom-right.
-
Resume — sessions with a status dot (busy / idle / inactive), name, path, and branch. A
⚠marks an uncertain working directory (you'll be asked to confirm before resuming).
Highlighting a session (without opening it) shows a details pane on the right: full metadata —
id, status, branch, started, last used, and working directory — plus a Generate recap button.
Recap is a short AI summary of the session (what it was working on, decisions, current state,
follow-ups) via claude -p on the haiku model, cached so it loads instantly next time. See
Commands → recap for the env knobs.
In Resume, read a session's recent transcript on the right before resuming — fetched lazily (debounced) and cached per session. Drag the divider between the list and the preview/details pane to resize the split.
The gear opens a full editor that writes the same config as the terminal:
- Open sessions in — the terminal to launch into: system default, Terminal, iTerm, Ghostty, Warp, kitty, WezTerm, cmux, or a custom command.
-
Groups — name, folder (with a
…picker), and a color (native ColorPicker + hex field). -
Tools — name +
runscommand; pick the default. -
IDEs —
ctrl-key → label → command.
Click the recorder field and press the combo (e.g. ⌘⇧M). It only accepts shortcuts it can actually register, and esc clears it. Stored as [gui].hotkey in the config.
The app is ad-hoc signed (not notarized) — see Installation → Gatekeeper. If a launch/resume fails (e.g. agent-cli-menu isn't on PATH), the GUI shows an alert rather than failing silently.
Agent CLI Menu · MIT © Roy Padina · Support on Ko-fi ☕