Doberman-Core
v0.18.5 open-sourceYour AI's guard dog. Doberman sits at runtime, gating every input, output and tool call to stop unsafe or unintended actions before they execute.
doberman egress-velocity fanout 10 doberman update doberman demo --quiet doberman uninstall --global --yes export DOBERMAN_TELEMETRY=0 doberman telemetry status doberman telemetry on doberman telemetry off doberman 2fa reset-lockout doberman taint clear doberman log --jsonl >> /var/log/doberman/decisions.jsonl
Summary
Your AI's guard dog. Doberman sits at runtime, gating every input, output and tool call to stop unsafe or unintended actions before they execute.
Release history
- v0.18.5
Doberman-Core v0.18.5 adds log retention, version-check nudge, egress-threshold CLI, and richer doctor diagnostics
└──▷ GET THIS VERSION$ git clone --branch v0.18.5 https://github.com/DobermanCore/Doberman-Core.git # already have the repo? check out this version: $ git checkout v0.18.5
└──▷ TRY ITTighten fanout detection live without hand-editing the policy file — the change is gated, ledgered, and effective immediately.$ doberman egress-velocity fanout 10Check whether Doberman itself is up to date and get the exact pip command to upgrade, without running the upgrade automatically.$ doberman update- ›Adds
doberman egress-velocity [KNOB] [VALUE]to show or set theburst,volume-bytes, andfanoutdetection thresholds from the CLI, with approval gating and policy-ledger recording for threshold increases. - ›Adds
doberman decision-log-pruneto delete resolved decision-log rows by age and/or retained-row budget, without touching pending AUTH challenges or the policy-change ledger; mediated agents cannot invoke it via the shell. - ›Adds
doberman updatecommand for a timeout-bounded PyPI version check that prints thepip install -Uupgrade command without installing anything; disabled underDO_NOT_TRACK,CI, orDOBERMAN_UPDATE_CHECK=off. - ›Adds a passive 'new version available' nudge to
doberman statuswhen a newer PyPI version is cached (24 h cache), on the same opt-out controls asdoberman update. - ›Adds Password row to
doberman doctoroutput, showing OK when a password factor is enrolled or a non-critical WARN with adoberman password sethint when not.
+8 moreshow less
- ›Adds Dash extra and TUI extra rows to
doberman doctor, reporting whetherstarlette/textualare installed and printingpip install 'doberman[dash]'/[tui]hints when absent. - ›Adds
--dry-runflag toinstall-hooksthat previews the exact SessionStart command the installer writes, derived from the sameDASHBOARD_COMMANDconstant as the write path. - ›Adds
--jsonflag totunefor compact JSON output (separators=(',', ':')) matching the machine-readable contract documented indocs/CLI.md. - ›Adds a Copy details action to each pending approval card in the dashboard, copying the redacted fields as formatted JSON.
- ›Dashboard stats strip now triggers an immediate trailing-debounced 150 ms refresh when a decision lands in the live feed, with the 5 s interval retained as a fallback.
- ›Dashboard header now renders the real Doberman mark as an embedded PNG data URI instead of the placeholder 'D', keeping
doberman dasha single self-contained page. - ›Expands
doberman decision-log-pruneeligibility to any AUTH row with a recorded outcome (approval method, denied, blocked, error, executed), not only the original three literal values. - ›Changelog fragments now use per-PR files at
changelog.d/<PR-number>.md, compiled by release tooling to eliminate merge conflicts on parallel pull requests.
- ›Adds
- v0.18.4
Doberman-Core v0.18.4 adds opt-out telemetry,
demo --quietCI mode, global uninstall, doctor hook-path checks, and approval memory.└──▷ GET THIS VERSION$ git clone --branch v0.18.4 https://github.com/DobermanCore/Doberman-Core.git # already have the repo? check out this version: $ git checkout v0.18.4
└──▷ TRY ITRun the demo engine as a silent CI smoke test — exits non-zero on mismatch, no log noise on success.$ doberman demo --quiet
Completely remove Doberman from a machine (hooks, state, keys, and package) in a single command, skipping only the typed confirmation.$ doberman uninstall --global --yes
Opt out of telemetry via environment variable in CI pipelines or per-session shells where you cannot run a subcommand.$ export DOBERMAN_TELEMETRY=0- ›Adds
doberman demo --quietflag to suppress banners, narration, and hints — keeping only the summary line/table and exit code — sodemocan run as a CI smoke test without polluting build logs. - ›Adds
doberman uninstall --globalto perform a device-wide removal of Claude Code and Codex hooks, project state, possession factors, the fingerprint key, and device state before removing the package via pip or pipx;--yesskips the typedDOBERMANconfirmation,--dry-runchanges nothing, and--keep-packagepreserves the package. - ›Adds
~/.doberman/excluded_projects.jsondevice-wide exclusion list written byuninstallwhen global hooks are present, giving excluded projects a true no-op; rundoberman install-hooksin a project to clear the exclusion. - ›
doberman statusnow reports whether the current project is in the device-wide exclusion list. - ›Adds a new critical Hook command check to
doberman doctorthat fails and names a fix when hooks reference adobermanbinary not on PATH — instructs user to restore the binary or rundoberman uninstall-hooks.
+3 moreshow less
- ›Adds
doberman approvals status|clear|ttlsubcommands to expose bounded human controls over the new five-minute exact-action approval memory (HMAC-keyed, never downgrading destructive/critical/excluded/tainted-session actions). - ›Introduces a five-minute approval memory: a repeat of an exact previously approved action re-prompts at a one-click
soft_confirminstead of the full ladder; soft confirms never chain. - ›Telemetry is now on by default (opt-out): anonymous usage counts for the same five allowlisted events are sent unless disabled via
doberman telemetry off,DO_NOT_TRACK,DOBERMAN_TELEMETRY=0, or theCIenvironment variable;doberman setupprompts with a default of Yes, and the first CLI command prints a one-line notice to stderr before anything is sent.
- ›Adds
- v0.18.2
Doberman-Core v0.18.2 adds opt-in CLI telemetry controls and a self-hardening secret rule that fails closed on invariant violations.
└──▷ GET THIS VERSION$ git clone --branch v0.18.2 https://github.com/DobermanCore/Doberman-Core.git # already have the repo? check out this version: $ git checkout v0.18.2
└──▷ TRY ITCheck or toggle anonymous telemetry reporting before deploying Doberman in a shared environment.$ doberman telemetry status doberman telemetry on doberman telemetry off- ›Adds
doberman telemetry on|off|statussubcommand for opt-in anonymous CLI telemetry — off by default, limited to allowlisted counts and command names, never on the per-tool hook or proxy hot path. - ›Secret detector now verifies its own invariants at import and degrades to a fail-closed
AUTHverdict if ever broken, preventing both silent secret leakage and tool mediation being bricked.
- ›Adds
- v0.18.0
Doberman-Core v0.18.0 adds RAND-aligned guardrails, new CLI subcommands, a WebhookAuditSink, and a labeled detection corpus.
└──▷ GET THIS VERSION$ git clone --branch v0.18.0 https://github.com/DobermanCore/Doberman-Core.git # already have the repo? check out this version: $ git checkout v0.18.0
└──▷ TRY ITReset a locked-out user's TOTP second-factor without destroying their seed, so they can re-enroll immediately.$ doberman 2fa reset-lockoutRemove taint records that are blocking a pipeline after a false-positive secret detection.$ doberman taint clear- ›Adds
doberman 2fa reset-lockoutsubcommand to reset TOTP lockout state. - ›Adds
doberman taint clearsubcommand to clear taint records. - ›Adds
WebhookAuditSinkfor routing audit events to a webhook endpoint. - ›Introduces RAND-aligned guardrail rehaul including a session correlator, opt-in least-privilege default role, subjective-memory governance, and an egress task-match leg.
- ›Ships a labeled detection corpus with per-category FPR/TPR metrics for guardrail tuning.
- ›Adds
- v0.17.1
Doberman-Core v0.17.1 adds
--json/--jsonloutput to read-only commands, surfaces auth deadlines, and renamesdashboardtosession-summary.└──▷ GET THIS VERSION$ git clone --branch v0.17.1 https://github.com/DobermanCore/Doberman-Core.git # already have the repo? check out this version: $ git checkout v0.17.1
└──▷ TRY ITStream continuous log output in newline-delimited JSON into a SIEM or log aggregator.$ doberman log --jsonl >> /var/log/doberman/decisions.jsonl
- ›Adds
--jsonand--jsonlflags toscan,doctor,policy-history, andlogcommands, emitting machine-readable output with an explicit allowlist of already-redacted columns so future schema additions cannot leak into streams by default. - ›Renames
doberman dashboardtodoberman session-summary; the old name is retained as a hidden permanent alias so existingSessionStarthooks continue to work. - ›
doberman statusnow surfaces auth challenges auto-denied in the last 24 hours. - ›Adds
docs/CLI.mdanddocs/REASON_CODES.md, cataloguing all 51ReasonCodevalues and the condition that fires each one. - ›Every AUTH channel now displays its auto-deny deadline in the TTY prompt, GUI dialog, and dashboard card expiry.
- ›Adds