v0.8.2 — new full-screen terminal UI, plus a VS Code & Cursor extension 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

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

dgc — ~/project
Vibe DGC v0.8.2
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 — everything a serious coding agent needs, running against whatever model you point it at.

Local-first

Your model, your machine

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

Agentic

Reads, edits, runs, verifies

Streams every tool call, diff and result. Permission modes decide how much rope it gets — ask, auto-edit, plan-first, or full-auto.

In your editor

Terminal or IDE

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

More than one loop

Sub-agents & hooks

Spawn sub-agents with task — each can run a different model or host. Plus background shells, MCP servers, checkpoints & rewind, and lifecycle hooks.

The toolbox

read_filewrite_fileedit_filebashbash_outputbash_killglobgrepweb_fetchweb_searchtasktodoskillsave_memorypresent_plan

Also in the box: vision / image input, model fallback, custom slash-commands, bundled default 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
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. cursor --install-extension dgc.vsix Install the extension 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