Skip to main content

TUI dashboard for managing Claude Code, Codex, and shell sessions via tmux

Project description

Claude Code Terminal (CCT)

PyPI Python License: MIT README EN README ZH README FR

TUI dashboard for managing Claude Code, Codex, and shell sessions via tmux.

What's New Since v0.1.0

  • Codex and Shell session support
  • Auto Pilot and WAITING auto-focus queue
  • Home page, session panel toggle, and session deletion flow polish
  • Interactive raw-stdin path with Shift+Enter / Alt+Enter compatibility
  • Interactive cursor overlay in snapshot preview
  • Major multi-session performance work: preview caching, bounded 1000-line preview window, truncation hint, prioritized polling, and in-place SessionList updates
  • New read-only diagnostics for cursor stability and live-session latency profiling

Languages

Features

  • In-dashboard permission handling
  • Vim-style modal operation
  • Working / Idle / Waiting / Stopped / Auto / Shell state display
  • Snapshot preview with ANSI rendering
  • Interactive cursor overlay in snapshot preview
  • Preview truncation hint when pane history exceeds the current 1000-line preview window
  • WAITING auto-focus with FIFO queue processing
  • Per-session Auto Pilot
  • macOS notifications
  • Built-in Claude Code / Codex / Shell support

Installation

Quick Install (recommended)

curl -fsSL https://raw.githubusercontent.com/phinease/claude-code-terminal/main/install.sh | sh

Via pipx

pipx install claude-code-terminal

Via pip

pip install claude-code-terminal

Prerequisites

  • Python >= 3.11
  • tmux (brew install tmux / apt install tmux)

Usage

cct

Keybindings

Normal Mode

Key Action
/ Navigate sessions
n New session
r Rename session
i Enter Interactive mode
a / d Approve / Deny permission request
1-9 Select numbered permission option
p Toggle Auto Pilot
c Select mode (text copy)
Ctrl+\ Toggle session panel
Ctrl+x Delete session
q Quit

Interactive Mode

All keystrokes pass through directly to the selected agent session.

Key Action
Ctrl-] Exit to Normal mode
Ctrl+\ Toggle session panel
Shift+Enter Newline (kitty protocol terminals)
Alt+Enter Newline (legacy terminals)
Mouse click on session list Switch session

Preview Behavior

  • Normal and interactive preview both keep a bounded 1000-line window.
  • When older content is omitted from the preview window, CCT shows a truncation banner below the preview.
  • Waiting detection and Auto Pilot still use plain capture-pane, independent of preview truncation.

Environment variables:

  • CCT_PREVIEW_HISTORY_LINES Current implementation clamps this to at least 1000.
  • CCT_INTERACTIVE_PREVIEW_HISTORY_LINES Current implementation also clamps this to at least 1000.
  • CCT_USE_LEGACY_INTERACTIVE_VIEW=1 Disables the interactive cursor overlay path and falls back to the legacy interactive preview behavior.

Diagnostics

  • python tests/e2e_cursor_scope.py Verifies cursor position and mixed ASCII / Chinese input stability.
  • python tests/e2e_latency_scope_existing_sessions.py Reuses current live tmux sessions in read-only mode to profile preview, list, and polling costs.

Interface

+----------------------------------------------------------------+
| Vibe · Agent Dashboard                                         |
+----------------------------------------------------------------+
| Sessions           | Preview: frontend-refactor (claude)        |
|--------------------|---------------------------------------------|
| * frontend-refactor| > Analyzing src/components/Header.tsx...    |
|   proj/frontend    |                                             |
| * api-fix          |   I'll update the Header component to       |
|   proj/backend     |   use the new theme variables.              |
| ! test-fix         |---------------------------------------------|
|   proj/tests       | ! Permission: execute `npm test`            |
| o data-migration   |   [a:Allow] [d:Deny]                        |
|   proj/migration   |                                             |
+--------------------+---------------------------------------------+
| NORMAL — i:Interactive  n:New  a/d:Allow/Deny  p:Pilot         |
+----------------------------------------------------------------+

Status icons: * Working  ! Waiting  o Idle  x Stopped

Notes

  • The current interactive preview is still tmux snapshot based, not a full terminal-buffer renderer.
  • Recent performance work reduced preview-path overhead, session-list remount churn, and all-session polling load.

Roadmap

Version Goal
v0.2 (current) Claude Code / Codex / Shell sessions, Auto Pilot, bounded preview, performance improvements, diagnostics
v0.3 More tools (Aider/Open Claw), session groups, fuzzy search
v0.4 Web version (textual-web), diff view, Docker isolation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claude_code_terminal-0.2.0.tar.gz (134.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claude_code_terminal-0.2.0-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

File details

Details for the file claude_code_terminal-0.2.0.tar.gz.

File metadata

  • Download URL: claude_code_terminal-0.2.0.tar.gz
  • Upload date:
  • Size: 134.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for claude_code_terminal-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b4cb241a09408817cb89a72b72fd4e71e9a495dbf6bd4a78d147b626c7640e61
MD5 5f0c56224d53fa133771d5d538657faa
BLAKE2b-256 dc5b5489633ed3b6e183512539a593f800d2e3974df96d071873f09678d6942c

See more details on using hashes here.

File details

Details for the file claude_code_terminal-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for claude_code_terminal-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d890db15f865a92a18a66587b24f89ae8ea8fed96038b40eb443fc619faf2a68
MD5 a1c29aca54ccd56ae87394d7645a3cbf
BLAKE2b-256 bff0c004827398ed0f5943b4a0ae1d80168873885e1ca9a7bca232e051b87e28

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page