Python project for Termux development
Project description
TermuxCode
Terminal chat client for Claude Code — A modern TUI for interacting with Claude Code on Android/Termux, desktop terminals, or via web browser.
Features
- Multi-session tabs — Manage multiple conversations with
Ctrl+N/Ctrl+W - Persistent history — Each session saves its conversation automatically (JSONL format)
- Background execution — Switch tabs while queries continue running; get notified on completion
- Web server mode — Access from any browser with configurable DPI/font sizing
- Blackboard memory — Persist project context across sessions (
Ctrl+Bto view) - Structured responses — Agent returns metadata for better context management
- Markdown + syntax highlighting — Rich rendering in terminal
- Mobile-optimized — Touch-friendly scrolling for Termux screens
- Zero config — Works out of the box with Claude Code CLI
Requirements
- Python 3.12+
- Claude Code CLI installed first:
curl -fsSL https://claude.ai/install.sh | bash
Installation
pip install termuxcode
Usage
Terminal Mode (TUI)
termuxcode # Launch TUI
termuxcode --dev # TUI with debug tools
termuxcode --cwd /my/project # Start in specific directory
Web Server Mode
termuxcode --serve # Web server on 0.0.0.0:8001
termuxcode --serve --port 8080 --fs 24 # Custom port and font size
Access from any browser at http://localhost:8001 (or your custom port).
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+N |
New session |
Ctrl+W |
Close current session |
Ctrl+S |
Toggle side panel |
Ctrl+H |
Stop running query |
Ctrl+B |
Open Blackboard viewer |
Session Indicators
| Indicator | Meaning |
|---|---|
● (green) |
Query running in this session |
!N (yellow) |
N unread notifications (background task completed) |
Architecture
termuxcode/
├── core/ # Reusable logic (no Textual dependency)
│ ├── agents/ # Claude SDK client wrappers
│ ├── history/ # JSONL conversation persistence
│ ├── sessions/ # Multi-session state management
│ ├── memory/ # Blackboard + FIFO persistence
│ └── schemas/ # Pydantic response models
├── tui/ # Textual terminal UI
└── web/ # xterm.js web assets
Links
- PyPI: https://pypi.org/project/termuxcode/
- GitHub: https://github.com/alejoair/termuxcode
- Issues: https://github.com/alejoair/termuxcode/issues
License
MIT
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
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 termuxcode-0.20.0.tar.gz.
File metadata
- Download URL: termuxcode-0.20.0.tar.gz
- Upload date:
- Size: 489.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12ad2a8f4f71e0f53f9c343ee87e1e1f09a41e9c741f0eeed99b004756ca4a7b
|
|
| MD5 |
6cabaeb4f1529aaceef999fb1bebe975
|
|
| BLAKE2b-256 |
004170cce83eee4dfc443241a25b956910b1dc84f64499fa1c9dbb501b83190c
|
Provenance
The following attestation bundles were made for termuxcode-0.20.0.tar.gz:
Publisher:
deploy.yaml on alejoair/termuxcode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
termuxcode-0.20.0.tar.gz -
Subject digest:
12ad2a8f4f71e0f53f9c343ee87e1e1f09a41e9c741f0eeed99b004756ca4a7b - Sigstore transparency entry: 1134957663
- Sigstore integration time:
-
Permalink:
alejoair/termuxcode@a9574b2e65d3cea4a09ed2f5bc5a35b0fe594817 -
Branch / Tag:
refs/tags/v0.20.0 - Owner: https://github.com/alejoair
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yaml@a9574b2e65d3cea4a09ed2f5bc5a35b0fe594817 -
Trigger Event:
push
-
Statement type:
File details
Details for the file termuxcode-0.20.0-py3-none-any.whl.
File metadata
- Download URL: termuxcode-0.20.0-py3-none-any.whl
- Upload date:
- Size: 494.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
429b7c5ee7a15bd3c406302cbf017a1bcb73bf18a8acd5f419a49a63f8036889
|
|
| MD5 |
49896e8b9fba2da8b6a2aabc7a9beb66
|
|
| BLAKE2b-256 |
c276fac68735c735ba66a3af5f9b34f1b792aa3651d70508e6a9904d467afbe6
|
Provenance
The following attestation bundles were made for termuxcode-0.20.0-py3-none-any.whl:
Publisher:
deploy.yaml on alejoair/termuxcode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
termuxcode-0.20.0-py3-none-any.whl -
Subject digest:
429b7c5ee7a15bd3c406302cbf017a1bcb73bf18a8acd5f419a49a63f8036889 - Sigstore transparency entry: 1134957732
- Sigstore integration time:
-
Permalink:
alejoair/termuxcode@a9574b2e65d3cea4a09ed2f5bc5a35b0fe594817 -
Branch / Tag:
refs/tags/v0.20.0 - Owner: https://github.com/alejoair
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yaml@a9574b2e65d3cea4a09ed2f5bc5a35b0fe594817 -
Trigger Event:
push
-
Statement type: