I've been writing software for over twenty years, and the last decade has been almost entirely AI and retrieval systems. Since 2025 I've been building Octomind, an open-source agent runtime, at Muvon. And somewhere along the way I did the thing every engineer eventually does: I decided the tool everyone uses every day was wrong, and built my own.
It's called Octoweb. It's a keyboard-first AI browser for macOS, built on WebKit and Rust. Free, open source under Apache 2.0, no account required. The tagline is "The browser you reach for when you want to think."
Here's why it exists, and the honest tradeoffs I made to build it.
Why build a browser in 2026?
Because the browser is where the workday lives. Email, docs, dashboards, PRs, research — all of it. And after twenty years of that, the browser is still mouse-shaped. You point, you click, you scroll, you lose your place.
Meanwhile everything else in my workflow got faster. My editor is keyboard-driven. My shell is keyboard-driven. But the thing I spend the most hours in still demands that I take my hands off the keys.
So in Octoweb, the command palette isn't a feature. It's the interface. You open it and you do things — navigate, search, run actions, talk to the AI. The mouse is there when you want it, but you shouldn't need it.
The tradeoffs, plainly
Let me be upfront about what I gave up.
Choosing WebKit means no Chrome extension ecosystem. That was a real cost. Chrome extensions are genuinely great, and I use them daily in Chrome. If your workflow depends on a specific extension, Octoweb won't replace your browser — it's a second one, for the parts of your day where you want to think instead of click.
And to be clear about Electron: it's good engineering. It ships cross-platform UIs fast, and huge amounts of software I love runs on it. I just wanted native feel and a smaller footprint, and WebKit plus Rust gets me that on macOS. Different goal, different tool — no shade.
What keyboard-first actually means
In practice:
- The palette is the primary interface — everything routes through it
- ⌘1–9 jumps between tabs
- ⌘⇧1–0 pins tabs
- The AI lives in a sidebar, always one keystroke away
That last one deserves a sentence. Chat is not a page. Tabs are for pages. When your AI assistant is a tab, you context-switch away from your work to talk to it, then context-switch back. A sidebar means the AI sits next to what you're doing — it can see the page, you can keep reading, and the conversation doesn't compete with your tabs for space.
Agents can drive it, too
This is the part I'm most excited about, because it's where Octomind comes in. Octoweb exposes an MCP server, which means agents can drive the browser directly:
{
"server": "octoweb",
"tools": ["navigate", "read_page", "click", "type"]
}
Your browser stops being just a window you look through and becomes a surface agents can work in. Research, fill forms, pull data — with you watching, on your machine. (It runs on Octomind, our open-source agent runtime — that's the whole pitch, one line.)
Try it
macOS 13+, Apple Silicon (Intel is supported too). Current version is 0.14.0, which means: early, rough in places, moving fast.
brew install --cask muvon/tap/octoweb
Source, releases, changelog, keyboard shortcuts, and the MCP server docs are all at https://octoweb.xyz/.
What's next
More agent capabilities over MCP, better tab management from the palette, and whatever the issue tracker tells me I got wrong. It's 0.14.0 — there will be things I got wrong.
If you try it, please open issues. Tell me where it fights you. The best feedback I ever got on a product was "I wanted to do X and couldn't find how" — that kind of thing is gold at this stage.
And if you're building agents that need a browser to live in — I'd genuinely love to hear what you'd want the MCP surface to do next.
Top comments (0)