I open sourced Arc Work, my meta-harness, last week.
It’s one of a growing crowd - Solo, Conductor, Superset, and no doubt many more.
I’ve been working on it for less than a month, so it’s still early days. I use it as my daily driver, to work on Arc Work and several other projects.
I’ve been yapping about what I’m up to on X, but my friend and former colleague Dave Stewart encouraged me to write more about the thinking behind it, and I’ve finally gotten around to it.
Why I’m building this
We’re nowhere near the end-game UI for agentic development, and I don’t want to wait around for someone else to figure it out.
TUIs are cool, but I don’t want a single harness (or terminal multiplexer) to be my primary interface for work. Particularly not if it’s closed source, or attached to a particular model provider.
I’ve experimented with other meta-harnesses, as well as standalone tools for things like task tracking and storing your agent history, but I wanted to experiment with a unified way of doing things. Richer UI and better workflows for what needs it, with the PTY taking a back seat.
The Markdown-centric workflow I was using to keep track of work & decisions while working on Minima eventually collapsed under its own weight - 100s of long Markdown documents became impossible for me to reason with, and slow/context-heavy for agents to work with.
Work isn’t linear. Work is discovered while you’re doing other work, and git commits/GitHub PRs only capture what did happen - what happened between them is just as important.
If Claude Code goes down, or I blow my Codex limits, I want to be able to seamlessly continue with another harness.
Open models, and cheaper proprietary ones like Cursor Composer 2.5, are improving rapidly - it should be easier to use them in tandem with the usual suspects.
It’s a great opportunity to get my hands dirty with a new stack - Electron, React, and Effect v4.
The headline features
Supports Claude Code, Codex, Cursor CLI, and Pi
Agents can spawn other agents, with their own PTY, assign work to them, and communicate with each other
A built-in local work graph, to track tasks, progress, and dependencies
All your agent history is automatically ingested into a SQLite database - a goldmine of context for future agents
There’s also the quality-of-life stuff I’ve added like git worktrees, GitHub PRs, key bindings, and highlighting any sessions which need your input.
What now
With a few key building blocks now in place, I can put them together, move them around, and see what falls out.
I’m currently experimenting with ways to manage context windows and compaction. Rather than dealing with degradation and waiting for a harness to auto-compact, I’d rather use the chat history and work graph we already have to do it proactively. Maybe an open model running in LM Studio can do it for free.
Less glamorous, but more important short-term: binary distribution, proper documentation, and generally making it easier to try. Right now it's early enough that running it means building from source, and I want to lower that bar.