Repository navigation
Releases: JoshuaOliphant/brooklet
Releases · JoshuaOliphant/brooklet
Release list
brooklet 0.4.0 — brooklet watch + Claude Code Monitor integration
[0.4.0] - 2026-04-11
Bug Fixes
- Save consumer offsets on exception path (SIGTERM, KeyboardInterrupt)
- cli: Harden brooklet watch against SIGTERM races and per-event errors
- consumer: Exception-safe offset save for glob mode + save-before-assign
Documentation
- Add changelog, document cat command, and add release reminder hook
- Document
brooklet watchand its Monitor integration use cases - Add executable showboat demo of brooklet watch gapless resume
- Fix format_event docstring and README tail -f claim
Features
- Add Claude Code harness engineering setup (#7)
- Add
brooklet watchcommand for Claude Code Monitor integration
v0.3.0
New Commands
brooklet --version— prints installed versionbrooklet cat <topic>— dumps all events from a topic without advancing consumer offsets (read-only inspection)
# Inspect a topic without affecting consumer positions
brooklet cat my-topic --stream-dir ./streams
# Compare with consume (which advances offsets)
brooklet consume my-topic --group reader --stream-dir ./streamscat reads the topic's raw JSONL files directly, wrapping each line with envelope metadata (_ts, _seq, _src) — same format as consume, but no offset tracking.
v0.2.1
Fixes
--stream-dirfor plugin subcommands —brooklet scout scanandbrooklet pytest scannow accept--stream-dir(env:BROOKLET_DIR) so--outputtopics write to a user-chosen directory instead of the data source directory- Scout
--outputerror handling —stream.produce()failures now warn gracefully instead of crashing with a raw traceback (matching pytest plugin behavior) - Lazy stream opening in pytest — batch mode no longer creates
.brooklet/metadata directories unnecessarily; streams only open when--outputor--followrequires them
v0.2.0 — Unified CLI with Typer + Pluggy
What's New
Unified CLI
Brooklet now ships a single brooklet command replacing the separate brooklet-scout and brooklet-pytest entry points.
Core commands (pipe-friendly):
echo '{"type":"hello"}' | brooklet produce my-topic --stream-dir ./streams
brooklet consume my-topic --group reader --stream-dir ./streams | jq '.'
brooklet register sessions "*.jsonl" --mode glob --stream-dir ./streams
brooklet topics --stream-dir ./streams --jsonPlugin System
Pluggy-based plugin discovery. Built-in plugins (scout, pytest) and third-party plugins use the same interface:
[project.entry-points.brooklet]
my-plugin = "my_package:MyPlugin"Migration
brooklet-scout <path>→brooklet scout scan <path>brooklet-pytest <path>→brooklet pytest scan <path>--richflag renamed to--dashboard
Other Changes
- Python 3.12+ now required (aligned with DEC-009)
richis a hard dependency (no longer optional)- 226 tests passing
v0.1.1 — Python 3.11+ support
Lower minimum Python version from 3.12 to 3.11. No code changes needed — brooklet doesn't use any 3.12-only features.
Also fixes a type annotation in scan_runs().
v0.1.0 — First release
brooklet v0.1.0
The SQLite of event streaming — consumer coordination on top of JSONL files.
What's included
Core API
brooklet.open(path)— open a stream directorystream.register(name, path, mode)— map external JSONL to a topicstream.consume(topic, group, follow)— read events with offset trackingstream.produce(topic, event, source)— write events to local topics- Single-file and glob modes with follow (live tailing) support
- Thin envelope auto-injection (
_ts,_seq,_src)
Built-in adapters
- brooklet-scout — Claude Code session analytics (token usage, tool calls, model breakdown)
- brooklet-pytest — pytest-reportlog analytics (pass/fail/skip counts, slowest tests, failure details)
CI integration
- GitHub Actions workflow with brooklet-pytest health gate
- Example pipeline:
pytest → brooklet-pytest --output → ci_health_check.py
Install
pip install brooklet
# or
uv add brooklet