An AI-native software delivery workflow for teams that run on Jira.
Jira, Claude Code, Codex and GitHub on one Kanban board. Pick a card, code it with an agent, review the PR, ship it. One screen.
Screens show fixture data only. Source in docs/media/motion, rendered with npm run demo:gif.
Most engineering teams run their delivery on Jira. Coding agents have made the writing part fast, but the loop around it is still slow: find the ticket in Jira, open a terminal for Claude Code or Codex, switch to GitHub to review, back to Jira to move the card. Every hop costs the thread you were holding, and none of these tools know about each other.
Deck's answer is a Kanban board that is also your terminal, your review queue and your orchestrator:
- Start from the card. Every Jira issue on the board can launch a Claude Code or Codex session bound to that ticket, in the right repository. The agent's live status shows on the card.
- Move the card, move the ticket. Drag between columns and Deck fires the Jira transition. The board syncs in the background, so Jira's slowness stays out of your way.
- Review where you code. Pull requests waiting on you arrive as a queue with the diff, checks and linked ticket. Approve and the next one loads.
- Orchestrate the whole loop. Ask Deck what needs attention and it can start agents, put one on a broken PR, or file the next issue. Every answer sees your sessions, your PR inbox and your board.
- Search everything you ever asked. One palette over live sessions and the full chat history of Claude Code and Codex, so the answer from last week is a ⌘K away.
Summon it with ⌥ Space. Code, review and orchestrate without leaving the screen.
- Agent sessions: launch or resume Claude Code and Codex, see live status in the sidebar, and search your local conversation history across both.
- Vertical tabs with search, rename, attention filters, Git status and keyboard navigation. A single "Continue your last session" suggestion appears for activity within the last 15 minutes; older sessions stay searchable.
- Splits and panes: resizable nested splits, find in terminal, export, multiline input, and a local file explorer with text editing and Markdown preview.
- Zen and Presentation on every page, WebStorm style. Both go fullscreen and hide the chrome; Presentation also enlarges the terminal font and zooms the other pages by the same ratio.
Your Jira board as a Kanban view inside Deck. Cards carry the agents that have touched them; opening a card shows the ticket, its sessions and its pull requests, and starts a new Claude Code or Codex session on it. Dragging a card to another column fires the matching Jira transition, optimistically, with the sync catching up in the background.
Deck's orchestrator, front and centre. Every question gets the live sessions, your PR inbox and the synced Jira board as context. Through Deck's own MCP tools it can:
- start Claude or Codex agents in Deck terminals, answer or steer running ones, and read their transcripts
- put an agent on a broken PR
- search the tracker's backlog and create issues, only after you agree
The rail lists what needs you and every live session. The sidebar badge counts it. Make it the start page from its header or Settings → General.
Every pull request waiting on your review, one at a time like a mail client. Each shows the linked Jira task, the overview, the diff and a pinned agent helper (a). Approve or request changes and the queue moves on. n / p step through without leaving. Review threads collapse to one line like GitHub's, and resolved or outdated threads start collapsed.
Opt-in, off by default. Once enabled in Settings → General, Deck starts a fix agent in the repo's local checkout when CI fails or a PR of yours gets merge conflicts, once per push. The agent stops with the diff and waits for your approval before pushing unless you let it push unattended.
Five built-in themes, live custom JSON themes, and local plugins that contribute themes, commands, agent prompts and Markdown panels. See the extension guide and the starter plugin.
Download the latest .dmg for your Mac (Apple Silicon or Intel) from the releases page and drag Deck into Applications.
The builds are not notarized with Apple yet, so macOS will refuse to open the app the first time. Clear the quarantine flag once:
xattr -cr /Applications/Deck.appgit clone https://github.com/fishuke/deck.git
cd deck
npm install
npm run devRequirements. Node 22 or newer.
Install and authenticate claude and/or codex separately. Pick the default agent in Settings → General; new-session menus and PR review screens let you choose either.
Live status hooks. Use the sidebar's live-status controls to install hooks for each provider. For Codex, trust Deck's installed hooks in Codex's /hooks interface. Deck preserves existing hooks and does not bypass agent permissions. The hook server accepts local connections only.
History. Indexed from ~/.claude/projects, plus $CODEX_HOME/sessions and archived_sessions (default ~/.codex). Codex subagent transcripts and internal environment messages are excluded from results.
GitHub and the board. Pull request tools use the gh CLI. The board mirrors Jira, Linear or a GitHub Project (pick one in Settings) and syncs in the background once configured. Each tracker is an adapter behind the same board interface (src/main/board/).
| Shortcut | Action |
|---|---|
| ⌥ Space | Summon or hide Deck |
| ⌘K | Search sessions, history, commands, settings, themes and repositories |
| ⌘T / ⌘W | New / close terminal |
| ⌘⇧T | Reopen the last closed tab |
| ⌘⇧N | New tab running the default agent |
| ⌘N | New window |
| ⌘1–⌘9 | Switch terminal |
| ⌘B | Toggle sidebar |
| ⌘⌥1 ⌘⌥2 ⌘⌥3 ⌘⌥4 | Terminal / Board / Agent / Reviews |
| ⌘D / ⌘⇧D | Split right / down |
| ⌘F | Find in terminal |
| ⌘J | Toggle multiline input |
| ⌘⇧Enter | Toggle Zen view |
| ⌘⇧P | Toggle Presentation view |
| Esc | Exit Zen / Presentation from the terminal |
Drag pane dividers to resize; arrow keys resize a focused divider and double-click resets it. Presentation controls adjust text size and switch sessions, and exiting restores your split layout.
npm run typecheck # both tsconfig projects
npm test # unit tests on Electron's Node runtime
npm run test:ui # Electron smoke test with fixture sessions, screenshots in artifacts/ui
npm run test:pty # native PTY input/output, replay, metadata and termination
npm run demo:gif # render docs/media/deck.gif and deck.mp4 from docs/media/motion (needs ffmpeg)Tests use Electron's Node runtime to match the native SQLite ABI. The UI smoke test opens an isolated window with fixture sessions and never launches paid agents or touches your real sessions. Run it in a desktop environment.
Stack: Electron, React, Tailwind, xterm.js, SQLite, Hono.
Deck is evolving toward an everyday terminal replacement. It implements the local terminal UI and agent workflows above. It does not include cloud collaboration or compatibility with other terminals' extension formats.
Issues and pull requests are welcome. Keep changes small and focused, run the checks in Development, and add a test alongside any new behaviour. Extension authors should start with the extension guide.
