DGC v0.50.0 is out
Navigate
Install DGC
DGC v0.50.0Edit on GitHub ↗
Features/Mods

your own status lines, panels, commands and guards, in Python or TypeScript

Mods

#

A mod is a small program, in Python or TypeScript, that adds something of your own to DGC: a line in the status bar, a band above the prompt, a panel, a toast, a slash command, or a guard that holds a risky step. It hears the events it asks for (a prompt you send, each step and its result, each turn's end), and the same mod works in the terminal, in VS Code's Work and Chat, and in the SDK.

  • You allow it once, on what it showed you. Before a mod runs, DGC lists in plain words everything it can do: the events it hears, what it reads, what it draws, the commands it adds, the internet hosts it may reach (none, unless it names them), and whether it may ask your model. An update that asks for more asks again; one that asks for less just runs. If a mod changes while its Allow card is open, refresh the list and review it again before allowing it.
  • It can never approve anything for you. On a step it may watch, stop it, or turn an Allow into an Ask. It can't draw over or change an Allow card, and everything it draws says which mod drew it.
  • It runs in a sandbox, one process per mod. It reaches the internet only through DGC, to the hosts it named, and reads files only through DGC, inside what it declared. A mod that crashes is shown as stopped with its error; DGC carries on.
  • In a Pip's run a mod can only stop a step (an Ask stops it, since nobody is there to answer) and never draws: Pips run unattended.

DGC's own

#

Three ship with DGC, off until you allow them: Context (what fills the context window, part by part, in a panel that follows each turn), Tally (the steps DGC takes this session, by tool) and Guard (holds a risky command, such as deleting, force-pushing or throwing away changes, and asks you first, saying what it would change).

Managing them

#
  • /mods lists every mod with its state and what it asks for, with Allow, On, Off and Reload.
  • In a terminal: dgc mods (the list), dgc mods allow NAME, dgc mods on NAME, dgc mods off NAME, dgc mods install FOLDER|GIT-URL [--subdir PATH] and dgc mods remove NAME.
  • dgc --safe-mode starts no mods at all, and so does the mods_enabled setting turned off.

Writing one

#

Ask DGC: the built-in mod-author skill writes one with you. A mod is a folder holding dgc-mod.json (its name, version, entry file and capabilities) and its code, using dgc_sdk.mods (Python) or @vibedgc/sdk/mods (TypeScript).

  • dgc mods validate [FOLDER] prints what it hooks, draws and asks for.
  • dgc mods test [FOLDER] runs it against sample events.
  • dgc mods dev [FOLDER] runs it in this session and reloads it each time you save. Its session approval covers that folder and the capabilities it requested when started; adding capabilities needs another Allow. Ending the session ends its mod processes and workers.
Documentation