deck

Docs

Everything you need to set up Deck and get the most from it.

Getting started

  1. Download Deck and move it into your Applications folder.
  2. Open it and sign in with Google. Your browser opens, you continue with your account, and Deck picks up from there.
  3. Make sure you have at least one agent CLI installed and signed in, such as claude or codex. Deck finds them on your PATH; Settings › Agents shows which ones it found.
  4. Press ⇧⌘N to start a chat in the folder you're working in, and say what you want.
On first launch Deck offers to become your default terminal, so shell scripts and ssh: links open in it. You can change this any time in Settings › General.

Chats

A chat runs one agent in one folder. Everything it does shows up as steps: click one to see its output or diff. When it wants to run a command or edit a file and your access mode says to ask, the request appears above the message box.

  • Send: ⏎. With prompt rewriting on, this rewrites first; ⌃Z brings your words back.
  • New line: ⇧⏎. Send right now, mid-turn: ⌘⏎. Stop: esc.
  • Attach: paste an image, drop files, or type @ to mention a file.
  • Access: click the chip in the message box: Ask first, Accept edits, or Full access.
  • Switch agent: pick another agent in the chat; it's handed the conversation so far.

Tasks

Press ⌘K, describe a job, and choose "Start a task". Deck creates a branch named deck/… and a separate checkout, and starts your default agent there. The sidebar's Tasks section shows each one. Open a task to review its changes, then:

  • Preview runs its dev server from its own checkout and opens the page.
  • Merge squashes it into the branch you started from. Your main checkout must be on that branch.
  • Open PR pushes the branch and opens a pull request (needs the GitHub CLI, gh).
  • Discard removes the branch and its checkout (click twice).

Undo

In a git project, each message you send saves your working files. Right-click one of your messages:

  • Undo to Here restores the files to that moment and ends the conversation there.
  • Edit from Here does the same and puts your message back in the box.
  • Put Files Back undoes the last undo.

Your branch, staged changes and ignored files are never touched. The agent starts a fresh session with the conversation up to that point.

Snippets

Open the list with ⌘; and pick one; it goes into the message box or terminal without being sent. Give a snippet a keyword in Settings › Snippets and type ;keyword followed by a space to put it in. These fill themselves in:

WriteBecomes
{clipboard}what you last copied
{selection}the text selected in the chat or terminal
{branch}the git branch of the folder you're in
{folder}the folder you're in

To share snippets with a project, commit a .deck/snippets.json file:

[
  { "name": "Run the checks", "keyword": "checks",
    "body": "Run npm run lint and npm test, and fix anything that fails." }
]

Shortcuts

These are the defaults. Change any of them in Settings › Keyboard.

⌘KCommand palette
⌘NNew tab: a terminal, a page or an agent
⌘T / ⇧⌘NNew terminal / new chat
⌘L / ⇧⌘TBrowser address bar / new browser tab
⌘D / ⇧⌘DSplit right / split down
⌘WClose the pane
⌘1…⌘9Go to a tab (⌘9 is the last)
⇧⌘] / ⇧⌘[Next / previous tab
⌘;Insert a snippet
⌘FFind in the terminal or page
⇧⌘KClear the terminal
⌘B / ⌘ISidebar / inspector
⇧⌘LLock Deck
⌘,Settings

The deck command

Every terminal and chat inside Deck can use deck to work the window. Agents use it to open terminals and pages for you. Output is JSON.

# what's open, and a server in a new terminal beside this one
deck pane list
deck pane split --cmd 'npm run dev'

# open a page beside you, read a terminal, message another chat
deck open http://localhost:3000
deck pane read --pane 3
deck pane send --pane 5 'run the tests'
deck browser eval --pane 4 'document.title'

# hand out a task, follow it, and finish it
deck task new 'add a dark mode toggle to settings'
deck task list
deck task wait --task add-a-dark-mode
deck task diff --task add-a-dark-mode
deck task merge --task add-a-dark-mode

# a picture of the window, and settings
deck window shot ~/Desktop/deck.png
deck settings open --page keyboard

Run deck on its own for the full list. Agents in Deck's chats also get all of this as built-in tools.

Where Deck keeps things

Everything lives in ~/Library/Application Support/deck/ on your Mac:

  • settings.json: your settings (Settings › General › Show in Finder)
  • snippets.json: your snippets
  • threads/: your conversations
  • session.json: the tabs and splits to restore

Your session token is kept in your Mac's Keychain.

Troubleshooting

Deck says an agent isn't installed

Deck looks for agents on the PATH your login shell sets. Check that the CLI runs in a regular terminal, then restart Deck.

Merge says the main checkout is on another branch

Switch your project back to the branch the task started from, then merge again.

Something else

Email nischaldahal01395@gmail.com with what happened and your Deck version (Settings › General › Updates).