Skip to main content

claude-tui

Terminal UI IDE wrapper for Claude Code CLI.

Runs Claude Code inside a polished TUI with a file tree, file viewer with syntax highlighting, and a live diff navigator — while keeping all native Claude behavior (permissions, slash commands, interactive prompts).

Features

  • Native Claude Code — runs in a real PTY, everything works exactly as in your terminal
  • File tree — browse your project with git status indicators (M/A/D/?)
  • File viewer — syntax highlighting for 20+ languages
  • Diff navigator — auto-detects file changes via watchdog, per-file diff view
  • Session picker — browse and resume past sessions across all projects
  • Command palette — ctrl+p for quick actions
  • Copy support — native text selection works, plus ctrl+shift+c to copy terminal content
  • All Claude flags — pass any flag directly (--model, --add-dir, -c, etc.)

Requirements

  • Python 3.10+
  • macOS or Linux (uses PTY — not available on Windows)
  • Claude Code CLI installed and authenticated
  • git (optional, for diff and git status features)

Install

# Recommended: install globally with pipx
pipx install claude-tui

# Or from source
git clone https://github.com/crlxs/claude-tui.git
cd claude-tui
pipx install .

For development:

git clone https://github.com/crlxs/claude-tui.git
cd claude-tui
python -m venv .venv
source .venv/bin/activate
pip install -e .

Usage

# Start in current directory
claude-tui

# Start in a specific directory
claude-tui --cwd ~/my-project

# Browse and resume past sessions
claude-tui --resume

# Pass any Claude Code flag
claude-tui --model sonnet
claude-tui -c                              # continue last session
claude-tui --dangerously-skip-permissions  # skip permission checks
claude-tui --add-dir ~/other-project       # add extra directory access

Keyboard shortcuts

Key Action
ctrl+q Quit
ctrl+\ Cycle tabs (Terminal / Files / Diff)
ctrl+t Focus file tree
ctrl+b Focus terminal
ctrl+p Command palette
ctrl+shift+c Copy terminal content to clipboard

All other keys are forwarded to Claude Code.

Architecture

claude-tui
├── app.py              → Textual app: layout, tabs, keybindings, command palette
├── terminal_widget.py  → PTY terminal emulator (pyte + ptyprocess)
├── diff_tracker.py     → Git diff tracking with watchdog filesystem events
├── session_picker.py   → Session loader from ~/.claude/history.jsonl
├── session_screen.py   → Session picker UI (project → session → resume)
└── cli.py              → CLI entry point, flag passthrough to Claude

Limitations

  • Terminal rendering: Uses pyte (VT100 emulator) which doesn't support some modern terminal features (kitty keyboard protocol, synchronized updates). Most Claude Code output renders correctly; some decorative characters may look slightly different.
  • Windows: Not supported — requires PTY (ptyprocess), which is Unix-only.
  • Mouse: Mouse tracking is disabled to allow native text selection. All navigation is keyboard-driven.

License

MIT

Metadata

Release files for claude-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 claude-tui 0.1.0
File Size Uploaded
claude_tui-0.1.0.tar.gz 20.6 kB Details

Built distribution (wheel)

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

Total release size: 45.0 kB

Release files / claude_tui-0.1.0.tar.gz

Download URL claude_tui-0.1.0.tar.gz
Size 20.6 kB
Tags Source
SHA-256 checksum
How to use checksums
2a5e32de69c09e31f4f9b6ead8b0bf0a40cbbb6d30e8649c024176b1fbc5330c
BLAKE2b-256 checksum
How to use checksums
94a19a47be7ae0d6231a6b3b1502d53db1f43598b1abd7ebae0d7ea6a3e5eeae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

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

Download URL claude_tui-0.1.0-py3-none-any.whl
Size 24.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a44ddd30b9ae496ffe8d5c530860f57abc6cbdcd9b551d514aa9c8fd3a7a55ad
BLAKE2b-256 checksum
How to use checksums
3e692033ecc827925ba53200f69add26193bde6074463a52654e171966f8a5eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

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