Skip to main content

blemees-tui

Multi-session terminal chat for blemees-agentd — Claude Code + Codex agents, side-by-side, in one process. Watch a session running in another terminal, take ownership when you need to type, and never lose a transcript across restarts.

Status: v0.1 alpha. The core loop is complete; see docs/IMPLEMENTATION.md for what's done and what's next, and docs/PARITY_BACKLOG.md for the curated parity backlog.

blemees-tui screenshot placeholder

Why

Claude Code and Codex are great in their own terminal, but bouncing between sessions, recovering from a closed shell, or watching a long-running agent from a second machine all leave you stitching tabs together by hand. blemees-tui is a thin presentation layer over blemees-agentd that keeps every session live in one window:

  • Multi-session sidebar with keyboard navigation (Ctrl+1..0, Ctrl+Tab, :select N).
  • Watch mode — observe a session running anywhere (blemees-agentd is a Unix-socket daemon; SSH-forward it across machines) and take ownership with one click.
  • Streaming Markdown transcript with collapsible reasoning, syntax-highlighted Edit diffs, Write previews per language, and live token estimates.
  • Persistent across restarts — sessions snapshot to disk after every turn; cold start paints from cache and only replays new daemon frames.
  • Per-session drafts — typed text travels with the session, not the composer.
  • First-class observability — footer chip, event-log overlay (Ctrl+E), raw-frame debug pane (Ctrl+D), persistent log file.

Install

# PyPI (when published)
pip install blemees-tui

# uv tool
uv tool install blemees-tui

# pipx
pipx install blemees-tui

# Homebrew (planned)
brew install blemees/tap/blemees-tui

Requires Python ≥ 3.11 and a running blemees-agentd ≥ 0.9.0 Unix socket.

Quickstart

# Auto-resolve the daemon socket (uses $BLEMEES_AGENTD_SOCKET, then
# $XDG_RUNTIME_DIR/blemees/agentd.sock, then /tmp/blemees-agentd-<uid>.sock)
blemees

# Or point explicitly:
blemees --socket /path/to/agentd.sock
Action Keys
New session Ctrl+N
Attach to existing (watch) Ctrl+T
Switch session F1–F12, Ctrl+Tab
Switch to session ≥ 13 :select 13
Close current session Ctrl+W
Delete current session Ctrl+Shift+W
Interrupt turn Ctrl+C
Force reconnect Ctrl+R
Event log overlay Ctrl+E
Debug pane (raw frames) Ctrl+D
Save transcript (Markdown) Ctrl+S
Toggle reasoning visibility t
Help overlay ?
Quit q

/foo slash commands forward verbatim to the active backend (so Claude Code skills and Codex slash commands stay reachable). :foo is reserved for TUI commands — see :help.

Configuration

$XDG_CONFIG_HOME/blemees/tui.toml (or ~/.config/blemees/tui.toml):

[connection]
socket = ""                    # empty = auto-resolve

[defaults]
backend = ""                   # empty = first advertised by hello_ack
claude_model = "sonnet"
codex_model = "gpt-5.2-codex"
claude_permission_mode = "default"
codex_sandbox = "workspace-write"

[ui]
theme = "dark"                 # dark | light
sidebar_width = 28
show_thinking = false
markdown_code_theme = "monokai"

[logging]
level = "info"                 # debug | info | warn | error
keep_days = 7

CLI overrides:

blemees --socket /tmp/blemees-agentd.sock --log-level debug

Env-var overrides: BLEMEES_AGENTD_SOCKET, BLEMEES_TUI_THEME, BLEMEES_TUI_LOG_LEVEL, BLEMEES_TUI_BACKEND.

Persistence

Files under $XDG_STATE_HOME/blemees/tui/:

  • sessions.json — index of live + watching sessions.
  • history.json — bounded ring (200 entries) of closed-but-remembered sessions.
  • snapshots/<id>.json — full per-session in-memory state cached to disk so a TUI restart skips the full daemon replay.
  • transcripts/ — Ctrl+S Markdown exports.
  • tui.log — rotating log (weekly, 7 keep).

Develop

pip install -e '.[dev]'
pytest                          # 85 tests
ruff check .
ruff format --check .

See CONTRIBUTING.md for the workflow.

Docs

License

MIT — see LICENSE.

Metadata

Release files for blemees-tui 0.1.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 blemees-tui 0.1.0
File Size Uploaded
blemees_tui-0.1.0.tar.gz 79.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for blemees-tui 0.1.0
File Interpreter ABI Platform
blemees_tui-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 151.2 kB

Release files / blemees_tui-0.1.0.tar.gz

Download URL blemees_tui-0.1.0.tar.gz
Size 79.4 kB
Tags Source
SHA-256 checksum
How to use checksums
48088b35ab4ed44c7600777e552c8dc5fda9569d8cefb3a54a71e6092e998df0
BLAKE2b-256 checksum
How to use checksums
0b4d567bcfc789e150c5daef8026566439b824a39be478db71dcc81773b86380
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / blemees_tui-0.1.0-py3-none-any.whl

Download URL blemees_tui-0.1.0-py3-none-any.whl
Size 71.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4441d74c857c1c8091f3a31b55762e13d6e88337c6f4fc4c680fef3ee141d5ed
BLAKE2b-256 checksum
How to use checksums
56d5a4e229305cba80895b071647e4ddb73d060144c344f2ab9efc1bb61ef7dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

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