DGC v0.48.4 is out
Navigate
Install DGC
DGC v0.48.4Edit on GitHub ↗
Using DGC/In your editor

the VS Code and Cursor panel, and what a finished turn gives you

In your editor

#

DGC runs the same agent inside VS Code and Cursor. The extension drives your local dgc — the model, the permission mode, the skills, the MCP servers and the session history are the ones you already have, and nothing about your code leaves the machine that the terminal would not.

Install

#
  • VS Code: search the Marketplace for Vibe DGC, or code --install-extension vibedgc.dgc.
  • Cursor: search its own extension gallery for Vibe DGC. Cursor updates extensions on its own schedule, so use Extensions → Vibe DGC → Update if you want a new version immediately.
  • The panel opens in the activity bar, or in the secondary sidebar if you prefer it on the right.

Keep the CLI and the extension roughly in step. They speak a versioned protocol, and if one is too old the panel says which side to update rather than failing quietly. dgc update moves the CLI; the extension updates through your editor.

The composer

#
  • @ attaches a file, / opens the command palette, $ applies a skill.
  • A picked skill, template or file becomes a pill where you typed it, not a rewritten line: it carries its own sigil, you can remove it with Backspace or the mouse, and the model receives the text it stands for. Two pills of the same skill are two selections. Anything the pill does not already show sits in the attachment row underneath, and a pill you delete takes its attachment with it.
  • Paste an image to attach it for a vision model. Its chip shows the image's file name, cut to fit, with its type, size and dimensions on hover; a screenshot copied straight to the clipboard has no name of its own and reads like "PNG · 1920×1080". Drag files in from the explorer. See Pasted text for a tall paste, a pasted link, and characters you cannot see.
  • Tool calls collect into one folded group with a summary in its header. It opens by itself the first time something in it fails, and once you fold it by hand it stays folded — a later failure does not throw it open under you.
  • The send button fills with DGC purple as soon as there is something to send, and becomes a stop button while a turn is running.
  • The row underneath holds the model, the reasoning effort and the permission mode. Every control says what it does when you hover or focus it.
  • Scrolling back through a long run puts a Latest pill over the end of the transcript; it turns purple and reads New when the model has written something you have not seen.

What an answer can show

#
  • Diagrams. A ```mermaid fence renders as the diagram it describes, drawn in the panel's own colours and type. The source stays underneath behind Show source, so Copy still gives you the markup. A diagram DGC cannot parse keeps its code block rather than being replaced by an error, because a diagram that will not draw must not delete the text around it.
  • Code, syntax-highlighted, with a Copy button. A fence longer than 24 lines folds, so one long file cannot push the answer off the screen.
  • Tables, also with a Copy button, which gives you the model's Markdown rather than the rendered DOM.
  • Quoted blocks — a drafted mail, a message to forward — drawn as a block of their own with room at the top and bottom, and a Copy button that gives you the text without the > markers running down its left edge. A quote nested inside another has no button of its own, because it is part of what the outer one already copies.
  • Commentary — the short notes a model writes between tool calls — has its own Copy on hover, so the most quotable line in a turn is no longer the one line you could not lift.
  • Links, marked with where they point — GitHub, the Marketplace, a docs site, a file in this workspace. A file link opens it at the right line. Nothing is fetched to work this out, so a URL a model mentions is never disclosed to anyone by the act of rendering it.

When a turn finishes

#

DGC ends an answer with what it changed and what you can do about it.

  • Worked for 43s › heads a turn that has answered. The work that led there folds into it: the one-line updates between tool calls, the tool rows, thinking, and sub-agents that have finished. Click it (or Enter) to see them again in place, under the row; it folds them again once your next prompt has its answer. What you still need stays on screen: a detailed message (a diagnosis, a plan), a message you sent mid-turn, question and approval cards, notices, and the answer with what it changed. A turn that was stopped or failed does not fold. A reload or a resumed chat draws the same fold. The terminal keeps every line on screen: a turn that used tools says · Worked for 43s · 5 tools above its answer, and any other turn ends with · done · 3s.
  • A summary of the files this turn touched, each with its additions and deletions, and each opening its own diff. Review opens every change this chat has made.
  • Undo puts those files back as they were before the turn and rewinds the conversation with them. It finds the recovery point by the prompt that opened it and refuses if it can no longer identify it, because an undo that guesses loses work you did not ask it to.
  • Copy takes the whole answer as Markdown. A tool row that ran a shell command (bash, its output, a monitor) carries its own Copy on hover, which gives you the command verbatim; copying does not open the card.
  • Tasks — the checklist the model keeps sits above the composer and updates as it works: □ pending · ▶ in progress · ✓ done · ⊘ blocked. It comes back when you reopen the session; Clear drops it (the terminal's /todo clear). Finishing with open tasks is reported, not treated as a failed turn.
  • Rate records a thumb up or down for this workspace. It is stored locally and sent nowhere.
  • Branch continues in a new chat from this point. The conversation comes with you and the chat you branched from keeps everything it had, so you can try a second approach without losing the first. /branch does the same in the terminal.
  • Run again re-sends the same prompt without disturbing whatever you were half-way through typing; edit and resend puts the prompt back in the composer instead.

Around the Work chat

#
  • The prompt rail. From five prompts, a tick per prompt in the transcript's right margin; hover it for every prompt with its time, or press Alt+↑ / Alt+↓. See Keyboard shortcuts.
  • The context meter, in the row under the message box, says how full the window is. For vLLM, SGLang and llama.cpp it reads Set by the server: 32K, with how to change it there; see Connect your model.
  • The prompt cache's clock after the meter: the minutes left while Anthropic or a local Ollama keeps this conversation cached (4m), or the clock alone once the cache has gone. See Token usage.
  • Remembered: … · Forget shows once when DGC keeps something from the session; /learn drafts a skill you Save, Edit or Cancel. See Memory.
  • Pip reports arrive as cards, and Ask DGC to fix fixes one in the background while you keep chatting, with a Pip fixes chip on the chip line. While a Pip that reports to this chat runs, a chip says so (Billing audit running · 0:42, or 2 Pips running) and opens its chat at the run. See Pips.

Approving work

#

When DGC needs permission, the card shows what will actually happen — the command, or the diff the edit would apply — not the raw arguments. Allow once, Always allow (which writes a permission rule) or Deny, and a denial can carry a note that reaches the model as the reason.

When DGC asks you to decide

#

Some choices are yours: a trade-off with no safe default, or a requirement the request leaves open. The model asks with a question card instead of a list of options in prose. The Questions page covers the terminal, classic prompt, ACP, full-auto, and who cannot be asked. In the editor:

  • The card docks in the prompt box in place of the text box. Stop, the mode and model pickers and the context meter stay where they are, and anything you had typed comes back when the question closes.
  • The recommended option is chosen for you but not sent. It carries a Recommended badge and starts checked and highlighted, so Enter, a click on it or Next takes it. Nothing is sent until you act.
  • Every option has a one-line description of what choosing it means. Something else… lets you write your own answer, and Skip leaves a question unanswered. With several questions, your pick stays marked for a moment and the next question streams in; the last answer doesn't send: the card reads "all answered" and focuses Submit, so you can page back and change any answer first. A single question still sends on one click.
  • × or Esc (with the text field empty) closes the question without answering. DGC does not choose for you: it tells the model you closed it, ends the turn, and pauses a standing goal that was waiting on the answer. Tool calls the model made after the question in the same step do not run.
  • Answered questions stay in the step as Asked 2 questions (or Asked · SQLite file) with each question and your answer, after a reload or resume as well.

The full-screen terminal asks the same questions: one row per option with the cursor on the recommended one, digits to pick, Space to toggle a multi-choice option, and ←/→ or Tab between questions; the classic prompt uses an arrow menu that starts on the recommended option. Sub-agents and dgc -p runs are not offered the question tool; a sub-agent hands the decision back to the main agent with its recommendation.

Full-auto does not stop to ask, so it offers the question card only on a turn where you ask to choose yourself ("propose me options to select from", "let me choose"), and withdraws it again once one round has been asked, so the rest of the turn runs unattended. Where nobody can answer (a turn a background event started, dgc -p, a sub-agent, a subscription CLI), asking to choose gets the options as a numbered list instead.

Settings

#

The gear opens twelve pages: General (permission mode, thinking, context size, tool profile), Models (a local host, a provider, or your own subscription CLI; for Anthropic, Cache lifetime, and for a local Ollama, Keep the model loaded; under Advanced, Wait for the first word: Auto, a number of minutes or Never, and Wait between words), Agents (the model, host and context window sub-agents use, how many run at once, the fallback route, and the model for Pips), Web search, ChatDGC, Memory (what DGC remembers, with its History and Undo), Voice, Running sessions (sessions working with no window), Token usage (what this machine counted), Security (sandbox confinement and plan-mode limits), Plugins (installed packages, the apps they reach, and the directory) and MCP servers. Settings follows your VS Code theme. Everything is a row: what it is on the left, the control on the right, a one-line hint beneath, and the rest behind the ? beside its name. Advanced settings fold away under Advanced. One Save all at the foot of every settings page saves every page's changes and names the pages that have them. Each Model box lists the models at its own card's host as you type it (Ollama's :cloud models included), and still takes any name; a saved key only ever goes to the host it was saved for. An MCP server's Forget saved sign-in and Remove server each ask first. Skills, lifecycle hooks, permission rules, project memory and these docs each open as their own panel from the command menu. See Plugins, apps and MCP.

What the editor adds

#
  • Files DGC changed carry a mark in the explorer, and the diff opens in your editor's own viewer.
  • Changes in this chat on the composer is this chat's own deltas, not pending Git from before you opened it. Workspace changes is the separate repository review. See Git changes.
  • Add to DGC in the explorer and editor-tab context menus attaches a file to the composer.
  • The panel reads your selection and the file you are in as typed context, not as text glued into the prompt.
Documentation