Mirafold
Run and supervise your local coding agents from a browser.
- Source repo
- mirafold/mirafold
- Stars
- ★ 15
- Last updated
- 5d ago
- License
- MIT
- Primary language
- TypeScript
- FA score
- 89/100 · Good
At a glance
- Works with
- Universal · cross-platformCodex · Claude Code
- You'll need
- Typical use
- A developer who already uses Codex, Claude Agent, OpenCode, or Gemini CLI and wants a browser-based, structured view of the same native agent.
- Main limitation
- The project is explicitly in public beta, so adopters should expect bugs and rough edges.
- Source review
- 89/100 · Good
What does this agent do, and when should you use it?
Mirafold is a browser interface for Claude Agent, Codex, OpenCode, and Gemini CLI, not a generic replacement agent placed between the user and those tools. A local daemon adapts each agent's native event stream, while a React client renders streamed Markdown, tables, charts, diffs, task lists, diagrams, images, and other interactive output. The selected agent continues to use its local engine, credentials, configuration, permission model, filesystem, and shell. The interface adds persistent sessions, multiple attached browser views, mission control, an in-session Cockpit, read-only file browsing, and Git change review. It also supplies a real PTY for interactive commands and optional remote browser or phone access through an end-to-end-encrypted relay. The code is MIT-licensed, although remote pairing requires an active Mirafold Pro license key.
On startup, the local daemon uses the current directory as the default workspace, and AgentPicker lets the user choose a supported agent, a detected backend, and a working directory. Per-agent adapters convert native event streams into the shared protocol defined in server/protocol.ts; a session registry owns warm sessions, replay history, and browser attachments. The React client separates shell-owned controls from the agent-controlled output zone, where validated registry components and sandboxed artifacts are rendered. Ordinary prompts go to the agent, ! commands run through an interactive PTY and expose their transcript to the agent as a turn, and !! commands run as shell-only operations that the agent never sees. Files and Changes inspect the current directory and its Git working-tree changes, while mission control and Cockpit can preview, prompt, stop, end, or switch sessions. If no usable live backend is detected, Mirafold runs its built-in scripted demo without model traffic.
- A developer who already uses Codex, Claude Agent, OpenCode, or Gemini CLI and wants a browser-based, structured view of the same native agent.
- An engineer supervising several coding sessions who needs mission control or Cockpit to inspect, switch, stop, and end them.
- A reviewer who wants read-only workspace navigation and Git working-tree inspection beside the agent conversation.
- A command-line user who needs interactive programs or password prompts to retain real PTY behavior inside a coding session.
- A team evaluating the interface without configuring a live model backend or generating model traffic, using the scripted demo.
- A Mirafold Pro subscriber who wants to pair a remote browser or phone with the machine running the local daemon.
How do you install or deploy this agent?
Node.js 22 or newer is required. Install Mirafold globally, enter a project you are prepared to expose to the agent, and launch it:
npm install --global mirafold
cd /path/to/trusted-projectmirafold
The command binds a server to loopback, opens the browser, and treats the current directory as the default workspace. Supported options include mirafold --help, mirafold --no-open, and mirafold --verbose. Use npx mirafold only in a project you already trust because npx exposes project-local executables to launched commands. A live session also requires a detected supported agent backend and authentication accepted by that agent; otherwise Mirafold starts its scripted demo.
How do you use this agent?
After running mirafold, use AgentPicker to select an agent, one of its detected backends, and a working directory. Enter normal requests in the prompt box. Prefix a command with ! to run it in Mirafold's interactive shell and make its transcript visible to the agent as a turn; use !! for a shell-only command the agent never receives. Open / for mission control or /s/<session-id> for a specific session viewport. Cockpit, available from the activity bar, can preview, prompt, stop, end, and switch among live sessions; Files and Changes expose the current directory and Git changes. The show details control expands reasoning, routine calls, inputs, and retained output for the current browser tab. Remote access is paired through the ⧉ pair status-bar control and requires an active Mirafold Pro license key.
What are this agent's strengths and limitations?
- It uses a dedicated adapter for each of Claude Agent, Codex, OpenCode, and Gemini CLI, preserving the native engine, authentication, configuration, and permission model.
- MCP tools can produce live tables, charts, diffs, task lists, diagrams, images, and other interactive components in addition to streamed Markdown.
- Persistent sessions, multiple attached browser views, mission control, and Cockpit provide concrete controls for supervising several sessions.
- The real PTY supports interactive programs and password prompts, with a clear distinction between agent-visible ! commands and shell-only !! commands.
- The scripted demo makes the complete interface explorable without a usable live backend or model traffic.
- The project is explicitly in public beta, so adopters should expect bugs and rough edges.
- It requires Node.js 22 or newer, and live operation also depends on an installed, authenticated, supported agent backend.
- Because it drives a real agent with filesystem and shell access, users must review permission prompts and restrict it to directories they are willing to expose.
- Remote browser and phone pairing requires an active Mirafold Pro license key rather than being fully included with the MIT-licensed code.
- Reattached browsers may lack history that has fallen out of the daemon's replay buffer, and large outputs retain only their beginning and end.
How does this agent compare with similar options?
Compared with using Claude Agent, Codex, OpenCode, or Gemini CLI directly in a terminal, Mirafold keeps the native agent and its local permission model while adding a browser UI, structured generative components, multi-session supervision, and adjacent file and Git views. It is not a unified proxy agent and does not replace those CLIs with its own generic implementation. Each supported agent has a separate adapter, so live availability still depends on that backend and its authentication.
Key facts side by side with the most closely related agents.
| Agent | Source review | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|
| Mirafold This agent | 89 · Good | ★ 15 | 5d ago | TypeScript | Codex · Claude Code |
| zerostack | 57 · Major gaps | ★ 1.7k | today | Rust | OpenAI API · Claude API |
| MiniCode | 50 · Major gaps | ★ 1.1k | 14d ago | TypeScript | Claude API |
| MonoCode | 56 · Major gaps | ★ 1.1k | 1d ago | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
The evidence thoroughly describes loopback binding, per-launch authentication tokens, workspace path jails, read-only browsing, native engine permission prompts, pre-spawn folder trust confirmation, constrained project environment variables, sandboxed artifacts, and least-privilege CI permissions. External effects are distinguished through explicit !/!! syntax, pairing actions, and permission UI. Data flows for provider credentials, the remote relay, checkpoints, command-output handoff, and configured endpoints are unusually explicit. Sensitive-data handling loses a point because disclosed residuals remain: ! output is persisted verbatim, checkpoints may contain sensitive endpoint URLs, credentials can be sent to an operator-selected plaintext non-loopback endpoint after only a warning, and artifacts retain low-bandwidth ICE or preconnect leakage channels. Dependency and release controls include frozen installs, commit-pinned Actions, signed tags, hash checks, OIDC trusted publishing, and separation of install and publish credentials; however, runtime dependencies generally use version ranges and the supplied evidence shows no continuous vulnerability scan or audit result, so dependency_security is not full. Stop controls, atomic checkpoints, and validated recovery provide partial recovery, but there is no general rollback for filesystem or shell effects already performed by an agent. Authorship, licensing, third-party attribution, trademarks, and non-affiliation are clear; unknown enterprise publisher identity is not treated as suspicious.
The README, package metadata, security policy, and workflows are highly consistent about Node requirements, commands, ports, test tiers, and runtime architecture. They also specify visible failures for truncation, replay gaps, missing backends, unsafe configurations, and inconsistent releases. Dependency availability loses a point because normal operation relies on Node.js 22, separately installed agent binaries and authentication; remote functionality additionally depends on paid entitlement, relay availability, and a licensing backend, while one integration check deliberately tracks a sibling repository's moving default branch. The scripted demo mitigates the no-backend case but does not remove these dependencies.
The source covers terminal-agent users, parallel sessions, desktop and phone access, local and hosted open models, developers, and adapter authors. Boundaries clearly separate the Mirafold shell, native agents, sandboxed artifacts, file browsing, the real PTY, remote viewports, and the demo backend. Explicit ! and !! prefixes, the pairing control, first-use folder trust, and named environment settings give triggers precise semantics. Environment fit loses a point because Node.js 22 is mandatory, support is limited to the named agents and documented model interfaces, and some behavior depends on local binaries, browsers, OS folder pickers, or a paid remote service.
The README has strong installation, first-run, development, architecture, verification, and documentation sections. Product, protocol, session, and command naming is consistent and supported by references to a glossary and normative adapter specification. The full MIT text, package metadata, third-party licensing statement, and trademark notice are present. Known limitations and accepted trust decisions are exceptionally detailed. examples_and_faq loses a point because there are useful command examples and operational guidance but no structured FAQ or broad troubleshooting catalogue in the supplied material. versioning_changelog loses a point because version 0.10.0, a release process, and plan/archive references are visible, but no actual changelog or migration history is supplied. Maintenance responsibility is established through a named author, issue tracker, security contact and response target, supported-version policy, and documented release ownership; the unverified publisher identity limits identity assurance but does not erase those repository-level signals.
The described interface emphasizes readable streaming output, diffs, tables, charts, tasks, session overviews, expandable detail, honest truncation markers, and multi-viewport supervision, providing strong static support for output usability. It adds session management, generative UI, read-only review, and remote viewing while preserving existing terminal agents and permission models, giving clear marginal value. Cost_benefit loses a point because setup spans Node and multiple external backends, the product intentionally exposes full shell-level capability, its security boundary is complex, and remote access requires a Pro entitlement; the evidence does not quantify resource consumption or productivity gains.
Material claims are commonly tied to named files, symbols, test tiers, audit dates, failure conditions, or workflow steps. README verification commands are corroborated by package scripts and CI/release configuration, while licensing is independently supported by the license file and package metadata. The security policy expressly separates tested behavior, live probes, manual rechecks, design decisions, accepted residuals, and facts that specific test tiers cannot preserve, earning full fact-inference separation. Confidence nevertheless remains low because this assessment uses only the supplied static excerpts and did not execute commands or independently validate claimed test outcomes.
- Mirafold drives real agents with the current user's filesystem and shell privileges. Launch it only in directories suitable for agent access and review every permission prompt carefully.
- Do not disable the launch authentication token or expose the local daemon directly to a network; use only the documented end-to-end-encrypted pairing path for remote access.
- Bang commands are unsandboxed, their output is handed to the agent, and that output may enter checkpoints. Avoid printing environment variables, keys, or other secrets.
- Use TLS for relay and entitlement overrides. The source explicitly says a plaintext non-loopback endpoint produces a warning but still transmits the paid credential.
- A user-pinned pairing code is checked for length and character set, not entropy. Use a random high-entropy value and treat the displayed pairing QR as a full remote-access credential.
- Discovered local model servers have no authenticated identity; on shared machines, a hostile local process could impersonate one and receive conversation or code context.
- Project .env files, agent-specific configuration, MCP configuration, and hooks can redirect endpoints or take effect when an engine starts. The first-use trust prompt does not replace inspection of an unfamiliar repository.
- The source makes extensive testing and audit claims, but this static assessment did not run tests, inspect the lockfile, or verify published provenance.