henhouse
Parse Claude Code and Cursor JSONL transcripts into typed session summaries and tool-call events. Stdlib only. Read-only: it never writes a transcript, a registry, or a git tree.
This package is the data layer. It is not the curses dashboard (that stays in
leghorn) and it is not top
for sessions (that stays in roost).
Those products link this schema; they do not take a pip dependency on it.
Schema fields for henhouse.tools.v1 and henhouse.session.v1 are documented in
docs/SCHEMA.md. 0.1.x treats those shapes as stable for
downstream tools; additive fields are OK.
Install
Python 3.10+:
pip install henhouse
Or install a tagged release from GitHub:
pip install git+https://github.com/gmhoward9289-ops/henhouse@v0.1.1
Develop from a clone:
pip install -e ".[dev]"
One-file / no-deps install is still how roost and leghorn ship: copy this
package's src/henhouse/ tree, or keep using the vendored parser in those
repos until an optional import lands.
from henhouse import iter_tool_calls, load_tool_calls, summarize, read_tail, ToolCall, SCHEMA_TOOLS
If a pip install leghorn put a top-level henhouse.py on sys.path, that
file wins over this package. Use PYTHONPATH=src or uninstall the leftover
module file; roost and leghorn themselves keep their vendored parser and do
not pip install henhouse.
CLI
python -m henhouse path.jsonl
prints
{"schema": "henhouse.tools.v1", "calls": [ ... ]}
--legacy-json prints a bare list of call objects.
cost_usd on session summaries is always None. Token counts are not a
subscription bill; this package will not invent money.
Used by
- leghorn — live git/CI dashboard
- roost —
topfor sessions - pytest-session-trace — CI assertions (plan 3)
License
Apache-2.0
Release files for henhouse 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| henhouse-0.1.2.tar.gz | 16.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| henhouse-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.9 kB
Release files / henhouse-0.1.2.tar.gz
| Download URL | henhouse-0.1.2.tar.gz |
|---|---|
| Size | 16.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e32696ec3bc248d159c681714cec4d96bfe8747fcb12184c103276957220cbb
|
|
BLAKE2b-256 checksum How to use checksums |
b01339fc0b89075e3a64fcced29254f82e13eea2fa900e4646eefb13760a6991
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 20, 2026.
Transparency logRelease files / henhouse-0.1.2-py3-none-any.whl
| Download URL | henhouse-0.1.2-py3-none-any.whl |
|---|---|
| Size | 15.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d13b7a0c84f3150f59f0f32deda2e31de3ad62f0a01abaa273cf38df13648f19
|
|
BLAKE2b-256 checksum How to use checksums |
e602dc6023a90998c56581110f2e3e4aa1e5c6cf1517d5eb78699038f9d21397
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 20, 2026.
Transparency log