Skip to content

DGC v0.20.8

Choose a tag to compare

@OpenPeach-ai OpenPeach-ai released this 23 Aug 18:31

A coding-agent CLI for the models you run — local (Ollama, llama.cpp, LM Studio, vLLM) or any OpenAI-compatible cloud.

Install

curl -fsSL https://vibedgc.com/install.sh | bash
dgc setup   # pick a provider + model
dgc         # start coding

New in 0.20.8

  • The prompt band auto-compacts on a short terminal. When the window is 20 rows or shorter, the band drops its blank padding rows and the ❯ prefix and keeps just the tint — so a small window isn't dominated by prompt padding. Grow the window and the full band comes back.

New in 0.20.7

  • The prompt band is solid at any terminal size and breathes properly. On a narrow/small terminal the band no longer breaks into ragged, fragmented tint — it word-wraps the text (continuation rows indent under the ❯) and paints a full-width rectangle at every size. And it now has proper breathing room above and below instead of sitting flush against the surrounding text.
  • One resume hint on exit. Quitting a session used to print two separate "Resume this session" notices; now it's a single block offering both dgc --continue (most recent here) and dgc --resume <id> (this exact session).

New in 0.20.6

  • The prompt band matches a polished terminal CLI exactly. Your submitted prompt now sits in a clean, neutral-grey band at every terminal colour depth — the subtle-tint that used to skew blue (and then too purple) when a 256-colour terminal downsampled it is gone, because the band is a true neutral grey with no colour channel to collapse.

New in 0.20.5

  • /artifact reads right and never overflows. Preview names render correctly (previously-mangled em-dashes/arrows are healed on load), long names stay inside the menu, and both the private and LAN states carry a plain-language explainer of exactly how to open a preview on another device.
  • Removing a preview now confirms first — an accidental x on the wrong row no longer drops it silently (the .html on disk is untouched either way).
  • Served pages are responsive. Generated artifacts get a viewport tag, fluid units, and images/tables that fit — no sideways scroll on a phone.

New in 0.20.4

  • A stronger default skill set. Eight new built-in skills cover the parts of coding the old set didn't: plan (read the real files, write a bounded ≤6-step plan, execute exactly that — the rail that keeps a small local model from sprawling), write-tests (author tests that match your project and are proven non-vacuous), ship (self-review, deliberate staging, conventional commit + PR — never git add -A), onboard (understand an unfamiliar repo and optionally capture it to DGC.md), security-review, handoff, refactor, and setup (which folds the old doctor/providers/permissions skills into one connect-diagnose-configure skill). loop is sharpened into a revert-on-regression convergence rail, and DGC now does exactly what you asked — no unrequested scope — by default.

New in 0.20.3

  • /handoff — hand your work to another agent. Writes a self-contained handoff doc (objective, what's done incl. files/commands/commits, current state, key decisions, next steps, how to continue) to HANDOFF-<time>.md and shows it in the chat — paste it into a fresh session, Codex, or a teammate's agent to continue cold.
  • A settings menu. /settings opens a full, editable browser — Model & sampling, Behaviour, Display, Artifacts — each a page of key: value rows; Enter edits one (a picker for choices, a prompt for numbers/text) and it applies live. /set <key> <value> is the one-line shortcut (e.g. /set temperature 0.7).
  • Steadier on flaky local servers. A context-overflow error (the real window smaller than your context_size, common on llama.cpp/Ollama/LM Studio) now compacts and retries the turn instead of ending it; a dropped connection retries with backoff; and compaction keeps a richer, merged summary so long sessions lose less.
  • Easier on weak models. edit calls sent in the wrong shape (a JSON string, a single object, alternate key names) are repaired automatically instead of failing.
  • More lifecycle hooksSessionStart, Stop, and PreCompact join the existing tool/prompt hooks.

New in 0.20.2

  • /goal — set a finish line and let it run. Give the session a standing objective with /goal <objective>; DGC keeps it in view every turn and won't stop with it unmet after doing work, until you /goal clear it. It's remembered across turns and restored when you resume the session.
  • Sampling controls for local models. New temperature / top_p / top_k / min_p settings (empty = respect the server's default) let you tame a local model that loops or repeats — e.g. Qwen likes temperature 0.7, top_p 0.8, top_k 20. Only what you set is sent.
  • Better convergence on weak local models. DGC now catches an edit_file grind (many near-miss edits that never land) and steers to a whole-file write_file; it refuses to run a tool call whose arguments were cut off at the token limit (which used to corrupt a file); and a long shell output is saved to a temp file with a grep hint instead of dropping its middle — so a compiler error mid-stream isn't lost.
  • /artifact shows every way to open it. In LAN mode it now lists the localhost, LAN, and Tailscale URLs (plus an optional artifact_hostname for a reverse-proxy domain) — so "open it on my phone" or "over Tailscale" just works.
  • A live rail on every tool call. A running tool now wears an animated accent bar down its left edge that settles when it finishes; its header reads in tense ("Running" → "Ran", "Reading" → "Read"), and the call and its output are one grouped block. Reasoning streams as a calm rolling tail instead of an ever-growing wall of grey.
  • Resume keeps your prompt band. Reopening a session (dgc --continue / /resume) now redraws each past prompt in its tinted band, and /jump works on resumed turns.
  • No more silent "Thinking…" hang. A turn where the model only reasoned (no reply, no tool) no longer ends with nothing shown and the status stuck on "Thinking…" — it recovers and asks for a real reply.
  • Artifacts that actually get built. Sharper instructions stop a model from describing a page instead of serving it (no more "I'm building a dashboard at http://127.0.0.1…" that serves nothing). /artifact now always opens — even with none yet — so the LAN-share and a new plan-mode artifact toggle are always reachable, and its menu no longer overflows on narrow terminals.
  • /resume delete actually deletes. ^D on a session now removes it (with a confirm) instead of closing the menu.
  • Sturdier multi-agent runs. Esc/cancel now reaches a running sub-agent, a denied sub-agent tool sees your reason, and a background session's auto-title / next-prompt suggestion no longer lands on the wrong session when you switch mid-turn.
  • Cleaner local-model runs. A timed-out shell command now kills its whole process tree (no orphaned cargo/go test/gradlew builds hogging CPU), weak models are steered to write a whole stub file in one call, and the system prompt sheds instructions it can't use in a given mode.
  • Fixes: multibyte characters (arrows, °, em-dashes) no longer mangle on some terminals; fenced code blocks stand out more; menus stay centered and inside their box on resize.

New in 0.20.1

  • Fixes: headless plan mode (dgc -p --mode plan) no longer crashes on EOF — it presents the plan and exits cleanly.

New in 0.20.0

  • Edits that land on any local model. The edit matcher recovers a weak model's near-misses through more tiers — smart quotes, indentation, LF/CRLF, a drifted interior line, and lazy ... existing code ... elisions — validated on a 19.5k-case corpus at zero wrong-applies.
  • multi_edit — apply several edits to one file in one call; applied hunks are kept even if a later one fails.
  • A universal thinking switch. /think off now genuinely turns reasoning off on every backend (Ollama, vLLM/SGLang, OpenAI, DeepSeek, Anthropic), each with the right wire format; reasoning models still shine with /think high.
  • Over-thinking watchdog — if a model reasons past a budget without acting, DGC aborts and retries with less reasoning.
  • Loop resilience — a grind guard stops a model repeating a failing command, max_tokens bounds runaway output, and Ollama keep_alive keeps your model resident between turns.

New in 0.19.1

  • Plans, as artifacts. In plan mode the agent’s plan is now rendered as a clean, dgc-design page and served on your artifact URL — plan.md made to look at, as a rendered page. The CLI proposes opening it alongside the approval. (present_planartifacts.serve_plan.)

New in 0.19.0

  • Run a fleet of agents at once. DGC is now multi-agent: Ctrl+N spawns another agent (even mid-turn), Ctrl+O cycles, and *Ctrl+* opens the dashboard — every agent with its live state (● on screen · ⋮ working · ◆ needs you · ○ idle), where you attach, close, pin and rename. A background agent that finishes or needs a decision flags itself in the bottom bar; its approval waits until you switch to it. Each agent can use a different model or endpoint.
  • Composer grows to fit. Long prompts wrap and the box expands (and scrolls) instead of erroring "window too small" on a small/phone screen.
  • /model now tells you which endpoint failed and to /connect a reachable host (e.g. a LAN IP) instead of a bare error.
  • Fixes: the /// welcome logo no longer shears apart when the terminal is narrow.

New in 0.18.2

  • A visibly highlighted prompt band. Your submitted prompt now sits in a full-width, tinted band (purple lift, breathing room above/below) — it reads distinctly from the model's output.
  • Per-phase status timer. The status row now shows ⠧ Thinking… 0.4s (the current phase + its own timer) on the left and the total turn time + ⇣tokens + [stop] on the right, and the transcript's live-reasoning label matches the status word.
  • Centered dialogs. Every popup (context, /docs, /dashboard, pickers) is horizontally centered instead of hugging the left edge.
  • /dashboard is now an interactive session roster — a status header plus + New session and every session as a selectable row (Enter opens · x deletes). DGC runs one agent per process, so this is the faithful single-process take on a fleet dashboard.
  • Artifacts: localhost or LAN. New artifact_bind setting (toggle with b in /artifact) exposes previews to your local network with a shareable 192.168.x.x URL — open them on your phone.

New in 0.18.1

  • Artifacts now share ONE server + a dropdown. Every artifact lives on a single fixed local port (127.0.0.1:45000 by default) behind a single page with a top-left dropdown to switch between them — instead of a new port each. The list is saved to ~/.dgc/artifacts.json and the server auto-starts on launch, so your previews survive a dgc restart. Tune with artifact_port / artifact_autostart.

New in 0.18.0

  • Artifacts — when the agent builds something to look at, the new artifact tool serves it on a local 127.0.0.1 URL and DGC offers to open it in your browser. /artifact lists everything running — open one, or stop it to free its port. Reaches the VS Code / Cursor extension too (an "Open in browser" card).
  • dgc-design skill — a built-in frontend design language (Inter + JetBrains Mono, near-black canvas, one purple accent). Off for normal coding; artifacts load it automatically so previews look intentional by default.
  • Plan mode that sticks — the proposed plan is saved to a plan.md beside the session; reopen it any time with /view-plan.
  • In-app /docs — a searchable how-to library with a scrollable markdown reader, right in the terminal.
  • /dashboard — a one-glance overview of the session (model, context, running artifacts, recent sessions).
  • Ghost-text suggestions — DGC predicts a sensible next prompt after each turn; press Tab / → to accept.
  • Polish — a sub-cell fractional context bar, collapsible thinking sections, a highlighted prompt band, and a click-to-open top-right context meter.

New in 0.7.1

  • The CLI welcome is now a polished welcome card (block DGC logo + menu), the product is named Vibe DGC (the command stays dgc), and model · mode sits on the composer border.

New in 0.7.0

  • New home: vibedgc.com. Install/update, the site, the extension and GitHub all point there; the old domains 301/redirect to it so existing installs and dgc update keep working.
  • The CLI is now a full-screen terminal app with a rounded composer, a dotted braille wordmark, and a continuously-animated logo.

New in 0.6.1

  • dgc now opens as a full-screen terminal application (full-screen style): a continuously-animated wordmark, a scrollable transcript, a live status line, and a pinned composer showing model · mode. Shift+Tab cycles mode, Esc interrupts, PageUp/Down scrolls. dgc --classic keeps the inline REPL.

New in 0.6.0

  • A new look: monochrome black-and-white with a single purple accent, an animated startup wordmark, per-tool icons, a line-numbered diff renderer, a context-usage bar, a composer showing model · mode, and /theme (dark|light) + /context.

New in 0.5.2

  • A live working… spinner + a · done end-of-turn marker (you always know if it's running, finished, or waiting on you); /mode and /think now persist across restarts; and folders under $HOME are their own project (no longer rooted at $HOME).

New in 0.5.1

  • A cleaner CLI look: decision prompts (permission / plan / pick-an-option) now use the arrow-key menu (bold-white heading, muted secondary), a width-responsive banner, flat tool output, and brand-tinted /help.

New in 0.5.0

  • Sub-agents on their own model + host — the task tool delegates to a fresh sub-agent that can run on a different machine/model than the main loop (subagent_model / subagent_base_url / subagent_api_key), plus named .dgc/agents/*.md personas. New /agents and /subagent commands.
  • 10 bundled default skills — code-review, debug, deep-research, doctor, verify, batch, dataviz, loop, fewer-permission-prompts, providers — alongside your own ~/.dgc/skills/ and project skills.
  • VS Code / Cursor extension — a native panel driving dgc serve: controls in the prompt box, an in-panel Settings page, session resume + rewind. Install from Open VSX or https://vibedgc.com/vscode/.
  • Background bash (bash_output / bash_kill), MCP servers (/mcp), checkpoints + /rewind, lifecycle hooks, image/vision input (@image), model fallback, custom slash-commands (.dgc/commands/*.md), and an ACP adapter (dgc acp).

Also in the box

  • Works with Ollama, llama.cpp, LM Studio, vLLM and any OpenAI-compatible cloud (OpenAI, OpenRouter, Groq, DeepSeek, Together, Mistral)
  • Four permission modes: default / acceptEdits / plan / auto (full-auto); simple rules, evaluated deny → ask → allow
  • Plan mode: read-only research → approve the plan into any mode
  • Thinking levels (/think, plus think / think hard / ultrathink keywords)
  • Memory (DGC.md), web search (DuckDuckGo / Brave / Tavily / SearXNG), session resume, self-update (dgc update), auto context compaction
  • Automatic fallback to a text tool-call protocol for local models without native tool calling
  • Pure Python 3.10+, three dependencies, PolyForm Noncommercial

Site: https://vibedgc.com