v0.20.0 — edits that land on any local model, multi-edit, and a thinking switch that works on every provider Get it →

Local-first coding agent

A coding agent for the models you run.

Vibe DGC is a full-screen agent that lives in your terminal — pointed at your own local model. It reads, edits, runs and verifies your code, with permission modes you control.

$curl -fsSL https://vibedgc.com/install.sh | bash

Opens your editor's extension page. No editor? View on the Marketplace or install manually.

PolyForm Noncommercial  ·  Pure Python  ·  15+ providers  ·  CLI + VS Code

dgc — ~/project
Vibe DGC v0.20.0
a coding agent for the models you run
[ New session ] or just start typing
New sessionCtrl+N
Switch modeShift+Tab
Commands/help
QuitCtrl+Q
Ask DGC to build, fix or explain… qwen3:8b · default

Why DGC

A real harness, not a chat wrapper.

Tools, four permission modes, plan mode, memory, web search, localhost artifacts — everything a serious coding agent needs, running against whatever model you point it at.

Your model, your machine

Ollama, llama.cpp, LM Studio, vLLM — or any OpenAI-compatible cloud. Code stays local unless you pick a cloud model.

Reads, edits, runs, verifies

Streams every tool call, diff and result. Four permission modes set the rope: ask, auto-edit, plan-first, or full-auto.

Terminal or IDE

A full-screen Python TUI and a native VS Code & Cursor extension — same agent, same local models, inline diffs.

A fleet, not one agent

Ctrl+N spawns another agent — even mid-turn; Ctrl+\ opens a dashboard of every agent's live state, to attach, pin or rename.

Sub-agents & hooks

The task tool delegates to a sub-agent on its own model or host. Plus MCP servers, background shells, checkpoints, rewind and hooks.

Artifacts on localhost

A proposed plan (or app, or chart) rendered as a page on one local port, with a dropdown to switch — the list survives a restart.

Plan mode that sticks

Read-only research → an approved plan → execute. Saved to plan.md beside the session; reopen with /view-plan.

Edits that land

A tiered matcher forgives a local model's near-misses — smart quotes, indentation, a drifted line — and multi_edit applies many hunks at once, keeping the good ones.

The toolbox

read_filewrite_fileedit_filemulti_editbashbash_outputbash_killglobgrepweb_fetchweb_searchtaskartifacttodoskilladd_skillsave_memorypresent_plan

Also in the box: artifacts (localhost previews the agent proposes opening), in-app /docs, next-prompt suggestions, vision / image input, model fallback, custom slash-commands, 11 bundled skills, and MCP servers.

In the terminal

Watch it work.

Every prompt streams the model's reasoning, each tool call, the diffs it writes and the commands it runs — right in your terminal.

dgc — ~/project
Vibe DGC · qwen3:8b · default

The part no local-model harness does

Your plan.md — made to look at.

When the agent proposes a plan, DGC renders it as a clean page at a localhost URL — the steps, the files it’ll touch, the approach — as a rendered page, not raw markdown scrolling past the terminal. The CLI offers to open it; you approve in the terminal, or keep planning. Every proposal shares one port behind a dropdown.

One port

localhost, with a dropdown

Every proposal shares 127.0.0.1:45000 behind a top-left switcher — open one, switch, or stop it. The list is saved, so it survives a restart. Bind it to your LAN to read a plan on your phone.

A separate skill

dgc-design, for your own frontends

Turn on the dgc-design skill and DGC builds your frontends in its own design language — the fonts, palette and spacing of this site. It’s a standalone skill, off by default; artifacts just switch it on automatically, so every preview looks right.

Still just markdown

It’s your plan.md

The page is a render of the real plan.md DGC saves beside the session — reopen it with /view-plan, and approve or keep planning right in the terminal. Fancy to look at, plain to keep.

VS Code · Cursor

DGC, docked in your editor.

The same agent and the same local models, inside a native side panel — streaming tool cards, inline diffs, session resume and a purple composer. It installs alongside the CLI.

auth.ts — my-app — Cursor
Explorer — my-app
▾ src
auth.ts
routes.ts
server.ts
▸ tests
package.json
tsconfig.json
auth.tsroutes.ts
1// issue an access token for a verified user
2import jwt from "jsonwebtoken";
3
4export function sign(sub: string) {
5 const now = Math.floor(Date.now() / 1000);
6 return jwt.sign({ sub, iat: now }, KEY, {
7 algorithm: "HS256", expiresIn: "15m",
8 });
9}
10
11export function verify(token: string) {
12 return jwt.verify(token, KEY);
13}
DGCqwen3:8b
I'll add an iat claim so tokens carry an issued-at time, then run the suite to confirm nothing breaks.
✎ edit_file src/auth.ts  +2 −1
const now = Math.floor(Date.now()/1000);- return jwt.sign({ sub }, KEY, {+ return jwt.sign({ sub, iat: now }, KEY, { algorithm: "HS256", expiresIn: "15m",
$ bash npm test -- token
✓ signs a token with an iat claim ✓ verifies a valid token 2 passing (0.4s)
Done — the token now includes iat and both tests are green.
Ask DGC to change this file…acceptEdits
The DGC side panel, running inside VS Code & Cursor. Install in VS Code Install in Cursor Setup guide →

Connect anything

One command to point it at any model.

dgc setup walks you through these with arrow-key menus — local endpoints need no key; cloud ones prompt and store it safely.

ollamallama.cppLM StudiovLLM OpenAIOpenRouterGroqDeepSeekTogetherMistral

local — no API key, runs on your machine

You decide the rope

Four permission modes.

Switch live with Shift+Tab. Fine-grained allow / ask / deny rules layer on top, evaluated deny → ask → allow.

ModeBehavior
defaultreads & known-safe commands auto-run; writes and other commands ask first
acceptEditsfile edits auto-approved; shell commands still ask
planread-only — research and propose a plan you approve
autofull-auto — everything approved; deny-rules still apply