cd /news/developer-tools/show-hn-debugbrief-turn-debugging-se… · home topics developer-tools article
[ARTICLE · art-35854] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

Show HN: DebugBrief – turn debugging sessions into reports, no AI

DebugBrief, a new open-source tool, captures debugging sessions and generates evidence-backed Markdown reports for pull requests, handoffs, or incident notes without using AI. The tool records commands run and notes taken, then builds a report from actual events, avoiding inferred root causes or unverified test results.

read4 min views1 publishedJun 21, 2026
Show HN: DebugBrief – turn debugging sessions into reports, no AI
Image: source

Record what you do while debugging and turn it into an evidence-backed Markdown report for a pull request, a handoff, or an incident note.

DebugBrief captures the notes you write and the commands you run, then builds a report from what actually happened: what you tried, what failed, what passed, and which files changed in between. It does not use AI and does not infer a root cause or report a test result you did not get.

pipx install debugbrief
uv tool install debugbrief

Plain pip install debugbrief

works too. DebugBrief needs Python 3.9 or newer. Native Git is used when available to capture repository metadata and changed files. The project you debug does not need to be Python; only DebugBrief runs on Python.

debugbrief start "Fix add() returning wrong result"
debugbrief note "add() subtracts instead of adds; the test expects 5."
debugbrief run -- python -m pytest -q test_calc.py   # fails
debugbrief redo                                      # same test, now passes
debugbrief end                                       # writes the PR report

Everything after --

runs exactly as you typed it, with its output streaming live to your terminal. DebugBrief flags (--timeout

, --shell

, --no-redact

, --verify

) go before the --

. redo

re-runs the last captured command, and end

defaults to the pr

report mode.

Tip: a one-line alias makes the capture prefix disappear in daily use.

alias db="debugbrief run --"
db pytest -q

A report built only from recorded evidence. A short excerpt from a real run:

## Summary

Failing check `python -m pytest -q test_calc.py` passed after 2 attempts over 2s, changes touched calc.py.

## Red to green

A check failed at 12:02:09 and `python -m pytest -q test_calc.py` passed at 12:02:10 (window 1s).

Between the failing and passing checks, these files changed (correlation, not proven cause):
- `calc.py`

Full samples: PR, handoff, incident.

run

executes a command under a pseudo-terminal so its output streams live, then records the real exit code, a bounded output preview, the duration, and a per-commandgit

snapshot.- Pass or fail comes only from the exit code. A command counts as verified only when a recognized test, build, lint, or typecheck runner actually exits 0.

  • It works with any language. A recognized runner (pytest, jest, vitest, go test, cargo test, dotnet test, make check, and more) is classified automatically. Any other command is still captured, and you mark it a check with --verify

. end

derives the report from those events: the red-to-green window, the reproduce and verify commands, a timeline, the observed error, and the failed attempts. Empty sections are omitted.- Secrets are redacted before anything is written to disk. Redaction is best effort; --no-redact

opts out for a single command.

Full command reference and the complete recognized-runner list: docs/COMMANDS.md. Security model and redaction details: SECURITY.md.

Post a report straight to a pull request (GitHub CLI optional):

debugbrief end --stdout | gh pr comment --body-file -

The five you use most:

Command What it does
start "<title>"
Start a session
note <text>
Record an observation
run -- <command>
Run and capture a command
redo
Re-run the last captured command
`end [--mode pr handoff
Finalize and write a report (default pr )

The rest:

Command What it does
init
Set up the project and show the workflow
status
Show the active session
preview [--mode ...]
Print the report without ending the session
cancel [--yes]
Discard the active session, no report
doctor [--fix]
Health-check the project and state
recover
Repair a broken session pointer after a crash
last
Show the most recent report path
open
Open the most recent report
list
List recorded sessions
show <id>
Show a recorded session

Full flags and behavior for each: docs/COMMANDS.md.

DebugBrief uses the Python standard library and native git

. On Python 3.11 and newer it needs nothing else. On Python 3.9 and 3.10 it uses the small tomli

package to read an optional .debugbrief.toml

. DebugBrief itself makes no network requests, uses no AI, and collects no telemetry.

Linux and macOS are tested in CI across Python 3.9 through 3.14. Other Unix-like systems may work but are not currently tested. Native Windows and PowerShell are not supported.

  • Capture is explicit through debugbrief run

. Output streams live while a bounded preview is stored for the report, so there is no full transcript. - Full-screen TUIs (a vim

session,htop

) are not meaningfully captured. Run those directly and record the outcome withnote

. - Redaction is conservative and best effort; it does not catch every secret.

  • Git sections need native git

; outside a repository they are omitted.

pip install -e ".[dev]"
pytest

See CONTRIBUTING.md for the full setup and contribution guidelines.

MIT. See LICENSE.

── more in #developer-tools 4 stories · sorted by recency
── more on @debugbrief 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-debugbrief-t…] indexed:0 read:4min 2026-06-21 ·