Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
D

dirac

> 编程语言
Open source

Coding Agent singularly focused efficiency and context curation. Reduces API costs by 50-80% vs other agent AND improves the code quality at the same time. Uses

1.4K stars0 likes0 views
WebsiteGitHub

About

Coding Agent singularly focused efficiency and context curation. Reduces API costs by 50-80% vs other agent AND improves the code quality at the same time. Uses

# Dirac, an Open-source AI coding agent for efficiently doing complex work Dirac 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)](https://agentclientprotocol.com/) 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 clients Install the extension from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=dirac-run.dirac) or [Open VSX](https://open-vsx.org/extension/dirac-run/dirac), 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 away Start an interactive CLI session with `/goal `. Dirac can keep working toward the same objective for hours or days without drifting, autonomously creating and coordinating tasks until the goal is achieved. It pauses when it needs your input, and you can check in, steer, pause, resume, or stop it at any time. Dirac can extend itself Use `/new-tool ` to build a tool tailored to your workflow while you work. Dirac turns the requirements into a typed tool, compiles it, validates it, and smoke-tests it. Task-scoped tools are available immediately; persistent workspace and global tools appear in the **Tools** tab and can be enabled without starting a new conversation. Tool creation must be enabled. Smoke commands follow your configured approval policy. Low-verbosity responses Models 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 works If 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 work Route 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](https://dirac.run/posts/token-arbitrage-sol-vs-luna). No more approval fatigue Configure 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 editing Dirac 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](https://dirac.run/posts/hash-anchors-myers-diff-single-token). AST code inspection Dirac 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: ```text inspect_ast(operation: "outline", paths: ["utils/db.py"]) inspect_ast(operation: "implementation", paths: ["utils/db.py"], symbols: ["DBManager.init_db"]) ``` Structural results depend on parser and index coverage. Dynamic references require separate verification. AST code manipulation Structural edits operate on symbols rather than approximate text matches. Dirac can replace one complete function or rename hundreds of indexed references in one call: ```text edit_ast(operation: "replace", targets: [{ path: "utils/db.py", symbol: "DBManager.init_db", replacement: "..." }]) edit_ast(operation: "rename", targets: [{ path: "src/", symbol: "old_name", replacement: "new_name" }]) ``` Ask Dirac questions about itself Every Dirac build ships with its source. Use `/askDirac ` to ask how the installed version works; Dirac receives read-only access to its own functional source so it can answer against the build you are running. Parallel code edits Dirac'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 change When 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 enrichment Before 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 `AGENTS.md` instructions, matching rules, and active skills join the request as repository guidance. Concurrent, first-class subagents Subagents 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 execution Path-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 tasks Context 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 points The 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 comparison We benchmarked Dirac and other open-source agent harnesses on eight multi-file refactoring tasks from public GitHub repositories. In this comparison, every harness used `gemini-3-flash-preview` with thinking set to `high`. Dirac completed all eight tasks at the lowest average cost. > **Cost note:** A bug discovered in Cline after these runs ([issue #10314](https://github.com/cline/cline/issues/10314), [PR #10315](https://github.com/cline/cline/pull/10315)) caused the Dirac and Cline results to slightly underreport cache-read costs ($0.03 instead of $0.05 per million tokens). | Task (repository) | Files* | Cline | Kilo | Ohmypi | Opencode | Pimono | Roo | **Dirac** | | :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | DynamicCache ([Transformers](https://github.com/huggingface/transformers)) | 8 | [(diff)](evals/cline/cline_refactor_DynamicCache) [$0.37] | [(diff)](evals/kilo/kilo_code_refactor_DynamicCache_FAILURE) [N/A] | [(diff)](evals/ohmypi/ohmypi_refactor_DynamicCache) [$0.24] | [(diff)](evals/opencode/opencode_refactor_DynamicCache) [$0.20] | [(diff)](evals/pimono/pimono_refactor_DynamicCache) [$0.34] | [(diff)](evals/roo/roo_code_refactor_DynamicCache) [$0.49] | ** [(diff)](evals/dirac/dirac_refactor_DynamicCache) [$0.13]** | | IOverlayWidget ([VS Code](https://github.com/microsoft/vscode)) | 21 | [(diff)](evals/cline/cline_refactor_IOverlayWidget) [$0.67] | [(diff)](evals/kilo/kilo_code_refactor_IOverlayWidget) [$0.78] | [(diff)](evals/ohmypi/ohmypi_refactor_IOverlayWidget) [$0.63] | [(diff)](evals/opencode/opencode_refactor_IOverlayWidget) [$0.40] | [(diff)](evals/pimono/pimono_refactor_IOverlayWidget) [$0.48] | [(diff)](evals/roo/roo_code_refactor_IOverlayWidget) [$0.58] | ** [(diff)](evals/dirac/dirac_refactor_IOverlayWidget) [$0.23]** | | addLogging ([VS Code](https://github.com/microsoft/vscode)) | 12 | [(diff)](evals/cline/cline_refactor_addLogging) [$0.42] | [(diff)](evals/kilo/kilo_code_refactor_addLogging) [$0.70] | [(diff)](evals/ohmypi/ohmypi_refactor_addLogging) [$0.64] | [(diff)](evals/opencode/opencode_refactor_addLogging) [$0.32] | [(diff)](evals/pimono/pimono_refactor_addLogging) [$0.25] | [(diff)](evals/roo/roo_code_refactor_addLogging) [$0.45] | ** [(diff)](evals/dirac/dirac_refactor_addLogging) [$0.16]** | | datadict ([Django](https://github.com/django/django)) | 14 | [(diff)](evals/cline/cline_refactor_datadict) [$0.36] | [(diff)](evals/kilo/kilo_code_refactor_datadict) [$0.42] | [(diff)](evals/ohmypi/ohmypi_refactor_datadict) [$0.32] | [(diff)](evals/opencode/opencode_refactor_datadict) [$0.24] | [(diff)](evals/pimono/pimono_refactor_datadict) [$0.24] | [(diff)](evals/roo/roo_code_refactor_datadict) [$0.17] | ** [(diff)](evals/dirac/dirac_refactor_datadict) [$0.08]** | | extensionsWorkbenchService ([VS Code](https://github.com/microsoft/vscode)) | 3 | [(diff)](evals/cline/cline_refactor_extensionswb_service_FAILURE) [N/A] | [(diff)](evals/kilo/kilo_code_refactor_extensionswb_serv

GitHub Issues· 13 open

View all on GitHub
  • #65

    Feature request : remote access via mobile app

    Updated Aug 28, 2026
  • #85

    Feature Request: Persistent Memories

    Updated Aug 18, 2026
  • #154

    Workspace-Controlled Hooks and Custom Tools Execute Without Trust Confirmation

    Updated Aug 7, 2026
  • #108

    FR: various hooks

    Updated Jul 29, 2026
  • #121

    Windows TUI ignores typing until Enter is pressed once

    Updated Jun 15, 2026
  • #117

    Closing dirac keybinding seems dangerous

    Updated Jun 8, 2026
  • #93

    FR: sandboxing

    Updated May 19, 2026
  • #92

    FR: vi / vim bindings

    Updated May 15, 2026
  • #71

    Thank you so much for creating such an awesome tool!

    Updated May 7, 2026

Highlights

  • •TypeScript

> Tags

TypeScript

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言