Skip to content

Releases: JoshuaOliphant/brooklet

brooklet 0.4.0 — brooklet watch + Claude Code Monitor integration

Choose a tag to compare

@JoshuaOliphant JoshuaOliphant released this 11 Apr 13:36

[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 watch and 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 watch command for Claude Code Monitor integration

v0.3.0

Choose a tag to compare

@JoshuaOliphant JoshuaOliphant released this 24 Mar 23:35

New Commands

  • brooklet --version — prints installed version
  • brooklet 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 ./streams

cat 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

Choose a tag to compare

@JoshuaOliphant JoshuaOliphant released this 24 Mar 23:28

Fixes

  • --stream-dir for plugin subcommands — brooklet scout scan and brooklet pytest scan now accept --stream-dir (env: BROOKLET_DIR) so --output topics write to a user-chosen directory instead of the data source directory
  • Scout --output error 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 --output or --follow requires them

v0.2.0 — Unified CLI with Typer + Pluggy

Choose a tag to compare

@JoshuaOliphant JoshuaOliphant released this 24 Mar 21:05

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 --json

Plugin 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>
  • --rich flag renamed to --dashboard

Other Changes

  • Python 3.12+ now required (aligned with DEC-009)
  • rich is a hard dependency (no longer optional)
  • 226 tests passing

v0.1.1 — Python 3.11+ support

Choose a tag to compare

@JoshuaOliphant JoshuaOliphant released this 23 Mar 00:15

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

Choose a tag to compare

@JoshuaOliphant JoshuaOliphant released this 23 Mar 00:09

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 directory
  • stream.register(name, path, mode) — map external JSONL to a topic
  • stream.consume(topic, group, follow) — read events with offset tracking
  • stream.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

Links