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, medium 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 outside the documented range clamp to the nearest permitted value rather than fail. 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.1.--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 are12000and750.--terra-max-input-tokens <number>and--terra-max-output-tokens <number>set the audit-call token estimates. The defaults are48000and2500.--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>selects the Luna finder reasoning effort. The default islow.--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.
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