Local-first coding agent
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 | bashOpens your editor's extension page. No editor? View on the Marketplace or install manually.
PolyForm Noncommercial · Pure Python · 15+ providers · CLI + VS Code
Why DGC
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.
Ollama, llama.cpp, LM Studio, vLLM — or any OpenAI-compatible cloud. Code stays local unless you pick a cloud model.
Streams every tool call, diff and result. Four permission modes set the rope: ask, auto-edit, plan-first, or full-auto.
A full-screen Python TUI and a native VS Code & Cursor extension — same agent, same local models, inline diffs.
Ctrl+N spawns another agent — even mid-turn; Ctrl+\ opens a dashboard of every agent's live state, to attach, pin or rename.
The task tool delegates to a sub-agent on its own model or host. Plus MCP servers, background shells, checkpoints, rewind and hooks.
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.
Read-only research → an approved plan → execute. Saved to plan.md beside the session; reopen with /view-plan.
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
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
Every prompt streams the model's reasoning, each tool call, the diffs it writes and the commands it runs — right in your terminal.
The part no local-model harness does
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.
auth/ package and re-export them, so the app imports from one place.auth/ package; move token.py and verify.py in.auth/__init__.py.iat claim to the JWTsign(), add iat: now() to the payload.pytest -q to confirm both pass./profile routeEvery 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.
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.
plan.mdThe 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.
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.
iat claim so tokens carry an issued-at time, then run the suite to confirm nothing breaks.iat and both tests are green.Connect anything
dgc setup walks you through these with arrow-key menus — local endpoints need no key; cloud ones prompt and store it safely.
● local — no API key, runs on your machine
You decide the rope
Switch live with Shift+Tab. Fine-grained allow / ask / deny rules layer on top, evaluated deny → ask → allow.
| Mode | Behavior |
|---|---|
default | reads & known-safe commands auto-run; writes and other commands ask first |
acceptEdits | file edits auto-approved; shell commands still ask |
plan | read-only — research and propose a plan you approve |
auto | full-auto — everything approved; deny-rules still apply |