← Blog

Field notes3 min read

Running coding agents unmodified by changing one URL

Most tools that put a coding agent in their UI end up reimplementing it. Mirasim launches the real CLI and points its model URL to a local proxy.

Claude Code's own terminal interface running unmodified inside a Mirasim paneClaude Code's own terminal interface running unmodified inside a Mirasim pane

Why wrapping a coding agent in a custom interface usually goes wrong

The obvious way to put someone else's coding agent inside your product is to take over its input and output: parse its output, redraw that output in your own panels, and drive the agent through your own protocol. This approach looks good in a demo, but it soon runs into a problem:

  1. Your product parses agent output

    Your product redraws the agent's output in its own panels

  2. The agent releases a new version

    The agent changes its output format in the new release

  3. Your parser reads the output wrong

    Users see broken output and think the agent got worse

Once you parse and redraw an agent's output, you end up maintaining a copy of someone else's product where every update causes a bug in yours.

A second cost shows up later around authentication. Coding agents normally sign in directly using the user's subscription login, OAuth token, or device grant. When a wrapper steps in the middle to manage the conversation, it usually ends up holding those login credentials too, so the user's account is held by your product instead of staying with the agent.

Mirasim's approach: launch the real agent and change only the model URL

Mirasim launches the agent's official command-line tool directly and connects its standard input and output to the session, so the process you are talking to is the unmodified Claude Code or Codex binary. Mirasim then changes only one setting: it points the agent's model base URL at a local proxy instead of connecting directly to the model provider. That is the only change Mirasim makes.

  1. Launch the official agent tool

    Runs Claude Code or Codex unmodified, exactly as officially released

  2. Forward requests via a local proxy

    Only the agent's model base URL is changed to point to the proxy

  3. Connect to the model provider

    The agent talks to the provider using its own login session

Forward request bodies as-is
The proxy never parses request data
Keep original authentication
Injects no API key unless required
Record traffic in the background
Drops data when full, never blocks

The local proxy saves raw bytes to disk and never checks for Anthropic or OpenAI formats, so it keeps working with any provider and agent version.

What you gain when Mirasim only routes traffic without translating

A wrapper that translates output
Mirasim: routes traffic only
When agent output format changes
The wrapper breaks until you update your output parser
Mirasim is unaffected and keeps working without changes
The agent's interface
The wrapper parses the output and redraws it in custom panels
Claude Code and Codex keep their own native terminal interfaces
Account sign-in and credentials
The wrapper product takes over and holds the user's login credentials
The agent reuses its existing login without re-authorizing in Mirasim
What the raw terminal view shows
A reconstructed view based on how your parser read the agent's output
The exact raw bytes that the coding agent wrote to the terminal
In Mirasim, one button switches a session between our rendered panels and the agent's real terminal output, making it easy to isolate bugs.

Because Mirasim does not translate traffic or take over authentication, Claude Code and Codex keep their own native logins, so you do not need to create a second account or re-authorize inside Mirasim. Each session chooses its own coding agent and model independently, which means two panes can run two different agents connected to two different model providers at the same time.

The trade-off of only routing traffic is that Mirasim cannot smooth over the differences between coding agents. Different agents behave differently, fail differently, and use different configuration methods, and Mirasim does not hide those differences behind a uniform interface. Instead of pretending that different agents are the same tool, Mirasim focuses on routing their traffic, recording session data, and providing the surrounding workbench.

Keep reading