Repository navigation
Doberman can now push an approval challenge to your phone, so you can tap Approve or Deny from anywhere instead of walking back to the machine. The rest of the release closes ways a destructive command could slip past the scanner, and stops a Claude Code hook from failing open when nobody answers in time.
Highlights
- Phone approvals.
doberman phone setupsends two-factor and elevation challenges to your phone through ntfy with Approve and Deny buttons; on the 2FA tiers the tap replaces the TOTP code. - Wrapper bypasses closed. A destructive or egress command hidden behind
builtin,eval,strace,flock,unshare, ortasksetnow classifies the same as its unwrapped form instead of passing. - Hooks can no longer fail open. Claude Code hook entries pin a
timeoutthat outlasts Doberman's challenge ceiling, so a timed-out hook cannot let the call through before Doberman denies. - Deletes approved through a host hook are re-checked. The prompt shows the blast radius, and the delete is verified again before it runs, denying if the files changed since you approved.
- A post-approval
BLOCKrevokes the elevation it just granted, instead of leaving it live until its TTL expires. - The decision log records who decided. Every row now carries which code path resolved an authentication and whether a person actually approved it, both readable from
doberman log --jsonl.
Upgrade
pip install -U doberman-core, then re-run doberman install-hooks (add --host cursor if you use Cursor) to pick up the hook timeout pin. An existing install keeps its old un-pinned entry until you do, and doberman doctor flags it. Phone approvals are opt-in: doberman phone setup.
One thing worth knowing before you turn phone approvals on: the push carries the command the agent asked to run, with credential-shaped tokens masked, so that command line reaches whichever ntfy server you point at. --server points setup at a self-hosted instance instead of the public one.
Full changelog: https://github.com/DobermanCore/Doberman-Core/blob/main/CHANGELOG.md#v0187--2026-09-09 · Compare: v0.18.6...v0.18.7 · Thanks @harshitagrawal2O, @Maqbool61, @Som0111, @be-student, @vortsghost2025, @jasperdingg.