Blog

Deep-dives into why we build what we build.

Composio through TUICommander: one app, a small tool set

Connect a Composio session MCP URL with secret header rows, then narrow access by repository and tool name. Start with a read-only pilot and keep the account boundary explicit.

One hour for the parent, five minutes for the child

We measured Claude Code’s cache directives and idle-gap behavior. The main session gets an hour; its native subagent gets five minutes. That difference matters when agents spend time waiting.

The shortcuts that matter when twelve agents are working

A shortcut list is usually a feature dump. These are the handful that changed how we work once the terminal stopped being where you type and became where you supervise: Cmd+U to reach the agent that's blocked, Cmd+Ctrl+Backspace to get back, Cmd+I to queue the next instruction without derailing the current one — plus the block, split and branch keys, and how to rebind all of it.

"ok" was a lie

We shipped agent-to-agent messaging and it worked. Then an orchestrator's reply vanished while both sides believed delivery had happened. A post-mortem on acknowledging a message whose recipient is an LLM in a terminal: why storage acknowledgement is not delivery acknowledgement, the field we had to delete twice, and why ambiguity is more dangerous when the client is a model.

When the PR goes red, the agent fixes it

Auto-heal fetches the failing job's logs and types them into the agent that wrote the code, capped at three real attempts. The part worth writing about is what those logs are: on a fork PR they're attacker-authored text going into an agent that holds a shell — and what we do about it, including the residual risk we accept on purpose.

We stopped guessing what the agent was doing

Reading an agent's state off its terminal screen is a war you lose one redesign at a time — a rounded composer box left a tab busy 132 seconds after the turn had finished, with the tests green throughout. So we install a hook into the agent's own settings file and let it report busy, idle and awaiting directly.

Running your agents from the couch, on an iPad

Not a cut-down mobile view — the whole desktop UI, in Safari on an iPad, over Tailscale. The fixes in v1.5.1 (config hydration over Tailscale, touch scroll, keyboard occlusion + dictation, sidebar scroll-vs-reorder, the awaiting badge, duplicate tabs, and a Command Palette button) that made couch-mode supervision feel like sitting at the desk.

Making a WebView terminal feel native

A cargo build shouldn't make your terminal stutter. The engineering study behind v1.5's near-native input latency: off-main-thread rendering, a binary frame protocol, and the Apple Silicon QoS discovery that closed the gap — plus the usability sharpening that shipped alongside.

AI Chat: an agent that reads your terminal, not its screenshot

Most chat sidebars are blind to your terminal. AI Chat reads structured OSC 133 state — commands, outputs, exit codes, links — runs local (Ollama) or cloud models, and can arm approval-gated reactive watchers. In beta behind the Experimental toggle.

Command blocks for agent terminals

An AI agent's terminal is a wall of text. We segmented it into navigable command blocks — with detection that works even for agents that emit no markers, via heuristic ⏺ tool-call recognition alongside OSC 133 / OSC 7770.

Auto-standby: SIGSTOP for idle agent terminals

Dozens of idle agent terminals quietly burn CPU and battery. Auto-standby SIGSTOPs the whole process group when a tab is unfocused and idle, and SIGCONTs it the instant you look back or a message arrives.

A built-in process monitor for your terminal trees

When one of a dozen agents pins a core, which one is it? A process monitor reports CPU and RSS for TUIC and every child process tree — over MCP, over HTTP, and as a self-contained dashboard.

Agent-to-agent messaging: from terminal scraping to structured channels

AI agents working together shouldn't have to read each other's terminal output. TUICommander provides two direct communication paths: peer messaging for structured coordination, and MCP channels for real-time event push. Here's how they work and when to use each.

SSH tunnels, remote access, and the beta features you can try today

A tour of the features behind the Experimental toggle: SSH tunnel management, the tuicommander-remote daemon, AI-powered code triage, terminal watchers, and chat. All in beta — feedback welcome.

One daemon, every environment: meet tuicommander-remote

A headless Rust daemon that runs inside WSL, Docker dev containers, and remote servers. The desktop app drives them as if they were local — same protocol, no path translation, no cross-OS shims.

AI Triage: code review that understands what changed

Every AI IDE can generate code. None of them review the diff before you commit. AI Triage classifies every changed file by risk, relevance, and category — streaming results as the LLM works through your changes.

Using Codex to orchestrate Claude Code through TUICommander

Cross-agent orchestration without screen-scraping. TUICommander's MCP bridge gives external agents structured terminal state instead of raw ANSI bytes. Here's how to set it up and why it beats tmux.

Why we replaced xterm.js with a native terminal

After months of patching WebGL atlas corruption, scroll jump races, and scrollbar visibility hacks, we replaced xterm.js with an Alacritty-based terminal rendered to Canvas. Fewer workaround files than we had bug fixes.

Launched on Product Hunt — and what real users say

TUICommander is live on Product Hunt this week. Early reviews from daily users name the same patterns: multi-agent terminal sprawl, worktree isolation, blocking Y/n prompts, and couch-mode supervision from mobile.

Global Workspace: one view for all your agents

When you run agents across multiple repos, you lose track of who's doing what. Global Workspace pulls the terminals that matter into a single split-pane view — without moving them.

What one person can ship in a month

Fifteen releases, 226 changelog entries, nearly 90,000 lines of code — shipped solo in evenings and weekends. A retrospective on what Claude Code actually compresses, and what it can't.

Read, diff, and edit without leaving the terminal

AI agents reference files constantly. Instead of alt-tabbing to an editor every time, we built markdown, code, and diff viewers right into the terminal workspace.

Knowing what your agents are doing without looking

When you run 5 agents in parallel, you can't watch every terminal. We built status detection, sound notifications, and an activity dashboard so you don't have to.

One sidebar, all your repos

When you work across 10+ repositories every day, you need a single place to see branches, worktrees, PRs, and diff stats — without switching tools.

From the couch to 5G: how we built remote access

We wanted to check on AI agents without sitting at the desk. After trying session logs, remote proxies, and SSH, we ended up building a full mobile experience.

Why we built Smart Prompts

We were copy-pasting the same instructions to AI agents every day. So we turned them into one-click actions that know your context.

A terminal built for 8-hour sessions

Split panes, detachable windows, persistent sessions, find in content, and up to 50 concurrent terminals. We built a terminal for people who live in it all day.

Tracking your AI usage before the rate limit hits

Running multiple AI agents burns through rate limits fast. We built a usage dashboard so you can see exactly where you stand — and plan your work accordingly.

How we keep it fast with 10 repos and 8 terminals open

A desktop app that manages 10 repos, 8 terminals, and constant git operations can't afford to be slow. Here's the performance work we did under the hood.

Talking to your AI agents instead of typing

Hold a key, speak your instruction, release. The text appears in the terminal. No cloud service, no API key, no latency — Whisper runs locally on your machine.

Extend TUICommander with plugins

Every workflow is different. We built a plugin system so you can extend TUICommander with custom panels, context menu actions, and MCP integrations.