Skip to main content

Terminal UI IDE wrapper for Claude Code CLI

Project description

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 palettectrl+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

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_tui-0.1.0.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

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

claude_tui-0.1.0-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

Details for the file claude_tui-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for claude_tui-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2a5e32de69c09e31f4f9b6ead8b0bf0a40cbbb6d30e8649c024176b1fbc5330c
MD5 626269468042a89e5b0850dacab12141
BLAKE2b-256 94a19a47be7ae0d6231a6b3b1502d53db1f43598b1abd7ebae0d7ea6a3e5eeae

See more details on using hashes here.

File details

Details for the file claude_tui-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: claude_tui-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for claude_tui-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a44ddd30b9ae496ffe8d5c530860f57abc6cbdcd9b551d514aa9c8fd3a7a55ad
MD5 c2528a22b0bee63c8c034ac33d1aa881
BLAKE2b-256 3e692033ecc827925ba53200f69add26193bde6074463a52654e171966f8a5eb

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