Skip to main content

Betty

Betty

A real-time TUI monitor for Claude Code sessions.

Install

curl -fsSL https://betty4.sh/install.sh | bash

Or directly with uv / pip:

uvx --from betty-cli betty  # run without installing
uv tool install betty-cli   # install permanently
pip install betty-cli       # with pip

Use

# Start betty
betty

# In another terminal, run Claude Code as usual
claude

The companion auto-detects your session. No hooks or configuration needed.

Options

Flag Description
--global, -g Watch all projects
--worktree, -w Watch across git worktrees
--style UI style (rich or claude-code)
--version, -v Show version

Commands

Command Description
config Configure LLM summarization and UI settings
mock --demo Generate mock sessions for development

Keybindings

Navigation

Key Action
j/k Navigate turns
g/G Jump to beginning/end
1-9 Switch sessions
h/l Switch panels (manager expand mode)

Display

Key Action
o / Space / Enter Expand/collapse turn or span
e/c Expand/collapse all
f Cycle filters (All, Spans, Tools, Read, Write, Edit, Bash)
s/S Toggle summaries / Summarize all

Views

Key Action
M Toggle manager view
T Toggle tasks view
P Toggle plan view
I Toggle insights (analysis) panel

Analysis & Annotations

Key Action
A Analyze selected turn/span/session
[/] Zoom analysis level (turn / span / session)
n Annotate selected turn
a Toggle/clear alerts

Agent

Key Action
B Toggle agent panel (closed / full / compact)
? Ask Betty a question about the session

Other

Key Action
O Open PR in browser
x Export to Markdown
m Edit monitor instructions
D Delete session
Esc Close panel / clear selection
q Quit

Betty Agent

Betty Agent is a continuous session observer that tracks what Claude Code is doing and flags problems in real time. It combines heuristic detectors with optional LLM-powered narrative and drift detection.

Enable

betty config --agent

Or set the environment variable BETTY_AGENT_ENABLED=true.

What it does

  • Goal tracking — extracts the session goal and current objective, updating as the user gives new instructions
  • Progress assessment — classifies sessions as on_track, stalled, or spinning using error rates, retry patterns, and tool diversity
  • Error spike detection — warns when error rate exceeds 40% in recent tool calls
  • Retry loop detection — flags when the same tool is called 3+ times consecutively
  • Stall detection — notices gaps of 2+ minutes between turns
  • File change tracking — logs Read/Write/Edit operations with line counts
  • Milestones — marks every 10th tool call and 5th user message
  • LLM narrative (optional) — generates a 2-3 sentence situation report describing current activity
  • Goal drift detection (optional) — compares recent activity against the session goal and warns if the assistant has gone off track
  • Ask Betty — press ? to ask a natural-language question about the session; Betty answers citing turn numbers and file paths

Configuration

The agent uses your existing LLM configuration (set via betty config). LLM features (narrative, drift detection, goal determination, Ask Betty) require a configured LLM provider. Heuristic detectors work without one.

Setting Default Description
enabled false Enable the agent (opt-in)
update_interval 5 Minimum turns between LLM updates
max_observations 50 Max observations kept per session

Observations and reports are cached to disk (~/.cache/betty/) and persist across restarts.

License

MIT

Release files for betty-cli 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for betty-cli 0.15.0
File Size Uploaded
betty_cli-0.15.0.tar.gz 107.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for betty-cli 0.15.0
File Interpreter ABI Platform
betty_cli-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 230.6 kB

Release files / betty_cli-0.15.0.tar.gz

Download URL betty_cli-0.15.0.tar.gz
Size 107.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9cb72900903b168b86848954b568aa5a710a10ab3816def41e56dd314a282113
BLAKE2b-256 checksum
How to use checksums
a99daffe90a9789109c1bc32cccdc4a05a75b5e0143736dfea5a4c6b0fae5b3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 28, 2026.

Transparency log

Release files / betty_cli-0.15.0-py3-none-any.whl

Download URL betty_cli-0.15.0-py3-none-any.whl
Size 122.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
98ed382063b8905665e78e9eec6c6ab39253b2f8981aa71ed96b302512c31cfb
BLAKE2b-256 checksum
How to use checksums
c2634e77cbe4ae37048952fea20ab4e16916ba83cf95fa6c27540703749cb3c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.15.0 This release

2 release files

0.14.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page