dakar-review accepts the following options:
--repo-root <path>selects the Git checkout to review. The default is the current working directory.--config <path>selects a CodeRabbit YAML file relative to the repository root.--base <ref>selects the base ref for the first review. The default isorigin/main.--head <ref>selects the head ref to review. The default isHEAD.--state-root <path>overrides the review-history root.--max-tasks <number>caps the planned review tasks. Under thedeterministic-flex-v1route it composes with--max-luna-calls: the effective finder-pack cap is the smaller of the two, so--max-tasks 1 --max-luna-calls 4dispatches at most one finder pack. See the review-tuning flags below.--max-candidates <number>and--max-findings <number>override the workflow limits described below.--synthesis-model <model>and--synthesis-reasoning <level>are accepted for backward compatibility and still appear in the dry-run contract'ssynthesisModel/synthesisAdapterfields, but under thedeterministic-flex-v1route the audit call always runs on the fixed Terra Flex lane (gpt-5.6-terra, high reasoning); these flags no longer change which model or adapter performs the audit.--timeout <seconds>sets the ODW wait timeout. The default is3600. Operators overriding this should keep it above the review'sworstCaseReviewSeconds(2,020 s at default limits; see the dry-run example below), the worst-case wall clock the retry schedule can take.--runs-root <path>selects the ODW runs directory used for the run, logs, and result.--format <json|markdown>selects the output format. The default isjson.--odw-bin <path>selects the ODW executable. The default isodw.--telemetrystreams ODW logs to standard error while preserving the final result on standard output.--dry-runreturns the workflow contract without launching review agents.--helpprints command usage, and--versionprints the Dakar version.
The following review-tuning flags forward directly to the workflow arguments.
The CLI only parses and forwards them; the workflow enforces every bound, so
values above a documented maximum clamp to that maximum, while invalid values
or values below a minimum use the option's default rather than fail. For
budgetGbp, invalid values or values below 0.01 fall back to 0.15, a valid
0.05 remains 0.05, and values above 10 clamp to 10. See "Cost, budget,
and the ledger" and "Retries, downgrades, and deferral" below for what each
knob controls.
--budget-gbp <number>sets the hard admission budget in GBP. The default is0.15, raised from ADR 002's historical0.1hard-budget setting because, at pricing table 2026-07-18, the reserve-first audit left less than one finder pack's worst case inside that old benchmark (see the ADR's 2026-08-13 amendment).--max-luna-calls <number>caps the Luna Flex finder calls. The default is4. It composes with--max-tasks: the effective finder-pack cap is the smaller of the two.--transaction-max-files <number>sets the maximum files per finder pack. The default is5.--transaction-max-input-tokens <number>and--transaction-max-output-tokens <number>set the per-finder token estimates used for admission. The defaults are12000and2000.--terra-max-input-tokens <number>and--terra-max-output-tokens <number>set the audit-call token estimates. The defaults are48000and5000. The output defaults allow for reasoning tokens, which bill as output under the high-reasoning default lanes.--adapter-overhead-tokens <number>sets the per-call adapter overhead added to every admission estimate. The default is13000; raising it towards28000better models the cache pi's agentic loop writes on first, uncached calls.--max-audit-candidates <number>caps the candidates forwarded to the audit. The default is30.--luna-reasoning <low|medium|high>selects the Luna finder reasoning effort. The default ishigh(since the 2026-08-13 Flex repricing);mediumandlowde-escalate to the cheaper adapters.--routing-policy <policy>selects the routing policy. The default and sole live value isdeterministic-flex-v1.--flex-attempts <number>sets the Flex retry attempts per call. The default is3.--per-call-timeout <seconds>sets the per-model-call timeout. The default is300.
When --config is omitted, Dakar resolves review configuration in this order:
- Repository-local
.coderabbit.yaml. - Repository-local
.coderabbit.yml. - Repository-local
coderabbit.yaml. - Repository-local
coderabbit.yml. - User-level
$XDG_CONFIG_HOME/dakar/config.yaml, or~/.config/dakar/config.yamlwhenXDG_CONFIG_HOMEis unset. - Dakar's bundled example config.
The user-level config is treated as the current repository's CodeRabbit config
only when no repository-local CodeRabbit YAML exists. It is useful for agents
that should apply one house review policy across repositories without copying a
.coderabbit.yaml into every checkout.
How much of the CodeRabbit format is honoured
Dakar uses the resolved file at two boundaries. Host code deterministically discovers the path, safely parses the YAML without constructing custom tags, and validates Dakar's supported policy subset before preparation or any ODW, Luna, or Terra dispatch. The normalized serializable policy is then passed to the workflow. Models never parse the YAML file.
The host rejects a missing explicit --config path, malformed YAML, and an
invalid shape or value for any supported field. Diagnostics identify both the
resolved configuration path and the invalid field. Unsupported keys are
reported in the result's ignoredPolicyKeys list and have no routing, gating,
budget, retry, or recording effect.
| Support level | What it covers |
|---|---|
| Host-enforced | Path discovery and precedence; safe YAML parsing; supported-field validation; fail-closed handling of missing explicit paths and malformed policy; deterministic changed-path matching for reviews.path_instructions; per-finder-pack instruction slicing; and pre_merge_checks.custom_checks[].command execution. An omitted mode or mode: error blocks on failure; mode: warning is non-blocking. Review limits, budget, and ranges remain Dakar CLI and workflow arguments rather than CodeRabbit keys. |
| Model-mediated | language, tone_instructions, reviews.profile, path-instruction prose selected by the host for the current evidence pack, and custom-check instructions. These fields guide judgement and phrasing; their semantic interpretation remains model-mediated. |
| Ignored | Unsupported keys including early_access; chat.integrations; knowledge_base; issue_enrichment; code_generation; pull-request surface options such as auto_title_instructions, high_level_summary_*, walkthrough and labelling options, request_changes_workflow, abort_on_close, auto_review, and estimate_code_review_effort; and tools integrations such as github-checks, languagetool, clippy, and presidio. They are reported as ignored and do not affect deterministic execution. |
Table: CodeRabbit configuration support levels in the current route.
Executable custom checks use this validated subset:
pre_merge_checks:
custom_checks:
- name: Test
mode: error
command: make test
- name: Advisory analysis
mode: warning
command: make advisory
Commands run in configuration order from the reviewed repository after range
preparation and before ODW starts. A failed mode: error check returns
stage: "deterministic-gates" with redacted evidence and launches no Luna or
Terra calls; a failed non-error check is retained in SARIF and semantic review
continues. Commands must not embed credentials. Output is bounded, common
credential forms and sensitive environment values are redacted, and full
streams are represented by SHA-256 digests.
For repository-local configuration, executable commands are loaded from the prepared trusted base commit, not the head under review. A pull request cannot grant itself host command execution by adding or changing a custom check. User-level and bundled configurations are outside the reviewed repository and are read from their resolved operator-controlled paths.
Each reviews.path_instructions entry requires non-empty string path and
instructions fields. Dakar matches the glob against normalized changed paths
and includes an instruction only in finder packs containing a matching path.
General language, tone, profile, and natural-language custom-check guidance is
included without exposing executable commands or ignored keys. A root
AGENTS.md is loaded through its own dedicated path (described below),
independently of unsupported knowledge_base.code_guidelines patterns.
ODW normally runs agents in copied workspaces. Those copies may not contain the
repository's .git directory, so live review runs should pass repoRoot as an
absolute path. Finder and verifier prompts use git -C <repoRoot> for diff
evidence, and the prepare step passes the same path to the state helper.
If the reviewed repository has a root AGENTS.md, dakar-review passes it to
the workflow as repository-local review context. Workflow schema rules,
machine-readable output requirements, and Dakar safety rules still take
precedence over repository instructions.
Context tools: CodeGraph and DeepWiki
When the operator's mcp CLI is on PATH, finder prompts describe two
optional context tools. The CLI attempts CodeGraph warmup before dispatch only
when the reviewed head is checked out and the worktree is clean; otherwise it
skips warmup with a warning on standard error. Warmup calls share an overall
30-second deadline. When eligible, the CLI calls codegraph_index_directory on
the reviewed checkout, then codegraph_index_markdown on the root AGENTS.md,
README.md, and any markdown files in the review's changed set (bounded).
Warmup is advisory — a missing mcp command or a failed call warns on standard
error and never blocks the review — and can be disabled by setting
DAKAR_SKIP_CONTEXT_WARMUP in the environment. Finders are directed at the
CodeGraph query tools (context, callers, impact, symbol, and documentation
search) in preference to broad file reads.
The CLI resolves the repository's GitHub identity from its origin remote and
constructs optional context guidance at the host-side adapter boundary. Only
this translated guidance crosses into the workflow; the repository identity and
MCP command details do not. If no usable GitHub origin is available, the
guidance says that DeepWiki is unavailable. Otherwise it describes the DeepWiki
lookups (ask_question, read_wiki_structure, read_wiki_contents) with an
explicit caveat: DeepWiki is not realtime. It helps a finder understand
dependencies and the overall purpose of the codebase, but it may not
incorporate changes made over the past week, so it must never be cited as
evidence about the head under review.
For a syntax and contract check that does not call review agents, run either:
dakar-review --dry-run --repo-root "$PWD"
npm run odw:dry-run
Dry-run output includes the workflow version, default finder model set, synthesis model and adapter, task kinds, limits, default task graph, and JSON Schemas used for candidate, verifier, and synthesis handoffs.
By default, dakar-review stays quiet until the workflow finishes so standard
output is easy to parse. To watch ODW progress while keeping the final result
machine-readable, pass --telemetry:
dakar-review --repo-root "$PWD" --base origin/main --telemetry
Telemetry follows odw logs <run-id> --follow and writes the live ODW event
stream to standard error. The final JSON or Markdown result still goes to
standard output, so callers can redirect the channels independently:
dakar-review --repo-root "$PWD" --telemetry > review.json