OpenSquirrel
For people who get distracted by agents. A native Rust/GPUI control plane for running Claude Code, Codex, Cursor, and OpenCode side by side — because if you're going to be squirrely, you might as well optimize for it.
Install / Use
/learn @Infatoshi/OpenSquirrelQuality Score
Category
Development & EngineeringSupported Platforms
README
What it was
A native, GPU-rendered tiling manager for AI coding agents. Rust + GPUI. Run Claude Code, Codex, Cursor, Gemini, and OpenCode side by side with automatic sub-agent delegation, remote machine targeting via SSH, and persistent sessions.
Why it's archived
After a week of building this, I arrived at a simpler conclusion: you don't need a custom GUI to orchestrate AI agents.
Here's what I learned:
The terminal already won. Every AI coding CLI (Claude Code, Codex, Cursor Agent, Gemini CLI, OpenCode) ships with a polished terminal TUI. Building a Rust GUI that parses their JSON output and re-renders it will always be worse than just... using the native TUI. Users are comfortable in their terminal. They don't want a new window.
Delegation is a prompt, not a product. The entire coordinator/worker delegation system -- spawning sub-agents across runtimes, collecting results, feeding them back -- can be done with 4 lines in a CLAUDE.md file telling the model to use cursor agent --print or codex exec via Bash. No orchestration daemon needed. No hooks. No middleware. Claude Code's Agent tool already handles internal delegation. For external CLIs, just run them headless.
Token tracking already exists. CodexBar sits in your macOS menu bar and tracks usage across Claude, Codex, Cursor, Gemini, and more by reading their local data files. No need to build this into a GUI.
The architectural mismatch. Using Claude Code (a Node/Bun process) to build and iterate on a Rust GPU application through JSON stream parsing is a bizarre feedback loop. The model is trained on terminal interactions, not on debugging GPUI render pipelines. Every feature took 10x longer than it should have because the tooling fought the workflow.
Models aren't good enough yet for opinionated UX. Nobody knows the right workflow for multi-agent coding. Building a rigid UI around one workflow locks you in. The terminal is infinitely flexible. Wait for patterns to emerge before building products around them.
What works instead
The setup I actually use now:
- Terminal: Ghostty (or whatever you prefer)
- Agents: Run them directly --
claude,codex,cursor agent,gemini - Delegation: Instructions in
~/.claude/CLAUDE.mdtelling Claude to run external CLIs via Bash when asked - Token tracking: CodexBar (menu bar app, reads local files)
- Multi-agent: Just open multiple terminal tabs/panes
That's it. No custom software. The orchestration layer is a config file.
If you want to use or fork this
The code works. The legacy branch at commit 78f1bf2 has the full feature set:
- Multi-agent grid with auto-layout
- Coordinator/worker delegation across runtimes
- Remote SSH targeting with tmux session persistence
- Reusable UI components (FuzzyList, modal builders, selectable rows)
- Model picker with fuzzy search (Cmd+M)
- Token/cost tracking per agent
- 7 themes, persistent state, MCP integration
- 93 passing tests
Build & run
cargo build --release
# Run as .app bundle:
cp target/release/opensquirrel dist/OpenSquirrel.app/Contents/MacOS/OpenSquirrel-bin
open dist/OpenSquirrel.app
Requires Rust 1.85+ and macOS (Metal GPU). Linux (Vulkan) compiles and tests pass.
Config
~/.osq/config.toml -- runtimes, machines, MCPs, themes, settings.
Supported runtimes
| Runtime | CLI | Mode |
|---------|-----|------|
| Claude Code | claude | Persistent multi-turn |
| Codex | codex | One-shot |
| Cursor Agent | cursor agent | One-shot |
| Gemini CLI | gemini | One-shot |
| OpenCode | opencode | One-shot |
License
MIT
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
