The terminal for running multiple Claude Code, Codex and Gemini CLI sessions
Agentic coding has a tab problem. Three Claude Code sessions, a Codex run and a Gemini CLI in five windows, and one of them has been waiting on a permission prompt for ten minutes while you looked elsewhere. Ghost in Shell puts every agent on one floating panel and tells you who needs you.
The agents panel (Cmd J)
Press Cmd J and a small frosted-glass window floats above everything. It lists every AI coding agent running in any tab of any Ghost window, with its folder, its state and how long it has been in that state:
- Needs you: the agent stopped at a permission prompt or a question. These rows jump to the top, the panel lights up and raises itself.
- Working: the agent is producing output.
- Finished: the agent returned to the prompt.
- Inactive: no output for a while, with the time shown.
Click a row and that window comes forward on that exact tab. When nobody needs you the panel shrinks to a slim rail of state orbs; hover an orb for a card with the agent, its folder and its state. It stays in the foreground (a switch turns that off), takes the colors of the window that summoned it, and can be dragged anywhere on the desktop.
Which agents it recognizes
Ghost watches the foreground process of every tab, so it works with any agent that runs as a CLI: claude (Claude Code), codex (OpenAI Codex CLI), gemini (Gemini CLI), aider, goose and copilot. Each tab wears a chip for that process, colored by family, that spins while the agent works, shows a ? when it is blocked and a check when it is done. Nothing to install inside the agent, no plugin, no MCP server.
Why not the agent's own session view?
Claude Code can list its own sessions, but only Claude's, only in that terminal, and as a full-screen TUI you have to switch into. Ghost's panel is a window that floats over your editor or browser, covers every vendor together, and watches the tabs you already have open. You keep working; it taps you on the shoulder.
A workflow that fits agents
- Tabs are named for their folder, so
api,webandinfraread at a glance. Hover a tab for its full path and what it is doing. - Tear a tab off into its own window, or drop it onto another. Each window keeps its own color profile.
- The inline assistant stays out of any tab an agent is running in, so Ghost never answers a question meant for Claude.
- Press Cmd E to open the file the agent just changed, with git status in the tree.
Getting started
- Download Ghost in Shell and drag it into Applications (right-click, Open on first launch of the unsigned beta).
- Open a tab per project and start
claude,codexorgeminias you normally would. - Press Cmd J. The panel appears with every agent listed. Leave it floating over your editor.
Frequently asked questions
Does the agents panel work with Claude Code?
Yes. It detects the claude process in any tab, shows working, finished and needs-you states, raises itself when Claude is waiting on a permission prompt, and jumps you to that tab on click.
Does it work with Codex CLI and Gemini CLI too?
Yes. It covers claude, codex, gemini, aider, goose and copilot together, across every Ghost window.
Do I need to configure Claude Code for it?
No. Ghost reads the tab's foreground process and its output. There is nothing to install in Claude Code.
Can I run agents in multiple windows?
Yes. The panel is one list for all windows. Tear tabs off into separate windows and it still sees them.