Chat with multiple LLM CLIs, dispatch subagents in parallel, see your screen via Set-of-Mark, and control everything from your iPhone.
$ HOMEBREW_CASK_OPTS="--no-quarantine" brew install --cask ErkutYavuzer/tap/pixel-agent
Talk to Claude Code, Codex, and Gemini side by side. Single or dual mode. Each backend has its own per-kind conversation history.
Fan out work to up to 3 parallel subagents with a budget (wall-clock + bytes). Cancellable from UI or via the MCP dispatch_subagent tool.
Pair with QR. From your iPhone: switch backend/model, toggle Plan Mode, request screenshots, watch real CPU/RAM, cancel subagents. LAN or relay; ed25519-signed.
pixel-mcp-server exposes clipboard, time, dock badge, notifications, screenshot, dispatch_subagent, plus 5 ui_* AX-first tools to Claude Code, Cline, Continue, Cursor.
AX-first hybrid UI control. Annotate screenshots with numbered badges so a vision model can say "click #5" — deterministic ID → element mapping, no coordinate guessing.
Every major decision documented as an Architectural Decision Record. Swift 6 strict concurrency, 12 SPM modules with one-way deps, hermetic tests.
| Feature | pixel-agent | Claude Desktop | Cline | Aider |
|---|---|---|---|---|
| Native macOS | ✅ Swift, ~60 MB | ❌ Electron | ❌ VS Code | ❌ terminal |
| Multi-LLM side by side | ✅ Dual chat | ❌ | ❌ | ❌ |
| iPhone remote dashboard | ✅ | ❌ | ❌ | ❌ |
| MCP server (expose tools) | ✅ 14 tools | client only | ❌ | ❌ |
| Subagent UI (parallel) | ✅ cap=3 | ❌ | ❌ | ❌ |
| Computer use | ✅ AX + Set-of-Mark | ❌ | via tools | ❌ |
| Open source | ✅ MIT | ❌ | ✅ Apache | ✅ Apache |
At least one of:
Log in to whichever you installed; pixel-agent uses its OAuth state.
HOMEBREW_CASK_OPTS="--no-quarantine" \
brew install --cask \
ErkutYavuzer/tap/pixel-agent
open /Applications/PixelAgent.app
Optionally pair your iPhone via the QR code in the Pairing view.
10 libraries + 2 executables. Dependencies flow one-way toward PixelCore; cycles blocked at SPM compile time. Swift 6 strict concurrency throughout.