<p>There's a moment every coding-agent user knows. You started one agent on a refactor, another on a flaky test, and a third is waiting for you to answer a question. Somewhere in a terminal tab, a fourth finished twenty minutes ago and you never noticed.</p><p>None of the agents is the problem. They're good. The trouble is that an agent is easy to start and hard to keep track of once there are five.</p><p>Elyra Workspace is our answer to that. It's one native Mac window for every agent thread across all your projects, and it's free and open source.</p><h2>Why a workspace, and not another agent</h2><p>We didn't want to build an agent. You already have ones you like, and they change faster than any app can follow.</p><p>So Workspace doesn't try to replace them. It drives the command-line tools you install yourself: <strong>Claude Code</strong>, <strong>Codex</strong>, <strong>Elyra</strong>, <strong>Pi</strong>, or anything that speaks the <strong>Agent Client Protocol</strong> (Gemini CLI, Cursor Agent, OpenCode and others). It has no API keys of its own. Sign-in, billing and limits stay with each tool, and your messages go to the agents you use, under their own terms.</p><p>What it adds is the stuff around the agent: the places where work gets lost.</p><p>It's also honest about the fact that agents aren't interchangeable. Claude Code is the most complete, and the providers page says plainly where effort levels, approvals and forking differ. We'd rather tell you that than pretend.</p><h2>How it works</h2><p><strong>A thread for every task.</strong> Add your project folders, then give each task its own thread, in tabs or a split view. A thread can work in the project folder or in its own Git worktree, so two agents don't trip over each other's files. Need a quick question answered? Open a side chat. Want to try a different approach? Fork the thread.</p><p><strong>The work is in view, not buried in scrollback.</strong> Tool calls show their live output and diffs. Task lists, plans, questions and approvals show up as cards you act on, not text you have to hunt for.</p><h2>A few examples</h2><p><strong>You ask for a plan first.</strong> The agent comes back with a plan card: split <code>lexer.rs</code> out of <code>parse.rs</code>, return <code>Result&lt;Ast, ParseError&gt;</code>, add unit tests for the edge cases. You read it, approve it (or approve it and let the agent edit freely), and only then does the work start. You were in charge of the decision, and you didn't have to scroll to find it.</p><p><strong>The agent asks a question.</strong> Instead of burying it in a paragraph, you get a form: <em>"Which test framework should we use?"</em> You pick one, press <strong>Submit</strong>, and the agent carries on.</p><p><strong>You review the diff like a colleague.</strong> Staging, generated commit messages, per-turn diffs and blame are in the same window. Leave a comment on a line and the agent acts on it. Pull requests and a code review inbox come through <code>gh</code>.</p><p><strong>You hand over a goal.</strong> Write something like <em>"all tests pass and the checkout handles discounts."</em> Workspace sends the agent on, turn after turn, until it ends a reply with <code>GOAL ACHIEVED</code>. If it says <code>GOAL BLOCKED</code> because it needs you, it pauses. If a turn fails, it pauses. And if the turn budget runs out, it stops (10 automatic turns by default), so a stuck agent can't spend your afternoon. Permission requests still wait for you the whole time.</p><p><strong>Something goes wrong, and you want it back.</strong> Every turn starts with a checkpoint you can restore. They're hidden Git references inside the project's own repository, so there's nothing extra to clean up, and deleting a thread removes them.</p><h2>The chores, scheduled</h2><p>Workspace has automations: a prompt sent to an agent on a schedule. Nightly test runs, dependency updates, a weekly summary of open issues. They run while the app is open, and a run that came due while it was closed starts shortly after you open it again. We say that plainly because a scheduler that quietly doesn't run is worse than none.</p><p>There's also a task board: <strong>Draft</strong>, <strong>In progress</strong>, <strong>Done</strong>. Press <strong>Start</strong> and the task goes to an agent in a new thread named after it.</p><h2>Agents that manage agents</h2><p>This is the part we're most curious to see people use. The agent gateway lets an agent list, read, create and steer other threads. Claude Code, Codex, Elyra (0.9.46 or later) and ACP agents get it as an MCP server. Pi doesn't yet. You can connect Claude Desktop and Codex to it too.</p><p>It's deliberately boxed in: it listens only on <code>127.0.0.1</code>, it requires a token, and every call lands in an audit log. Text that comes from outside the project, such as pull requests and issues, is marked for the agent as reference, not as orders.</p><h2>And now, a browser</h2><p>Version 0.2 added a web browser to the tools panel (&lt;kbd&gt;⇧&lt;/kbd&gt;&lt;kbd&gt;⌘&lt;/kbd&gt;&lt;kbd&gt;B&lt;/kbd&gt;), for looking at the app you're building. Click a local server in the <strong>Context</strong> tab and it opens right there, next to the conversation.</p><p>With the gateway on, an agent can open its thread's dev server and read the page: the DOM outline, elements and computed styles, the console, network calls and a screenshot. It can only open pages served from this Mac (<code>localhost</code>, <code>*.test</code>, <code>*.local</code>), and it can't click, type or run scripts in them. The browser and its agent tools are adapted from Litr, with permission, under the MIT licence.</p><h2>Local, and quiet about it</h2><p>No account. No telemetry. Your data lives in <code>~/.elyra</code>. The only requests the app makes itself are the update check and update downloads from GitHub. The browser tab loads whatever pages you open, like any browser.</p><p>Updates check GitHub at launch and every six hours, and the app installs a new build only if its checksum matches, it's signed by the same Developer ID team as the copy you run, and Gatekeeper accepts it.</p><h2>Try it</h2><p>Workspace is written in Rust on GPUI, the framework behind Zed. It needs macOS 12 or later and Apple silicon. The DMG is signed and notarized, so it opens without warnings. Drag it to Applications, add a project folder, and start a thread with the agent you already use.</p><p>If you've ever lost track of what your agents were doing, this is for you. Download it at <a target="_blank" rel="noopener noreferrer nofollow" href="https://elyracode.com/workspace">elyracode.com/workspace</a>, and the guide is at <a target="_blank" rel="noopener noreferrer nofollow" href="https://elyracode.com/docs/workspace">elyracode.com/docs/workspace</a>.</p>