TUI dashboard for managing Claude Code, Codex, and shell sessions via tmux
Project description
Claude Code Terminal (CCT)
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_LINESCurrent implementation clamps this to at least1000.CCT_INTERACTIVE_PREVIEW_HISTORY_LINESCurrent implementation also clamps this to at least1000.CCT_USE_LEGACY_INTERACTIVE_VIEW=1Disables the interactive cursor overlay path and falls back to the legacy interactive preview behavior.
Diagnostics
python tests/e2e_cursor_scope.pyVerifies cursor position and mixed ASCII / Chinese input stability.python tests/e2e_latency_scope_existing_sessions.pyReuses 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
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4cb241a09408817cb89a72b72fd4e71e9a495dbf6bd4a78d147b626c7640e61
|
|
| MD5 |
5f0c56224d53fa133771d5d538657faa
|
|
| BLAKE2b-256 |
dc5b5489633ed3b6e183512539a593f800d2e3974df96d071873f09678d6942c
|
File details
Details for the file claude_code_terminal-0.2.0-py3-none-any.whl.
File metadata
- Download URL: claude_code_terminal-0.2.0-py3-none-any.whl
- Upload date:
- Size: 42.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d890db15f865a92a18a66587b24f89ae8ea8fed96038b40eb443fc619faf2a68
|
|
| MD5 |
a1c29aca54ccd56ae87394d7645a3cbf
|
|
| BLAKE2b-256 |
bff0c004827398ed0f5943b4a0ae1d80168873885e1ca9a7bca232e051b87e28
|