<p>Here's a thing we noticed about working with coding agents. We kept picking one and hoping.</p><p>You have Claude Code, Codex, maybe Elyra or Gemini CLI installed. They're all good, and they're good at different things. But when a task shows up, you choose one agent, wait for the answer, and never learn what the others would have done. Then, when the diff lands, you're the only reviewer, and the agent that wrote it is the last one who will spot its own mistake.</p><p>Workspace 0.3.0 is about those two gaps, plus a few smaller things we kept bumping into while looking at a page and a bill.</p><h2>Best of N: one task, several agents</h2><p>Open the command palette (&lt;kbd&gt;⌘&lt;/kbd&gt;&lt;kbd&gt;K&lt;/kbd&gt;), choose <strong>Best of N…</strong>, write the task, and pick at least two agents. Press <strong>Start</strong>.</p><p>Each agent gets its own thread and its own Git worktree, so they can't get in each other's way. When they're working, the comparison opens in the middle of the window. For every candidate you see its status, the files and lines it changed, what it cost, and its reply.</p><p>Say the task is "add rate limiting to the login endpoint." Two agents finish. One touched three files and wrote a tidy middleware. The other touched seven and rebuilt half the auth layer. You can see that at a glance, along with the price tag, before you've read a line of code. <strong>Open</strong> shows any candidate's thread with its diff in the <strong>Changes</strong> tab, and since the candidates are ordinary threads you can also talk to them before you choose. Ask the first one why it skipped the tests.</p><p>When you like one best, press <strong>Use this one</strong>. Workspace commits that candidate's worktree and brings its changes into your project with <code>git merge --squash</code>. They arrive staged, not committed, so you review them in <strong>Changes</strong> and commit them yourself. Then <strong>Delete the other N and their worktrees</strong> tidies up the rest.</p><blockquote><p>One honest note from the docs: if you have uncommitted changes in the project that touch the same files, they may conflict. Commit or stash first.</p></blockquote><h2>Second opinion: the agent that didn't write it</h2><p>Agents are better at catching each other's mistakes than their own. That's the whole idea.</p><p>In a thread's menu, <strong>Second opinion from ▸</strong> asks another provider to review what the last turn changed. The review runs as a side chat in plan mode, so it reads but doesn't change files. It gets your last message and the diff, and it lists what it finds as <code>path:line</code>, with what's wrong and how to fix it.</p><p>Then comes the nice part. One button, <strong>Put the last reply in the thread's composer</strong>, hands the findings back to the original agent, with a note to fix what it agrees with. Claude Code writes the change, Codex reviews it, and Claude Code fixes what it accepts. You stayed in one window and never pasted anything.</p><h2>When the page breaks, one click</h2><p>Since 0.2 there's a browser in the tools panel (&lt;kbd&gt;⇧&lt;/kbd&gt;&lt;kbd&gt;⌘&lt;/kbd&gt;&lt;kbd&gt;B&lt;/kbd&gt;) for the app you're building. In 0.3.0 it watches for trouble on local pages: <code>console.error</code>, exceptions nothing caught, and requests that fail or return an error status.</p><p>When new ones appear, a chip above the message box says so, something like <strong>3 new errors in the browser</strong>. <strong>Add to message</strong> attaches them to your next message, with the page address. You don't have to open the console and copy a stack trace. <strong>×</strong> dismisses them, and either way they aren't offered again.</p><p>The browser now also records uncaught exceptions and unhandled promise rejections for agents, with their messages, so an agent that looks at the page sees them too.</p><h2>Before and after, as pictures</h2><p>With a local page open in the <strong>Browser</strong> tab when you send a message, Workspace keeps a picture of the page from before the turn. When the turn ends, it reloads the page, waits a moment for the dev server, and takes another. Both pictures appear under the turn in the conversation, so you see what the change did to the page. Click one to open it full size.</p><p>It only happens while the <strong>Browser</strong> tab is on screen, since the page can only be pictured then. The pictures stay on your Mac, in <code>~/.elyra/snapshots</code>, and are deleted with the thread.</p><h2>Budgets: a number you can see</h2><p>In the <strong>Context</strong> tab, give a thread a spending limit in US dollars. A bar shows what the thread has cost so far. At 80% of the limit, Elyra says so in the conversation. At the limit, a running goal pauses and asks you, and it can't be started or resumed until you raise the limit. Your own messages still go through, so you're never locked out of your own thread.</p><p>Pair it with a goal like "all tests pass and the checkout handles discounts" and a limit of a few dollars, and you've given an agent a clear job and a clear ceiling.</p><blockquote><p>One caveat, because it matters: costs are the ones the agent reports with each turn. Claude Code reports them. Agents that don't report costs count as free, so a limit has no effect on them. We'd rather say so than let you rely on a number that isn't there.</p></blockquote><h2>Why these five together</h2><p>They look like separate features, but they're really one idea: you should be the editor, not the typist. Best of N gives you options. Second opinion gives you a reviewer. The error chip and the before-and-after pictures give you evidence. The budget gives you a ceiling. Each one moves a decision from "hope" to "look."</p><h2>Try it</h2><p>Workspace 0.3.0 is out now. It updates itself if you already have it: it checks GitHub at launch and installs a new build only if the checksum matches, it's signed by the same Developer ID team as your copy, and Gatekeeper accepts it. New here? It's a signed, notarized DMG for macOS 12 or later on Apple silicon, free and open source.</p><p>Download it at <a target="_blank" rel="noopener noreferrer nofollow" href="https://elyracode.com/workspace">elyracode.com/workspace</a>, and read the full notes at <a target="_blank" rel="noopener noreferrer nofollow" href="https://elyracode.com/docs/workspace/changelog">elyracode.com/docs/workspace/changelog</a>.</p>