deck

Everything Deck does.

Deck is one Mac window for coding with agents: chats, terminals and a browser side by side. Here is each part, what it does, and how you use it.

Chats

A chat is a conversation with one coding agent, working in one folder on your Mac. Deck runs the agent's own CLI, signed in with your own account, and shows what it does in a form you can read and act on.

One window, every agent

Chat with Claude Code, Codex, Gemini CLI, Grok and OpenCode, whichever you have installed. You can switch agents in the middle of a thread: the new one is handed the conversation so far. Cursor Agent, Amp and Aider run in their own terminals, with their own interface.

How: ⇧⌘N starts a chat with your default agent; ⌘N lets you pick any agent, as a chat or in a terminal. Choose the default in Settings › Agents.

The control chat

A chat pinned at the top of the sidebar, always there. Besides coding, it can run Deck for you: open terminals and pages, split panes, start your dev server, and hand out tasks.

How: it's the first tab (⌘1). Right-click it to start a new conversation or restart its agent.

Every step, as it happens

Commands, file reads and edits appear the moment the agent makes them, written as plain sentences ("Ran npm test", "Edited src/app.ts"). Each one opens to show its output or its diff. While the agent works you see the newest steps and a live timer; when the turn ends, it all folds into one summary line that opens back up.

How: click a step to open it, and the summary line to see the whole turn.

What changed, after every turn

When a turn that edited files is over, a card lists each changed file with lines added and removed. Click a file to see all of its changes.

Talk while it works

You don't have to wait. A message you send mid-turn reaches the agent as soon as its current step finishes, the way a colleague reads a message between tasks.

How: ⏎ queues it after this step, ⌘⏎ sends it right now, esc stops the turn.

Attach anything

Paste a screenshot, drop in files, or mention a file in your project. The agent receives them with your message.

How: ⌘V an image, drag files onto the chat, or type @ and a few letters of a file name.

Select and copy any part

Select text anywhere in a conversation, across replies, lists, tables and code, and copy it as Markdown would write it.

How: drag across it, double-click a word or triple-click a paragraph, then ⌘C.

Threads last

Conversations, drafts and attachments are saved as you go and come back after you quit. Claude picks up its own session, so it remembers the conversation too.

Approvals and alerts

You decide how much an agent may do on its own, and Deck makes sure you notice when it needs you.

Approvals where you type

When an agent wants to run a command or edit a file, the request appears just above the message box, with the command or the diff. You can allow it once, allow it for the rest of the chat, refuse it, or type what it should do instead. Questions from the agent show their options the same way.

How: ↑ ↓ and ⏎, the number keys, a click, or esc to refuse.

Choose how much it may do

Each thread has an access mode: Ask first (asks before every edit and command), Accept edits (edits on its own, asks before commands) or Full access (does both without asking).

How: click the chip in the message box to change it. Settings › Agents sets where new threads start.

"Needs you"

When an agent asks for permission or a question, its tab says "Needs you", the Dock icon shows a count, and if you're looking elsewhere, a notification tells you. Click it to go straight there. Long jobs that finish while you're away notify you too. This also works for Claude Code running in a terminal.

How: on by default; turn either kind off in Settings › Agents › Notifications.

Turns that fail come back

If a turn dies on a network or API error, Deck says "continue" for you after 5 seconds, then 10, 20 and so on up to five minutes, eight times. If you hit a usage limit, it waits until the limit resets. Problems a retry can't fix, like being signed out or a billing issue, are shown to you instead.

How: automatic. esc cancels a retry that's lined up. Turn it off in Settings › Agents › Recovery.

Undo a turn

Agents sometimes go the wrong way. In a project that uses git, every message you send quietly saves your files as they were at that moment, so you can go back.

Undo to here

Puts your files back the way they were when you sent that message, and ends the conversation there. Files the agent changed are restored, and files it created are removed. Your branch, your staged changes, your stash and the files git ignores are never touched.

How: right-click one of your messages › Undo to Here.

Edit from here

The same, but your message comes back into the box so you can change it and send it again.

How: right-click one of your messages › Edit from Here.

Put files back

Before going back, Deck saves how things were, so you can undo the undo.

How: right-click a message › Put Files Back.

Prompt rewriting

Type or dictate the way you think, and Deck turns it into a clear, complete prompt before it goes to the agent. It uses the agent's current task and last reply to work out what "it" and "that" mean, and never adds facts you didn't give it.

Rewrite and send

Short replies like "yes, do it", slash commands and shell commands are sent as you typed them. Anything longer is rewritten first.

How: ⏎ rewrites and sends, ⌃O rewrites into the box without sending, ⌃Z brings back your own words. In Settings › Agents you can have it show the rewrite first, choose the model, or turn it off.

Tasks

A task is a job handed to an agent that works on its own branch, in its own copy of your project, so it never touches the files you're working in. Run as many as you like at once.

Start a task

Describe what you want, and Deck makes a new branch and a separate checkout for it, then starts an agent working there. The sidebar shows what each task's agent is doing right now, or how many files and lines it has changed.

How: ⌘K, describe the job, and pick "Start a task".

Preview it running

Runs the project's dev server from the task's own checkout, on a port of its own so it doesn't clash with yours, and opens the page beside the review once it's up. A fresh checkout installs its packages first.

How: open the task's review › Preview.

Review, then decide

The review shows every change, file by file. Then Merge squashes it into your branch as one commit, Open PR pushes the branch and opens a pull request, and Discard throws it away. A terminal in the task's folder is one click away if you want to run the tests yourself.

Agents hand out tasks too

An agent working on a big job can split it into tasks, each with its own agent on its own branch. Deck tells it when each one finishes, so it can review the changes and merge them.

How: ask the control chat to "split this into tasks", or see the deck command.

Terminals

A real, fast terminal for your shell and for the agents that live in one.

Fast and faithful

True colour, wide characters and emoji, mouse support for full-screen programs, input methods, smooth scrolling, and search through the scrollback.

How: ⌘T opens one, ⌘F searches, ⇧⌘K clears it.

Made for agent CLIs

Paste a screenshot or drop files and their paths go in, which Claude Code and Codex turn into attachments. Diffs and highlights that programs paint in solid colour are shown as soft tints. If Claude Code gets stuck in its own retry loop, Deck nudges it along.

How: ⌘V an image, or drag files onto the terminal. Turn the soft colours off in Settings › Terminal.

Knows what's running

Tabs are named after the program's own title, such as Claude Code's current task, and show the project and folder they're in. Links open beside the terminal.

How: ⌘-click a link.

Your look

Choose the font, size, line height, cursor and blink, and one of six colour schemes or one that matches the window.

How: Settings › Terminal and Settings › Appearance.

Your default terminal

Make Deck the app that opens shell scripts, .command files and ssh:, telnet: and x-man-page: links. Each opens in a new tab. You can hand them back to Terminal at any time.

How: Deck offers on its first launch; or Settings › General › Default terminal.

Browser

A real browser in the same window, so the page you're building sits next to the agent building it.

Beside your code

Search or type an address, with suggestions from your history and your search engine. The new tab page shows the sites you visit most and the dev servers running on your Mac, one click each.

How: ⌘L for the address bar, ⇧⌘T for a new browser tab. Choose the search engine in Settings › Browser.

Everything a browser needs

Find in page, downloads, the Web Inspector, two-finger swipe back and forward, and ⌘-click to open a link in a new tab. Pages follow your theme, dark or light.

How: ⌘F to find, ⌥⌘I for the Web Inspector.

Snippets

The prompts you send again and again, kept and put in with a keystroke.

Put one in

A snippet goes into the chat's message box, or into the terminal at the prompt, ready to add to. Nothing is sent or run until you press ⏎.

How: ⌘; lists them, or type its keyword after a semicolon, like ;review, and a space.

Fill-ins

{clipboard}, {selection}, {branch} and {folder} in a snippet become what you've copied, what's selected, and the branch and folder you're in.

Keep and share

Save what you've typed, or what's selected in a terminal, as a snippet. A project can share its own snippets with everyone who works on it by committing .deck/snippets.json.

How: ⌘K › Save as Snippet; edit them in Settings › Snippets.

The workspace

The window that holds it all, made to stay out of your way.

Command palette

One box for any open tab, any action and its shortcut, your snippets, the files of the project you're in, and pages you've visited. Typing a description offers to start it as a task.

How: ⌘K.

New tab page

A terminal, a browser, or any agent, as a chat or in its own terminal.

How: ⌘N, then ⏎ for a terminal or 1–9 to pick.

Splits and the inspector

Split any pane right or down and drag the divider to resize. The inspector shows the focused terminal's processes, the ports they listen on, the project's files and its git status.

How: ⌘D and ⇧⌘D to split, double-click a divider to even it out, ⌘I for the inspector, ⌘B for the sidebar.

Comes back as you left it

Tabs, splits, focus and conversations are restored after a restart. Agents running in terminals resume their own conversation.

Themes, zoom and settings

Five window themes (System, Black, Graphite, Midnight, Light) and one zoom for everything. Settings are searchable and apply the moment you change them.

How: ⌘, for Settings, ⌘+ and ⌘− to zoom.

Your shortcuts

Change any shortcut: click it and press the new keys. Deck tells you if the keys are already taken, and the menus and the command palette show yours.

How: Settings › Keyboard.

Lock

Hides everything behind Touch ID or your Mac's password. Your terminals and agents keep running underneath.

How: ⇧⌘L, or the avatar menu › Lock.

Agents driving Deck

Agents can work the window themselves, so "start the app and check the page" just works.

The deck command

Every terminal and chat in Deck can use the deck command: open terminals and pages, read a terminal's screen, message another chat, run JavaScript in a page, take a picture of the window, and hand out tasks. Output is JSON, so agents can read it.

How: run deck in a Deck terminal for the full list, or see the docs.

Tools of their own

Agents in Deck's chats also get these as built-in tools, including a look at the window, without needing to type commands.

Account and updates

Sign in with Google

Your account holds your plan. Deck checks it every few hours, and keeps working for up to a week without a connection.

How: Deck asks on first launch. Manage your plan in Settings › General, or on your account page.

Updates

Deck looks for a new version once a day and says so in the title bar. It downloads in the background and installs when you restart.

How: click "Update available" in the title bar, or Settings › General › Updates.

See it on your own work.