Chrome-style tabs across providers and folders
Every session is a tab with a deep link. Tabs persist, reorder, remember their view, and the terminal you opened in one keeps running while you look at another.
Claude Code, Codex and Antigravity in one browser tab. Browse every session like a web page, see exactly what each agent did, and continue any of them in its real terminal. AgentDeck reads the files the CLIs already write to disk and never sends anything anywhere.
A one-minute tour: Home → ⌘K → a Claude Code session with an inline sub-agent → Stats → Insights → an Antigravity session → Config › Ask the agent → tracked folders → a workspace → Preferences. Recorded from a synthetic data root; every name and path is fictional.
Conversation, Sub-agents, Raw, Stats, Memory, Config — per session, per project, per tracked folder. A provider is one directory on the server and one YAML descriptor.
Reads ~/.claude/projects/**.
claude --resumeReads ~/.codex/sessions/**.
codex resume in the embedded terminalReads ~/.gemini/antigravity-cli/**.
agy --conversation to continue
Every session is a tab with a deep link. Tabs persist, reorder, remember their view, and the terminal you opened in one keeps running while you look at another.

Fuzzy-jump to any project or session in any provider or folder. → browses a project's sessions by title and first prompt, for the ones you don't remember by name. Enter opens; ⌘/Ctrl+Enter opens a new tab.

Colour-coded folder chips are the only scope picker. A workspace groups the same repo from several providers and folders — suggested automatically when a folder shows up in more than one place. Pins hold what you are on now. Pinning or grouping moves a row, so nothing is listed twice.

Active days, streaks, hour-of-day and weekday rhythm, session length, prompts per session, and the projects that have gone quiet. Tokens, tools and models stay in Stats, one view for every provider.

From any Config view, say what you want in your own words. AgentDeck opens that CLI's own terminal with a brief: your request, the file as it is, the official docs, and the CLI's building blocks — commands, rules, output styles, workflows, skills, sub-agents, hooks, MCP servers, plugins. The brief asks the CLI to explain each one, ask one question at a time, search the skills ecosystem with the bundled find-skills, show a plan, and only then edit. AgentDeck itself never calls a model or edits a file.

Any session resumes in an embedded terminal running the real CLI, backed by tmux so it survives navigation and can be attached from any shell. Fork a session from any reply to branch without touching the original.

Every CLI writes its own format under ~/.claude, ~/.codex, ~/.gemini, and there is no shared spec. AgentDeck's spec/ defines the contract every provider implements — one vocabulary for sessions, sub-agents, tool calls, tokens, memory, MCP servers, history and stats — plus a YAML descriptor per CLI and a conformance gate with golden outputs.
A format probe reads each tracked folder's newest records on every start and compares them with the descriptor. A new record type, a missing required field or a changed type badges that folder the same day, with the details in the Folders dialog.

AgentDeck binds to 127.0.0.1, reads the transcripts your CLIs already keep, and calls no model of its own. Continuing a session runs the CLI you already have, logged in as you.
git clone https://github.com/Jimmy-web169/AgentDeck.git
cd AgentDeck
make init # npm install + optional ttyd + CLI checks
make all # → http://localhost:47842
git clone https://github.com/Jimmy-web169/AgentDeck.git
cd AgentDeck
npm run init:win # npm install + optional psmux + CLI checks
npm run dev # → http://localhost:47842
The Antigravity provider reads its SQLite through node:sqlite; on an older Node everything else still works.
Point it at ~/.claude, ~/.codex or ~/.gemini/antigravity-cli. Defaults are detected on first run.
claude, codex or agy installed and logged in, plus ttyd for the embedded terminal (native Windows uses the built-in one).