A unified TUI workbench for terminal AI coding agents
Project description
TuiCode
A unified TUI workbench designed for terminal AI coding agents
Unite "editor + file manager + multi-terminal + Git + multi-agent sessions + workspace state sync" into a coherent terminal-native experience — letting humans and multiple AI agents collaborate in the same terminal environment.
Screenshots
Startup
Working interface — multi-agent sessions · diff preview · file tree
What is TuiCode?
Mainstream IDEs treat AI as a plugin (Copilot sidebar, Cursor panel). TuiCode flips this: the editor, file tree, and terminal exist to serve the agents — not the other way around.
TuiCode doesn't take over your agents. It hosts mature CLI agents: Claude Code, Codex, Aider, and others continue running their full interactive loops inside PTYs. TuiCode visualizes, syncs, and organizes the project state those agents work on.
| Dimension | Position |
|---|---|
| Form | 100% TUI — runs in any terminal emulator |
| Target users | Developers using CLI agents like Claude Code / Codex / Aider |
| Core value | Unified workbench — no more context-switching between editor, Git tools, and terminals |
| Deployment | Single command, cross-platform (Linux / macOS / WSL) |
What it is NOT: Not a VSCode clone, not a terminal emulator, not another AI coding tool, not a window manager.
Features
- Hybrid layout: Work units (editor/agent sessions) float freely; global tools (file tree/Git/terminal) stay fixed in a grid
- Parallel agents: Run multiple PTY sessions simultaneously (Claude Code, Codex, Aider, custom commands) without focus conflicts
- Real-time awareness: File changes and Git status auto-refresh — no manual reload needed
- Git workflow: Built-in diff preview (side-by-side view), per-file stage/unstage, one-click commit
- File manager: Create / rename / delete (with confirmation) / copy path — right in the file tree
- Command palette:
Ctrl+Shift+Pfull-screen command search, replacing unreliable dropdowns - Layout presets:
Ctrl+1editor mode /Ctrl+2dual-agent comparison /Ctrl+3debug mode - Agent status visibility: Status bar shows live running-agent count; window titles indicate running / done / waiting-for-input
Quick Start
Prerequisites: Python 3.11+
# Install
pip install tuicode
# Launch in your project directory
cd your-project
tuicode
Common keybindings:
| Shortcut | Action |
|---|---|
Ctrl+T |
New agent session (Claude Code / Codex / Aider / custom) |
Ctrl+Shift+P |
Command palette |
Ctrl+1 / 2 / 3 |
Switch layout preset |
Alt+1 / 2 / 3 |
Quick-focus floating windows |
Ctrl+\ |
Toggle tile / float mode |
Ctrl+S |
Save current file |
Ctrl+Q |
Quit |
Run from Source
git clone https://github.com/wuguirong/tuicode.git
cd tuicode
pip install -e ".[dev]"
python -m tuicode
Run tests:
PYTHONPATH=src pytest -q
Tech Stack
- Textual 0.60+ — TUI framework
- pyte — VT220 terminal emulator (PTY output rendering)
- PTY — Hosts CLI agents' complete interactive loops
Architecture
See docs/tuicode_architecture.md for details.
Core design principles:
- Agents as first-class citizens: All UI components serve the agents — AI is not demoted to a sidebar plugin
- Event bus: The only inter-module communication channel (
FileOpened/FileModified/GitStatusChanged/AgentMessageetc.) - Workspace state aggregator: Continuously maintains active file, selection, recent file changes, and Git status
- Protocol-driven:
AgentAdapterprotocol isolates agent implementation details; the host layer doesn't bind to any specific CLI tool
Contributing
Issues and PRs are welcome. Please read CONTRIBUTING.md before submitting.
License
MIT © 2026 Shenzhen Xuanshang Intelligence Technology Co., Ltd.
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 tuicode-0.1.0.tar.gz.
File metadata
- Download URL: tuicode-0.1.0.tar.gz
- Upload date:
- Size: 94.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05447cd9be85e4fd14b23c41742cdddf8ef18daa40a78bf576031b4e73a1e158
|
|
| MD5 |
b1549ecfd78aad9acf1eb948e8309baa
|
|
| BLAKE2b-256 |
fd4f6580094c2a61b90902d4a971b7dd1ec8924b0ef52be65902e5fd8ba90803
|
Provenance
The following attestation bundles were made for tuicode-0.1.0.tar.gz:
Publisher:
publish.yml on wuguirongsg/tuicode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tuicode-0.1.0.tar.gz -
Subject digest:
05447cd9be85e4fd14b23c41742cdddf8ef18daa40a78bf576031b4e73a1e158 - Sigstore transparency entry: 1690304971
- Sigstore integration time:
-
Permalink:
wuguirongsg/tuicode@8681ede1e16c728b0417c5d6b3749f0722758c50 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/wuguirongsg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8681ede1e16c728b0417c5d6b3749f0722758c50 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tuicode-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tuicode-0.1.0-py3-none-any.whl
- Upload date:
- Size: 79.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a1522fcd3dbb63a078645a39d6a2d58a38d6b065af447675f9e8314853a91d8
|
|
| MD5 |
d244deb0542e79e526a2f86b4b2e94d3
|
|
| BLAKE2b-256 |
6164ce51e23d53b1b4cbfa10b3d403ce7ceb1037a8211b68576ef9e8d7f7bb26
|
Provenance
The following attestation bundles were made for tuicode-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on wuguirongsg/tuicode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tuicode-0.1.0-py3-none-any.whl -
Subject digest:
2a1522fcd3dbb63a078645a39d6a2d58a38d6b065af447675f9e8314853a91d8 - Sigstore transparency entry: 1690304996
- Sigstore integration time:
-
Permalink:
wuguirongsg/tuicode@8681ede1e16c728b0417c5d6b3749f0722758c50 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/wuguirongsg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8681ede1e16c728b0417c5d6b3749f0722758c50 -
Trigger Event:
push
-
Statement type: