{"id":46192340,"url":"https://github.com/sstraus/tuicommander","last_synced_at":"2026-05-10T23:11:24.158Z","repository":{"id":340092324,"uuid":"1160075256","full_name":"sstraus/tuicommander","owner":"sstraus","description":"Desktop terminal orchestrator for running dozens of AI coding agents in parallel. Tauri + SolidJS + Rust.","archived":false,"fork":false,"pushed_at":"2026-05-04T10:15:59.000Z","size":27899,"stargazers_count":48,"open_issues_count":4,"forks_count":7,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-04T11:36:33.813Z","etag":null,"topics":["ai-agents","claude-code","developer-tools","git-worktree","macos","rust","solidjs","tauri","terminal","xterm-js"],"latest_commit_sha":null,"homepage":"https://tuicommander.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sstraus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-17T14:12:03.000Z","updated_at":"2026-05-04T09:52:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sstraus/tuicommander","commit_stats":null,"previous_names":["sstraus/tuicommander"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/sstraus/tuicommander","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstraus%2Ftuicommander","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstraus%2Ftuicommander/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstraus%2Ftuicommander/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstraus%2Ftuicommander/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sstraus","download_url":"https://codeload.github.com/sstraus/tuicommander/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstraus%2Ftuicommander/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32608323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","claude-code","developer-tools","git-worktree","macos","rust","solidjs","tauri","terminal","xterm-js"],"created_at":"2026-03-03T01:04:08.954Z","updated_at":"2026-05-04T13:04:40.132Z","avatar_url":"https://github.com/sstraus.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.png\" alt=\"TUICommander\" width=\"128\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eTUICommander\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eThe IDE that understands AI agents.\u003cbr\u003eRun parallel agents on isolated branches with full observability.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/sstraus/tuicommander/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/sstraus/tuicommander?style=flat-square\u0026color=blue\" alt=\"Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sstraus/tuicommander/releases/tag/tip\"\u003e\u003cimg src=\"https://img.shields.io/badge/nightly-tip-orange?style=flat-square\" alt=\"Nightly\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sstraus/tuicommander/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/sstraus/tuicommander/ci.yml?style=flat-square\u0026label=CI\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/sstraus/tuicommander?style=flat-square\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey?style=flat-square\" alt=\"Platform\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/rust-backend-DEA584?style=flat-square\u0026logo=rust\u0026logoColor=white\" alt=\"Rust\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/tauri-v2-24C8D8?style=flat-square\u0026logo=tauri\u0026logoColor=white\" alt=\"Tauri v2\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://tuicommander.com\"\u003e\u003cstrong\u003eWebsite\u003c/strong\u003e\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/sstraus/tuicommander/releases/latest\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/sstraus/tuicommander/releases/tag/tip\"\u003e\u003cstrong\u003eNightly\u003c/strong\u003e\u003c/a\u003e \u0026bull;\n  \u003ca href=\"docs/FEATURES.md\"\u003e\u003cstrong\u003eAll Features\u003c/strong\u003e\u003c/a\u003e \u0026bull;\n  \u003ca href=\"docs/plugins.md\"\u003e\u003cstrong\u003ePlugin API\u003c/strong\u003e\u003c/a\u003e \u0026bull;\n  \u003ca href=\"docs/\"\u003e\u003cstrong\u003eDocs\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/tui-screenshot.png\" alt=\"TUICommander — multiple agents, split panes, sidebar with repos\" width=\"900\" /\u003e\n\u003c/p\u003e\n\n---\n\n## The problem\n\nYou're running Claude Code in one terminal, Aider in another, Codex in a third. One hit a rate limit 10 minutes ago and you didn't notice. Another is waiting for a Y/N confirmation. You switch between windows and still lose track.\n\nThe more sessions you run, the worse it gets. The tooling doesn't understand what's happening inside the terminal.\n\n## The solution\n\n**TUICommander is an AI-native IDE** — designed from the ground up for multi-agent development. Agents, code, diffs, PRs, CI status, and usage analytics live in one window. No context switching. No lost threads.\n\nAI-native means the agents are not an afterthought. Rate limit detection, question recognition, session-aware resume, and usage tracking are core — not plugins.\n\n---\n\n## What makes it different\n\n### Run many AI sessions in parallel\n\nLaunch Claude Code on five branches at once — or mix agents. Each session runs in its own Git worktree — no context collision, no stash conflicts, no \"which terminal was that?\" moments.\n\n- Up to 50 terminal sessions running simultaneously\n- Each session works on its own isolated copy of the repo\n- Activity dashboard showing every session at a glance\n\n### Agent observability — not just terminals\n\nTUICommander auto-detects **10 AI coding agents** (Claude Code, Codex CLI, Aider, Gemini CLI, Amp, Cursor Agent, OpenCode, Warp Oz, Droid, Goose) and understands what they're doing:\n\n- **Rate limit detection** — Provider-specific patterns with countdown timers per session.\n- **Question detection** — Y/N prompts, numbered options, inquirer-style menus. Tab indicator, notification sound, keyboard overlay.\n- **Usage tracking** — Claude Code weekly/session limits with color-coded thresholds. Full Claude Usage Dashboard with rate limit bars, 7-day chart, 52-week heatmap, per-project breakdown.\n- **Activity dashboard** — Every session at a glance: agent type, status (working / waiting / rate-limited / idle), last activity.\n- **Session-aware resume** — Auto-discovers agent session IDs from disk (Claude Code, Gemini CLI, Codex CLI). Resume exactly where you left off.\n\nNo other tool knows that your agent is stuck.\n\n### Git worktrees, fully managed\n\nClick a branch in the sidebar. TUICommander auto-creates a git worktree — a fully isolated copy of the repo. The terminal opens *inside* it. Switch to another branch: your previous terminals are preserved. Switch back: they're exactly as you left them.\n\n- Automatic worktree creation on branch click\n- Worktree Manager — PR status, dirty file counts, last commit at a glance\n- Post-merge cleanup dialog — delete branch, archive worktree in one click\n- Configurable base branch, setup scripts, auto-fetch intervals\n\n### See what your agents changed — without leaving\n\nThe feedback loop happens in the same window:\n\n- **Git Panel** — Staging, inline commit, blame with age heatmap, canvas commit graph, stashes, branches with ahead/behind counts.\n- **Diff views** — Side-by-side, unified, or scroll-all-files. Word-level highlighting, hunk and line-level restore.\n- **PR management** — Merge via GitHub API with auto-detected merge method. Post-merge cleanup.\n- **GitHub Issues** — Filter by assigned/created/mentioned, labels with colors, close/reopen.\n- **CI Auto-Heal** — When CI fails, TUICommander fetches failure logs and injects them into the agent for automatic fix.\n- **Built-in code editor** — CodeMirror 6 with syntax highlighting, find/replace, disk conflict detection.\n- **File browser** — Directory tree, content search (grep), git status indicators.\n\n### Built-in AI Chat \u0026 autonomous agent\n\nA conversational AI companion that sees your terminal as you see it. Ask about errors, get code suggestions, or let the autonomous agent take the wheel and drive your terminal directly.\n\n- Multi-provider: Ollama (local, free), Anthropic, OpenAI, OpenRouter, or any compatible endpoint\n- Autonomous AI Agent (ReAct loop) with 12 tools: read screen, send input, edit files, search code, run commands\n- Session knowledge: the agent learns from your terminal history — commands, errors, fix patterns\n- Live cost tracking: prompt/completion tokens and estimated cost per turn\n- Per-terminal chat state, conversation history, detachable panel for multi-monitor\n\n### MCP Proxy Hub — one connection for all your tools\n\nAggregate all your MCP servers into a single endpoint. Claude Code, Cursor, VS Code — each agent connects once and gets access to every upstream tool.\n\n- Auto-configures Claude Code, Cursor, Windsurf, VS Code, Zed, Amp, Gemini\n- Circuit breakers, health checks, hot-reload per upstream\n- Credential management via OS keyring, OAuth 2.1 support\n- Tool filtering: whitelist or blacklist per upstream server\n\n### Control from anywhere\n\nA **mobile companion PWA** lets you monitor agents from your phone, answer questions with one tap, and track rate limits in real time.\n\n- QR code scan for instant LAN connection\n- Tailscale auto-HTTPS or E2E-encrypted cloud relay — no VPN or port forwarding\n- Live WebSocket output, suggest follow-up chips, slash menu\n\n### Agents that coordinate\n\n**Agent Teams** — Claude Code's sub-agents run as native TUICommander tabs instead of tmux panes. Full session awareness, output parsing, and question detection for each sub-agent.\n\n**Inter-agent messaging** — When multiple agents work in parallel, they discover peers, send messages, and receive push notifications through TUICommander as the coordination hub.\n\n### Automate repetitive workflows\n\n**30 built-in Smart Prompts** turn common tasks into one-click operations: Smart Commit, Review Changes, Create PR, Fix CI, and more. Context variables like branch, diff, and PR data are resolved automatically.\n\n- Inject mode (PTY write), headless mode (subprocess), or shell script mode (direct execution)\n- 31 context variables auto-resolved from git, GitHub, and terminal state\n- Create your own prompts with the same variable system\n\n### Talk to your agents\n\nOn-device speech-to-text powered by whisper-rs. No cloud service, no API keys, no data leaving your machine.\n\n- GPU-accelerated on macOS (Metal), CPU fallback on Windows/Linux\n- Push-to-talk hotkey — text injected into the active terminal\n- 5 model sizes from tiny (75 MB) to large-v3-turbo (1.6 GB)\n\n### Extend everything\n\n**Plugin system** — Obsidian-style plugins with hot reload and a community registry:\n\n- 5 capability tiers from read-only watchers to scoped Tauri invoke\n- TUIC SDK v1.0: `tuic.activeRepo`, `tuic.toast`, `tuic.onRepoChange` and more\n- Terminal output watchers with regex triggers\n- Status bar tickers, custom panels, notification contributions\n- Browse and install with one click\n\n[Plugin Authoring Guide →](docs/plugins.md)\n\n---\n\n## How it compares\n\n| Capability | Ghostty / Kitty | Warp | Cursor IDE | Claude Desktop | TUICommander |\n|---|---|---|---|---|---|\n| Terminal sessions | Yes | Yes | Yes | No | Yes (50) |\n| AI coding agents | No | Partial | Built-in | Built-in | Any agent (10 detected) |\n| Parallel agents | No | No | Limited | No | Unlimited |\n| Git worktree orchestration | No | No | No | No | Automatic |\n| Agent observability | No | No | No | No | Real-time |\n| Global Workspace | No | No | Yes | No | Multi-repo |\n| Usage dashboard | No | No | No | Basic | Full (heatmap, per-project) |\n| Remote access (phone/tablet) | No | No | No | Mobile app | PWA + E2E relay |\n| Voice dictation | No | No | Extension | Built-in | Local Whisper |\n| MCP Proxy Hub | No | No | No | No | Built-in |\n| Plugin system | No | No | Extensions | No | Hot reload + SDK |\n| GitHub Issues \u0026 PR management | No | No | Extension | No | Built-in |\n| Built-in AI Chat | No | Built-in | Built-in | Built-in | Multi-provider (beta) |\n| CI Auto-Heal | No | No | No | No | Built-in |\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eTerminal features\u003c/strong\u003e — 50 sessions, splits, detach, find, persistence\u003c/summary\u003e\n\n- Up to 50 concurrent PTY sessions, each with independent zoom (8–32px)\n- Split panes: vertical (`Cmd+\\`) or horizontal (`Cmd+Alt+\\`), up to 6 panes, drag-resize\n- Detachable tabs: float any terminal into its own OS window, re-attaches on close\n- Find in terminal (`Cmd+F`): regex, case-sensitive, whole word, match navigation\n- Cross-terminal search: type `~` in command palette to search all open terminal buffers\n- Session persistence: terminals survive restarts with lazy restore on branch click\n- Tab management: reorder by drag, rename by double-click, reopen last 10 closed tabs\n- Tab status dots: idle, busy, done, unseen, question, error\n- Copy on select, configurable bell (visual/sound/both), scroll shortcuts\n- International keyboard support, Kitty keyboard protocol\n- 11 bundled monospace fonts (JetBrains Mono, Fira Code, Hack, Cascadia Code, and more)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGit integration\u003c/strong\u003e — Worktrees, Git Panel, PR management\u003c/summary\u003e\n\n- Auto-create worktrees per branch with configurable base branch and setup scripts\n- Worktree Manager (`Cmd+Shift+W`): all worktrees across all repos, orphan detection, batch operations\n- Git Panel (`Cmd+Shift+D`): staging, commit, log with canvas commit graph, stashes, branches, blame with age heatmap\n- PR management: merge via GitHub API, auto-detect merge method, post-merge cleanup dialog\n- GitHub Issues: filter by assigned/created/mentioned, labels with colors, close/reopen\n- Auto-delete branch on PR close, CI Auto-Heal, PR notifications\n- Repository groups: named, colored, collapsible, drag-and-drop reordering\n- Park repos: temporarily hide repos you're not using\n- Quick branch switcher: hold `Cmd+Ctrl`, press `1-9` to switch instantly\n- Auto-fetch on configurable interval\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eProductivity\u003c/strong\u003e — Smart Prompts, palette, keybindings, dictation\u003c/summary\u003e\n\n- Smart Prompts (`Cmd+Shift+K`): 30 built-in AI automation prompts with auto-resolved context variables\n- Command palette (`Cmd+P`): fuzzy search all actions, files (`!`), file contents (`?`), terminal buffers (`~`)\n- Configurable keybindings with chord support and conflict detection\n- Claude Usage Dashboard: rate limits, 7-day chart, 52-week heatmap, per-project breakdown\n- Prompt library (`Cmd+K`): saved prompts with variable substitution\n- IDE launchers: open in VS Code, Cursor, Zed, or any detected editor\n- Ideas panel (`Cmd+Alt+N`): quick notes with image paste and send-to-terminal\n- Voice dictation: streaming on-device Whisper with partial results\n- Focus mode (`Cmd+Alt+Enter`): maximize active tab, hide sidebar and panels\n\u003c/details\u003e\n\n\u003e **Full feature reference:** **[docs/FEATURES.md](docs/FEATURES.md)**\n\n---\n\n## Get started\n\n**[Download the latest release](https://github.com/sstraus/tuicommander/releases/latest)** — macOS builds are signed and notarized.\n\nInstall via terminal:\n\n```bash\n# macOS (Homebrew)\nbrew install sstraus/tap/tuicommander\n\n# macOS / Linux (shell)\ncurl -fsSL https://tuicommander.com/install.sh | sh\n\n# Windows (PowerShell)\nirm https://tuicommander.com/install.ps1 | iex\n```\n\nWant the bleeding edge? The **[Nightly](https://github.com/sstraus/tuicommander/releases/tag/tip)** is rebuilt on every push to `main`.\n\n\u003cdetails\u003e\n\u003csummary\u003eBuild from source\u003c/summary\u003e\n\n**Prerequisites:** Node.js 22+, Rust toolchain, [Tauri CLI](https://tauri.app/start/)\n\n```bash\nnpm install\nnpm run tauri dev      # Development with hot reload\nnpm run tauri build    # Production build\nnpm test               # Run tests\n```\n\nSee [docs/guides/development-setup.md](docs/guides/development-setup.md) for platform-specific instructions.\n\u003c/details\u003e\n\n## Built with\n\nRust + [Tauri v2](https://tauri.app) backend, [SolidJS](https://solidjs.com) UI, native terminal via [alacritty_terminal](https://crates.io/crates/alacritty_terminal) + canvas rendering, [CodeMirror 6](https://codemirror.net) editor, [whisper-rs](https://github.com/tazz4843/whisper-rs) dictation, [Vite](https://vite.dev) + LightningCSS build. ~80 MB RAM.\n\n## Documentation\n\n| | |\n|---|---|\n| [Getting Started](docs/user-guide/getting-started.md) | First-run guide |\n| [Features](docs/FEATURES.md) | Complete feature reference with all keyboard shortcuts |\n| [AI Agents](docs/user-guide/ai-agents.md) | Agent detection, rate limits, question detection |\n| [Plugin API](docs/plugins.md) | Build plugins for TUICommander |\n| [HTTP API](docs/api/http-api.md) | REST/WebSocket/SSE endpoints |\n| [Architecture](docs/ARCHITECTURE.md) | System design and component overview |\n| [Development Setup](docs/guides/development-setup.md) | Build from source |\n\n---\n\n\u003cp align=\"center\"\u003eApache 2.0 licensed. Zero telemetry. Runs locally.\u003cbr\u003e\u003ca href=\"https://github.com/sstraus/tuicommander/releases\"\u003eFollow the releases\u003c/a\u003e — new features land weekly.\u003c/p\u003e\n\n## License\n\n[Apache 2.0](LICENSE) \u0026copy; 2026 Stefano Straus\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsstraus%2Ftuicommander","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsstraus%2Ftuicommander","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsstraus%2Ftuicommander/lists"}