Witnox
Local-first observability and behavioral analytics for AI coding agents.
Witnox is an independent, read-only project for understanding how coding agents use tools, time and tokens. It does not require Herdr or ORC. Early builds focus on safe local aggregation of Claude Code JSONL sessions; other agents, shell subcommand parsing, token attribution and cross-agent comparisons are planned, not implemented yet.
Development status
v0.1.0 initial release. The supported command aggregates Claude Code tool-use counts; no shell subcommand parsing or automatic monitoring yet.
Quick start
uv sync --extra dev
uv run witnox --version
uv run witnox report --days 7 --top 30
uv run witnox report --root /path/to/user-home --days 7 --json
uv run pytest -q
Windows PowerShell:
uv run witnox report --root $HOME --days 7 --top 30
Progress is shown with tqdm when stderr is an interactive terminal. Use --progress to force it or --no-progress to suppress it. Progress is written only to stderr, so --json stdout remains machine-readable.
Privacy and boundaries
- Local-first; no network requests, background services, or runtime telemetry.
- Reads
.claude*/projects/**/*.jsonlbut does not modify it. - Only counts tool names. Does not save or print user prompts, raw commands, file paths, tool arguments, or tokens.
- CLI JSON contains aggregates only. Consider aggregate information potentially sensitive before sharing publicly.
- Repeated snapshots are deduplicated by tool-use ID within a file. Logs without stable identifiers may be skipped.
- No claims that a tool call equals a task, a successful result, or an actual subprocess execution.
Roadmap
- Validated tool-call aggregation with fixture tests.
- Separate Claude Bash and PowerShell parser with conservative counting and measurable uncertainty.
- Codex and Gemini adapters with documented schema and coverage limits.
- Optional incremental local SQLite index and reproducible cross-agent efficiency comparisons.
- Post-v0.1.0: add verified shell metrics and cross-agent comparison.
Publishing
PyPI deployment is triggered by publishing a GitHub Release tagged exactly v0.1.0 (matching pyproject.toml). The .github/workflows/publish.yml workflow tests with uv, builds distributions, and uploads using PyPI Trusted Publishing (OIDC). Configure the pending PyPI publisher for owner NaNIsaac, repository witnox, workflow publish.yml, and GitHub environment release (create it in the repository's Settings → Environments). The publish job references this environment. For a failed initial publication from an older release tag, use the manual workflow_dispatch on main after this change is merged; re-running an old release job would continue using the workflow stored at the old tag. No API token is required.
MIT licensed. See LICENSE.
Metadata
Release files for witnox 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| witnox-0.1.0.tar.gz | 11.4 kB | With provenance | Details for witnox-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| witnox-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for witnox-0.1.0-py3-none-any.whl |
Total release size: 17.7 kB
Release files / witnox-0.1.0.tar.gz
| Download URL | witnox-0.1.0.tar.gz |
|---|---|
| Size | 11.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
591a0a074d04e042bcf7ff00259e661dc6a20cb79551f5e8c5114eeb9148b7a8
|
|
BLAKE2b-256 checksum How to use checksums |
92c89ae4612499c839e0452727e411d5e1aaa3634521091cdcd59a8eb51c19f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logRelease files / witnox-0.1.0-py3-none-any.whl
| Download URL | witnox-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4912f2d78b10461799240f060d7dc9272d0d48f4cfa5fc115ade7981e49ea96f
|
|
BLAKE2b-256 checksum How to use checksums |
30fd435d51fd2f45de702f07c22cd4c8e7bda72ec579e401bc87d51a0069ce4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logSecurity for witnox 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for witnox-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.