octoweb
Keyboard-first AI browser for macOS — WebKit + Rust, built-in AI sidebar, isolated workspaces, and an MCP server that lets your agents drive the web.
Install / Use
claude mcp add Muvon -- npx -y github:Muvon/octowebIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Our assessment of octoweb
octoweb scores 87/100 on our quality scale, 1639th of 2,878 Automation skills we index.
Its MCP Server is 19 KB long, well organised into 30 sections with 11 code examples: a thorough specification that gives an agent plenty to work with.
It has 50 GitHub stars, a meaningful sign that others use it.
Maintenance, license and trust
- The repository was last updated yesterday, so octoweb is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
octoweb compared with similar skills
All 4 of these similar skills score higher than octoweb; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| octoweb (this skill)by Muvon | 87 | 50 | 1d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 109.6k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 79.0k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.8k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 98.8k | 1d ago | MCP Server |
Frequently asked questions
- How do I install octoweb?
- Run
claude mcp add Muvon -- npx -y github:Muvon/octoweb. The install tabs above show the steps for each supported agent. - Which AI agents does octoweb work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is octoweb safe to use?
- It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is octoweb still maintained?
- The repository was last updated yesterday, so octoweb is actively maintained.
Skill content
View source on GitHubOctoweb — the keyboard-first AI browser for macOS
The browser you reach for when you want to think. macOS only, by design.
Built on WebKit and Rust. No Electron. No Chrome. No mouse required.
Contents
- Why Octoweb?
- Features
- AI Assistant
- MCP server (AI browser control)
- Keyboard shortcuts
- Install
- Configuration
- What it is (and isn't)
- Tech stack
Why Octoweb?
Most browsers are built around the mouse. Octoweb is built around the keyboard — and around the idea that your browser should amplify your thinking, not interrupt it. Every action has a shortcut. The AI assistant lives in a sidebar, not a tab. And your AI tools can drive the browser directly via MCP. No extensions. No config. Just open it and go.
Three things it does differently:
-
Keyboard-first navigation — Every action has a shortcut. Nothing requires a click. The command palette (
⌘⇧P) fuzzy-searches tabs and history. Pin any page to a fast-access slot with⌘⇧1–⌘⇧0and jump back with⌘1–⌘9from anywhere. -
AI assistant built in — Not an extension, not a tab. A sidebar overlay powered by a local octomind agent via ACP. Ask questions about the current page, get code explanations, summarize content — all without leaving the browser.
-
MCP server inside the browser — Your AI tools can actually drive the browser. Octoweb runs an MCP server on
localhost:3434/mcpthat exposes 29 tools for navigation, tab management, page interaction, and content extraction. Point Claude Desktop or any MCP client at it and watch it browse.
Features
- Command palette (
⌘⇧P) — Fuzzy search across tabs and history. Type a URL, search query, or page fragment. - Fast-access slots (
⌘1–⌘0) — Pin up to 10 pages for instant access. Footer bar shows all slots. - Tab pinning (
⌘⇧N) — Pin the current tab to the fast-access bar with one keystroke. - Workspaces (
⌘⇧O) — Isolated browser profiles: each workspace has its own tabs, history, AI sessions, and a dedicated WebKit data store, so cookies, localStorage, and cache never leak between them. Switch with⌘1–⌘0while the popover is open. - Configurable keybindings — Remap any shortcut in Settings (
⌘,). Changes apply on the next keystroke, no restart. - AI sidebar (
⌘⇧A) — Chat with a local AI agent about the current page. Streaming responses, code blocks with copy. - Inline AI edit (
⌘⇧E) — Select text on any page, transform it with AI. Rewrite, summarize, translate. - Proactive learning — Background agent periodically analyzes your browsing and memorizes patterns. Enabled by default, configurable interval — disable in Settings (
⌘,). - MCP server — 29 tools for AI clients to control the browser. Navigate, click, type, screenshot, extract content.
- Find-in-page (
⌘F) — Full-text search with highlighting. - Page zoom —
+/-to zoom,⌘0to reset. - Screenshots —
⌘Sfor viewport,⌘⇧Sfor full page. Copied to clipboard. - PDF & DOCX viewer — Open documents directly in the browser.
- Session restore — Tabs and history persist across restarts.
- Favicon caching — No network requests on startup. Icons stored as base64.
- Content blocking — Built-in tracker and ad blocker via WKContentRuleList.
- Smart tab hibernation — Background tabs under memory pressure are frozen.
AI Assistant
Press ⌘⇧A to open the sidebar. It connects to a local AI agent running under octomind using the Agent Client Protocol (ACP). Responses stream in as they arrive.
How it works
octoweb sidebar ──ACP/JSON-RPC──▶ octomind acp octoweb:assistant
│
specialist agent config
from the tap registry
│
your chosen AI provider
(OpenAI, Anthropic, etc.)
octomind is a plug-and-play AI agent runtime. You install it once, point it at an API key, and get a fully configured specialist agent — model, system prompt, tools, and all — with zero manual setup. The octoweb:assistant tag fetches that agent's configuration from the community tap registry automatically.
Setup
1. Install octomind:
curl -fsSL https://raw.githubusercontent.com/muvon/octomind/master/install.sh | bash
2. Set an API key (any supported provider):
export OPENROUTER_API_KEY="your_key" # easiest — covers all providers
# or: OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.
3. Start octomind in ACP mode (octoweb connects to this):
octomind acp octoweb:assistant
octomind fetches the octoweb:assistant agent manifest from the tap, installs any required tools, and starts listening for ACP connections. octoweb's sidebar connects automatically.
4. Open the sidebar in octoweb: ⌘⇧A
Changing the agent
The agent tag in the sidebar header defaults to octoweb:assistant. You can type any tag your octomind instance knows about — developer:rust, assistant, your own custom agents — and the sidebar reconnects to that agent immediately.
Shipped tags include octoweb:assistant (sidebar chat), octoweb:editor (inline text transformation, used by ⌘⇧E), octoweb:learning (background learning), and octoweb:trend (live social trend research) — see the tap registry.
No data leaves your machine unless your agent sends it somewhere. The AI provider call is made by octomind, not by the browser.
Agent-rendered UI (A2UI)
Agents can do more than reply with text: via the render_ui tool they can draw interactive surfaces — forms, buttons, live views — inline in the sidebar chat. Buttons can open URLs in a new tab or resolve back to the agent.
Octoweb speaks A2UI v1.0 and renders the full basic catalog (Card, Row/Column/List, Text, Image, Icon, Video, AudioPlayer, Button, TextField, CheckBox, ChoicePicker, Slider, DateTimeInput, Tabs, Modal, Divider), including data-model binding, ${…} string interpolation, list templates, validation checks, accessibility attributes, and agent-issued callRendererFunction. Envelopes are validated before they render, so a malformed surface comes back to the agent as a precise error instead of a blank card.
Proactive Learning
Octoweb runs a background agent that periodically analyzes your browsing patterns and memorizes insights. This is enabled by default — turn it off in Settings (⌘,).
How it works:
- Every
learning_interval_min(default: 30), the background agent wakes up - It collects: open tabs, recent history, and the active page's text content
- The agent calls
rememberto check existing memories, thenmemorizefor new insights - Insights are stored locally in octomind's memory system
Configuration:
proactive_learning = true # enable background learning
learning_interval_min = 30 # minutes between runs (floored to 5 on load)
The learning agent runs as a separate octomind acp octoweb:learning process. It's completely independent from the sidebar assistant — you can use one without the other.
MCP server (AI browser control)
octoweb runs an MCP server on localhost:3434/mcp. Any MCP-compatible AI client — Claude Desktop, octomind itself, your own scripts — can use it to control the browser directly.
Claude Desktop / octomind / any MCP client
│
│ HTTP JSON-RPC
▼
localhost:3434/mcp (inside octoweb)
│
▼
WebKit WebView — navigate, click, type, read, run JS
Available tools:
| Tool | What it does |
|------|--------------|
| browser_navigate | Navigate to a URL — always in the background (new tab, or in-place via tab_id); never steals focus |
| browser_go_back | Go back in history |
| browser_go_forward | Go forward in history |
| browser_reload | Reload current page |
| browser_wait | Wait for load / SPA readiness / a CSS selector to appear |
| browser_get_tabs | List all open tabs with IDs, titles, URLs |
| browser_get_current_tab | Get the tab the user is viewing |
| browser_switch_tab | Show a tab to the user (the only tool that changes focus) |
| browser_close_tab | Close a tab by ID |
| browser_snapshot | Map of interactive elements with @N refs — pierces iframes, shadow DOM, and listener-only clickables |
| browser_get_page_info | Get title, URL, meta description |
| browser_get_page_content | Get page text content (innerText) |
| browser_execute_js | Run JavaScript in the page (Promises are awaited) |
| browser_click | Click an element — auto-retries until present, stable, and unobstructed; reports what covers it |
| browser_type | Set an input/textarea/contenteditable value (React-safe) |
| browser_fill_form | Fill several fields — and optionally submit — in one call |
| browser_dismiss_overlay | Dismiss cookie/consent overlays — prefers Reject/Decline, never auto-accepts |
| browser_hover | Hover with full pointer + mouse event sequence |
| browser_scroll | Scroll the window, or an element's scrollable container via selector |
| browser_press_key | Press a key; Enter on a form input submits like a real keypress |
| browser_select_option | Select an option in a <select> by value or label |
| browser_screenshot | Take a screenshot (full_page: true for entire page) |
| browser_console_messages | Recent console output + JS errors of the page |
| browser_network_requests | Recent fetch/XHR activity with statuses and timings |
| browser_handle_dialog | Arm auto-answers for upcoming alert/confirm/prompt dialogs |
| browser_upload_file | Arm the next file chooser with local file paths |
| browser_get_history | Get browsing history entries |
| browser_get_playing_tabs | List tabs currently playing audio/video |
| render_ui | Draw an interactive A2UI surface (forms, approval cards, live views) in the AI sidebar and block until the user clicks |
Workspace routing: one server serves every workspace. A request's X-Octoweb-Workspace token says which workspace it acts on; callers that send no token fall through to the first workspace. The sidebar's agent sessions carry their token automatically, so an agent driving tabs in a background workspace never disturbs the one you're looking at.
Point Claude Desktop at http://localhost:3434/mcp and it can browse, read, fill forms, and navigate — all while you watch. Set OCTOWEB_MCP_PORT / OCTOWEB_CONFIG_DIR to run an isolated second instance (e.g. for the e2e suite: python3 test_mcp.py --mcp-url http://127.0.0.1:3435/mcp).
Using octomind as the MCP client
Because octomind has a built-in mcp tool that can register external servers at runtime, you can give any running octomind agent live browser access in one step:
# inside an octomind session
/mcp add octoweb http://localhost:3434/mcp
The agent can now navigate pages, extract content, and interact with the browser as part of its normal tool use — no restart, no config change.
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
109.6kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
79.0kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.8kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
98.8k🕷️ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
