DGC v0.47.2 is out
Navigate
Install DGC
DGC v0.47.2Edit on GitHub ↗
Getting started/Keyboard shortcuts

essential key bindings in the composer + transcript

Keyboard shortcuts

#

Press Ctrl+G any time for this cheatsheet as an overlay.

Compose

#
  • Enter — send · Ctrl+J — newline. Shift+Enter inserts one too, but only in a terminal that reports it separately (kitty's keyboard protocol, or modifyOtherKeys); most send the same byte for Enter and Shift+Enter, so there it sends the message.
  • Shift+Tab — cycle permission mode (default → acceptEdits → plan → auto)
  • / — command palette · @path — attach one exact bounded file (@"path with spaces")
  • ! command — run a bounded direct shell command · # note — atomically save project memory
  • /memory add TEXT — save project memory · /memory add user TEXT — save personal memory
  • Ctrl+R — recall a past prompt · Tab / → — accept the ghost suggestion
  • Ctrl+Y — copy the last reply to your clipboard (works mid-turn) · /copy code — its code block
  • Paste — a tall paste folds to a chip, a lone URL becomes a pill, and characters you cannot see are counted. See Pasted text.

This turn

#
  • Esc — stop the turn · Ctrl+C — cancel · clear draft · quit
  • Enter — steer native work at the next model/tool boundary; subscription follow-ups queue
  • Tab — queue a separate turn while working, outside menus and completion
  • /skills and /skills show NAME — browse the current catalog without stopping work
  • /mode MODE — change native permission decisions during work; explicit ask/deny rules remain

Unconsumed terminal follow-ups remain queued after interruption; a new prompt continues the queue. In the editor, Enter steers and Alt+Enter or Queue submits a later turn. Unapplied steering can be restored to the draft. Subscription CLI mode changes apply to the next launched turn.

A message sent mid-turn says what became of it, on its own line under the bubble (under, not in: what became of a message is not something you said): steering … while the backend holds it, queued for the next turn if the turn would not take it, and steered — the model has read this at the moment it actually reaches the model. Until then the only sign was a screen-reader-only label, so a sighted user had none.

Files pane (/files)

#
  • j / k · ↑ ↓ move · h / l · ← → parent / enter · gg / G top / bottom · H / L back / forward
  • Space select · v visual select · Ctrl+A all · Esc clear selection, filter, or help
  • y / x / p copy / cut / paste · P paste overwriting · a new (end with / for a folder) · r rename
  • d trash · D delete permanently · u undo the last change
  • f filter · / find, n / N next / previous · . hidden files · s / S sort / reverse
  • Enter insert @path into the prompt · c insert the plain path · i / Tab inspect · J / K scroll the preview
  • ? all keys · q return to DGC · Ctrl+C still stops the agent

Diff pane (/diff)

#
  • j / k · ↑ ↓ move · Enter / l open the diff under the cursor · h / Esc back to the file list
  • Space / v start or end a line selection · Enter attach the selection to your prompt · a attach the whole hunk
  • J / K next / previous file without leaving the diff · g / G top / bottom · PgUp / PgDn page
  • r re-read git now · Tab list ⇄ diff on a narrow terminal · ? all keys · q return to DGC
#
  • PageUp / PageDn — scroll the transcript · End — jump to the latest
  • click ◆ Thought — expand the reasoning · click the token count — context details

Copy text

#

DGC owns its screen, so it can copy without you selecting anything, from any position, even while a turn is still running. The text goes to your system clipboard through the terminal (OSC 52), which works over SSH and inside tmux with set-clipboard on.

  • Ctrl+Y or /copy — the last reply · /copy code — its last fenced code block
  • /copy 2 — the reply before that · /copy all — the whole conversation as Markdown
  • /export — save the conversation as Markdown (~/.dgc/exports/, or /export PATH)

If you would rather drag-select with the mouse: DGC captures the mouse so the wheel scrolls its own transcript and rows stay clickable, and that capture is what stops your terminal's own selection. /select hands the mouse back for this session (PageUp/PageDn still scroll), and /mouse off remembers that choice. Shift+drag (Option+drag on some terminals) selects without leaving scroll mode at all, where the terminal passes the modifier through.

Session

#
  • Ctrl+N — new session · /resume — reopen a past one · /name — rename
  • /new DIR — an agent in another folder (see Multiple agents)
Documentation