September 28, 2026
Mini integrated an AI agent: fx controls the browser via MCP
On Sep 28, Mini connected an AI agent via fx and ACP. The browser moved from Electron and Bun to Rust and Swift. Mini gets the latest Chromium through the `cef` crate.

Guillermo Rauch
@rauchg
I moved my Mini web browser to Rust and Swift. It is faster, safer, and surprisingly more enjoyable to work on than Electron and Bun. I have always wanted a Safari-like interface, but... Chrome 😁. Thanks to the `cef` crate, I can package the latest Chromium. `fx acp` lets me embed an agent without bloating the app. It talks to my local fx CLI over ACP. Fx then controls the browser through an MCP server. I ditched Electron and got Liquid Glass, faster startup, and a more native Mac feel. Fine-tuning focus and input in JS becomes an absolute nightmare, while here everything just works®. Native is the future both on the desktop and in the cloud. I think the entire software world will go native much faster than many expect, as DHH hinted at Rails World. Glad that Vercel's bet on Fluid will support this transition, whichever path you choose: Rust, Go, Zig, scriptc… ¹ Built with http://fx.sh using Opus 5.5 and Sol 6 ² Along the way, I learned about http://agentclientprotocol.com/rfds/mcp-over-acp, and now I am excited about it. It will provide a safer, more direct way to expose MCP tools.
· 38.8K views
Mini now runs on Rust and Swift, while version `154.0.0+154.0.23` of the `cef` crate embeds Chromium in a Rust application. Mini was built with fx.sh using Opus 5.5 and Sol 6.
Install fx on macOS and Linux with `curl -fsSL https://fx.sh/setup.sh | bash`. You can pin a version with `curl -fsSL https://fx.sh/setup.sh | bash -s -- <version>`. Start the ACP server in the project directory with `cd /absolute/path/to/project && fx acp`; each main workspace needs its own process.
Servers stay intact. Fx adds the client's `mcpServers` to the approved servers from `.mcp.json`. If names collide, the client configuration wins. Fx runs JSON-RPC 2.0 over stdin/stdout and accepts messages up to 8 MiB, so diagnostics go to `--log-file` or `FX_TRACE_LOG`.
By default, fx uses Vercel AI Gateway. Authenticate with `fx login` and a Vercel account, or `fx setup` and an API key; Codex and Grok subscriptions also work.
Native MCP-over-ACP in the Rust SDK is still enabled through `unstable_mcp_over_acp`; it uses the `mcp/connect`, `mcp/message`, and `mcp/disconnect` methods.
Source

