Thanks for helping make AI coding-agent observability less opaque.
agenttrace is intentionally small: one Rust binary, local-first analysis, no hosted database, and no background service. It can read local SQLite stores written by supported agents. Changes should keep that shape unless there is a clear reason.
git clone https://github.com/luoyuctl/agenttrace.git
cd agenttrace
cargo test
cargo build --release -p agenttrace
target/release/agenttrace --demo
target/release/agenttrace --doctorRun the relevant checks before opening a PR:
cargo fmt --check
cargo clippy -- -D warnings
cargo test
cargo build --release -p agenttrace
ruby -c homebrew/Formula/agenttrace.rbFor TUI changes, also check narrow and wide terminals when possible:
target/release/agenttrace --demo
target/release/agenttrace --demo --doctor
target/release/agenttrace --demo --overview -f jsonParser PRs are very welcome. Please read docs/guides/parser-guide.md first.
A good parser PR includes:
- redacted or synthetic test data
- format detection
- extraction for role, timestamp, model, token usage, tool calls, and tool errors when available
- regression tests for malformed or partial records
- no private prompts, API keys, file paths, or proprietary source snippets
Do not make a fixture look more complete than the source format. Aggregate-only sources should remain Aggregate or Limited instead of receiving synthetic event timestamps or fake tool spans.
Agent-run parser, growth, release, or quality review work should also follow docs/maintainers/agentops-prompt-rules.md before opening or approving a PR.
Session logs often contain prompts, source paths, repository names, tool arguments, and sometimes secrets. Do not paste raw private logs into issues or PRs.
Prefer one of these:
- synthetic fixtures that preserve shape but not content
- tiny redacted snippets with secrets removed
agenttrace --doctor -f jsonoutput for discovery/cache issues
Participation in this project is covered by the Code of Conduct.
agenttrace should stay:
- fast to install and run
- useful with zero configuration
- readable in small terminals
- honest about unsupported formats
- boring in the best way: deterministic, local, and easy to debug