DGC v0.47.2 is out
Navigate
Install DGC
DGC v0.47.2Edit on GitHub ↗
Getting started/Getting started

install, first launch, connect a model

Getting started

#

DGC is a local-first coding agent for your terminal. It talks to supported native and compatible endpoints — Ollama, Anthropic Messages, OpenAI Responses, LM Studio, llama.cpp, vLLM, and cloud providers. The selected model receives the conversation context it needs; optional remote integrations receive the requests or tool arguments you direct to them. A configured language server receives workspace metadata and the full text of documents queried through code intelligence.

Install

#

Requires Python 3.10+. The installer builds each version in its own directory with its own virtualenv under ~/.local/share/dgc/versions and links the launcher into ~/.local/bin, so it never touches your system Python:

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

Then confirm it is on your PATH:

dgc --version

If that reports command not found, add the bin directory to your PATH:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

Two environment variables let you override where things land: DGC_DATA_DIR (where versions live, default ~/.local/share/dgc; the older name DGC_DIR still works) and DGC_BIN (the launcher directory, default ~/.local/bin). dgc update remembers both: it updates the install it was started from.

An update builds the new version beside the current one and switches the dgc launcher only once the build is complete, so a failed update leaves the version you had running, and dgc exits non-zero. The active version and the two newest others are kept: dgc update --rollback switches back, dgc update --version X switches to a kept version, and dgc update --list shows them. An install made by an older installer (under ~/dgc) moves to the new layout on its next update; the old directory is left in place for you to delete. dgc doctor shows which install is running, where the launcher points and what dgc update would change.

If cursor, code, or codium is on PATH, the installer also verifies and installs the self-hosted editor extension into each of them. Set DGC_SKIP_EXTENSION=1 before the install command to leave editor-managed state untouched and install an extension later from the editor page.

First launch

#
dgc

DGC starts on its defaults — a local Ollama at http://localhost:11434/v1 — and does not interrupt you with a questionnaire. If that is where your model lives, the first run just works. If it is not, the first turn says so: the endpoint or the model name comes back in the error, with the command that fixes it.

To choose deliberately instead:

  • dgc setup — walk through providers and models once, before you start.
  • /connect — pick a provider (Ollama, LM Studio, OpenAI, OpenRouter, …) or a custom LAN host, at any point.
  • /model — switch the model on the current host.
  • dgc doctor — check the endpoint is reachable and the model is offered. It exits non-zero when the endpoint cannot be reached, so a script can gate on it. A model the server does not list is a warning, not a failure: a proxy may serve one it does not advertise, so that exits 0 and says so.

Talking to the agent

#

Type a request and press Enter. DGC plans, reads files, runs tools, edits code, and streams its thinking and its answer back live. Press Esc to stop the current turn; press Enter again on a new prompt to queue it.

/docs opens this library in the terminal (searchable; the same pages as docs.vibedgc.com). #a fact appends to project memory — see Memory. @path attaches one file; $skill applies a workflow.

Attaching a document

#

@path also takes a document, not only a text file: .docx, .xlsx, .pptx, .odt, .ods, .odp, .rtf and .pdf. DGC reads the text out of it locally and hands that to the model. Nothing is uploaded, no office application is launched, no macro runs, no embedded link is followed, and the file is never written back.

What the model gets is extracted text, and the attachment says so: layout, images, charts and anything the extractor could not reach are simply absent, so an answer about a document's appearance is not something it can give you. Spreadsheets come through as their cell values, slide decks as their text and speaker notes.

Limits are the point of the feature, not an afterthought. A document is read up to 16 MB off disk and contributes the same bounded share of the prompt a text attachment does, so a long report is truncated rather than allowed to swallow the context. Encrypted files are refused — including a PDF with an empty user password — as are corrupt ones and archives whose structure looks unsafe; each refusal names the problem and what to do about it, and the rest of your message still goes through. Legacy .doc/.xls/.ppt are refused with the remedy: save them as the modern format.

PDFs need pypdf, which DGC installs with it. If it is missing, a PDF is refused by name instead of being read as noise; every other format above needs nothing beyond DGC itself.

How DGC writes back

#

Answers are plain professional text. DGC does not decorate them with emoji or other ornamental symbols — not in headings, not as list markers, not as status marks — unless you ask for them, or the file it is editing already uses them. Files in your workspace are written as links that open at the right line, and sources as ordinary links.

Ask for a different style in the prompt and you get it for that turn. To change it for a project, say so in DGC.md — see Memory.

Documentation