Dirac, an Open-source AI coding agent for efficiently doing complex workDirac is built for long-running software-engineering work, precise codebase changes, and efficient model use. What is Dirac?Dirac is an open-source coding agent you can use in VS Code, from the terminal, or through any compatible Agent Client Protocol (ACP) client. It supports dozens of providers and hundreds of models, so you can bring the models and credentials that fit your workflow instead of being locked into one stack. Dirac combines autonomous task execution with purpose-built code tools: hash-anchored file editing, syntax-tree inspection and refactoring, parallel operations, subagents, continuous steering, and configurable permission controls. The goal is simple: give capable models better infrastructure so they can work longer, faster, and with less token overhead. Why Dirac?Available in VS Code, Open VSX, the CLI, and ACP clientsInstall the extension from the Visual Studio Marketplace or Open VSX, run Dirac in any terminal with the CLI, or use it from ACP-compatible editors such as JetBrains IDEs and Zed. Your provider configuration stays with Dirac across these interfaces. Goal mode: give Dirac a goal and walk awayStart an interactive CLI session with
Dirac can extend itselfUse Tool creation must be enabled. Smoke commands follow your configured approval policy.
Low-verbosity responsesModels do not need to narrate every routine step. Enable Low-verbosity responses to keep progress and final answers concise while preserving decisions, caveats, failures, and verification results.
Steer it while it worksIf something occurs to you after a task starts, send another message at any time. Dirac queues it and delivers it to the model with the next tool response, updating the work without cancelling or restarting the task.
Use a separate Utility model for supporting workRoute context compaction, new-task handoffs, commit-message generation, and permission decisions to a separate, cheaper model so the main model can stay focused on implementation. In our context-compaction case study, this model arbitrage reduced cost by more than 80%: Sol vs. Luna: token arbitrage for AI agents.
No more approval fatigueConfigure the Utility model as the first pass for permission requests and give it an explicit natural-language policy. It approves requests that satisfy the policy and escalates unsafe or uncertain requests to you. Every automatic approval remains visible in the transcript with its reason. Hash-anchored file editingDirac uses a custom stable line-anchor protocol instead of brittle search-and-replace blocks. The model can identify an exact source range by its anchors and replace only that range, even after nearby lines move. This reduces edit payloads, ambiguity, and retries. Read how hash anchors and Myers diff make editing more efficient.
AST code inspectionDirac uses the codebase's syntax trees to inspect structure without reading entire files. The model can request outlines of many files or retrieve one exact implementation and its references:
Structural results depend on parser and index coverage. Dynamic references require separate verification. AST code manipulationStructural edits operate on symbols rather than approximate text matches. Dirac can replace one complete function or rename hundreds of indexed references in one call:
Ask Dirac questions about itselfEvery Dirac build ships with its source. Use
Parallel code editsDirac's tool protocol lets models batch independent reads, searches, edits, and commands in one response. Coordinated changes across multiple files happen together instead of requiring a separate model round trip for every operation.
Review one multi-file changeWhen automatic approval is disabled, Dirac groups related changes into a single multi-file diff view. You can review the complete change as one unit instead of opening and approving a sequence of disconnected file edits. Opportunistic first-request enrichmentBefore the first request reaches the model, Dirac detects likely filenames, directory paths, and symbol names and assembles a bounded context packet. Named symbols receive definition-first context and indexed references. You can also mention Git changes, workspace diagnostics, terminal output, URLs, text files, PDFs, DOCX files, spreadsheets, notebooks, and images. Applicable Concurrent, first-class subagentsSubagents can research, edit, run commands, and validate work concurrently. Each can receive its own prompt, tools, timeout, and optional parent context. Dirac tracks source freshness and rejects stale edits at write time, allowing independent agents to work safely in the same codebase.
Repository-aware executionPath-aware instructions, rules, skills, workflows, and hooks carry repository guidance into each task. Permissions are evaluated at tool boundaries, command batches report exit status and bounded output, and Chromium checks return screenshots, console messages, page errors, and the current URL. Dirac can also isolate work in a Git worktree with integration and cleanup controls. Browser interaction uses screenshots and coordinates; the main-worktree flow expects a clean, single-root Git workspace. Continuity for long-running tasksContext condensation preserves decisions, exact paths, failed attempts, and validation state. Separate bounded recovery paths handle transient provider errors, context overflow, empty responses, and interrupted tool loops. Plan, Act, and Utility work can use separate model configurations. Reviewed handoffs can move remaining work into a fresh task, while task IDs support resuming work across VS Code, the CLI, pipelines, and compatible ACP clients. Completion checks and restore pointsThe optional completion verifier reviews acceptance criteria and claimed validation in a separate model pass. If a required criterion is missing, it returns concrete follow-up work to the active task. This model-based check does not replace tests or human review. Checkpoints capture workspace files and operational task state. Restore can apply to the workspace, the task, or both, including queued steering, active skills, task tools, and context tracking. Harness comparisonWe benchmarked Dirac and other open-source agent harnesses on eight multi-file refactoring tasks from public GitHub repositories. In this comparison, every harness used
Install Dirac
The CLI requires Node.js 22.13 through 24.x and npm. Node.js 25 is not supported because of known memory issues. Quick startVS Code or an Open VSX editor
CLI
Useful ways to start:
See the CLI guide for Goal mode, custom tools, task resumption, JSON output, model overrides, and the complete configuration reference. ACP editorsDirac can run as an external agent in ACP-compatible editors, including JetBrains IDEs and Zed. Installing it from the editor's ACP Registry is recommended so the client can manage installation and updates.
Dirac manages its provider credentials independently from the editor. See the ACP setup guide for authentication, environment variables, manual configuration, and troubleshooting. Providers and configurationDirac supports API-key providers, subscription-backed providers, cloud platforms, and OpenAI-compatible endpoints. Configure interactively in the extension or with Common environment variables include See Provider-specific settings for AWS Bedrock and Google Cloud Vertex AI, and the CLI authentication guide for terminal setup. Development
See CONTRIBUTING.md for contribution guidelines. Unit and integration test commands are documented in the root Star historyLicenseDirac is open source under the Apache License 2.0. AcknowledgmentsDirac is a fork of Cline. We are grateful to the Cline team and contributors for their foundational work. Built by Max Trivedi at Dirac Delta Labs. |










