Vessel Browser
A visible, supervised browser where agents can work across pages and keep state between tasks.
- Source repo
- unmodeled-tyler/vessel-browser
- Stars
- ★ 137
- Last updated
- 1mo ago
- License
- MIT
- Primary language
- TypeScript
- FA score
- 58/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformOpenAI API · Claude API
- Cost
- Free tier plus a paid hosted plan
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A researcher comparing information across websites can have the assistant read pages, gather source-backed material, and produce an exportable report in Research.
- Not a fit if
- Teams needing mature, stable software for sensitive account work
- Users who need every feature to be free
- Source review
- 58/100 · Major gaps
What does this agent do, and when should you use it?
Vessel is a Chromium and Electron desktop browser with tabs, bookmarks, reader mode, and a built-in AI assistant. Its chat assistant supports Anthropic, OpenAI, Ollama, llama.cpp, Mistral, xAI, Google Gemini, OpenRouter, and OpenAI-compatible endpoints. External agents control the real browser through a local MCP server and can use tools for persistent sessions, checkpoints, bookmarks, and page extraction. Users can review runs in the sidebar, approve sensitive actions, undo recent changes, or take over browsing at any time. Linux is the most mature install target; the README also documents packaged Windows releases and macOS packaging from source, and says the project is under active development.
Once Vessel is running, its built-in assistant or an external MCP-connected agent can read the current page, extract content and tables, scroll, wait for elements, dismiss popups, fill forms, and save bookmarks. Agents can use vessel_save_session and vessel_load_session to preserve or restore named sessions containing cookies, localStorage, and tab layout; they can also create checkpoints and call undo_last_action to restore the snapshot before the last successful mutating action. Vessel persists work from Chat, MCP, scheduled jobs, and Research in a Run Inbox, where the Supervisor sidebar shows timelines, approvals, outputs, errors, and tab context. Users can export run records, Research reports as Markdown, or bookmarks; Research sub-agent execution and report export require Premium.
- A researcher comparing information across websites can have the assistant read pages, gather source-backed material, and produce an exportable report in Research.
- A Hermes Agent or OpenClaw user can connect an external agent to one persistent browser through Vessel's local MCP server.
- An operations worker handling a multi-step website flow can delegate navigation and form work, then review and approve important actions.
- A user recovering interrupted browsing work can manage browser state with named sessions, checkpoints, and persistent run records.
- A developer who wants to run a local model can connect Ollama or llama.cpp in Settings and use the built-in assistant in Vessel's Chat tab.
How do you install or deploy this agent?
The README describes the Linux AppImage from GitHub Releases as the fastest install path. Download Vessel-<version>-x64.AppImage, then run:
chmod +x Vessel-*.AppImage
./Vessel-*.AppImageYou can also install and launch it with npm:
npm install -g @quanta-intellect/vessel-browser
vessel-browserSource development requires Node.js 22:
fnm use
npm install
npm run devThe README also provides an install script:
curl -fsSL https://raw.githubusercontent.com/unmodeled-tyler/vessel-browser/main/scripts/install.sh | bashWindows packaged releases use an NSIS installer. Universal macOS packaging commands must be run on macOS. The README identifies Linux as the most mature install target.
How do you use this agent?
After first launch, open Settings with Ctrl+, to choose a chat provider and model, check MCP status, or change the port. The default MCP port is 3100. For an MCP client, the recommended stdio proxy configuration is:
{
"mcpServers": {
"vessel": {
"command": "vessel-browser-mcp",
"args": ["--stdio"]
}
}
}Start Vessel before connecting the MCP client; the proxy reads its token from ~/.config/vessel/mcp-auth.json. Alternatively, connect to the HTTP MCP endpoint at http://127.0.0.1:3100/mcp and provide the bearer token from that file. Once connected, an external agent can read pages, operate tabs, and manage sessions. Use Supervisor to inspect pending approvals, change approval mode, pause a run, or undo a recent change. To use built-in Chat, enable it in Settings and configure a provider and API key.
What are this agent's strengths and limitations?
- Agent activity takes place in a visible browser window, so users can approve, pause, steer, or take over.
- A local MCP server and stdio proxy connect the browser to Hermes Agent, OpenClaw, and other MCP clients.
- Named sessions, checkpoints, persistent run records, and undo support recovery and review of longer tasks.
- The built-in assistant supports multiple providers, including Ollama, llama.cpp, and OpenAI-compatible endpoints.
- The project is under active development; the README advises caution for sensitive browsing or account access.
- Linux is the most mature install target; macOS packaging is from source, and signed builds are not notarized by default.
- Using hosted providers such as Anthropic or OpenAI requires provider configuration and API credentials; some features also require Vessel Premium.
- External MCP clients require the desktop app to be running and a local proxy or token-bearing HTTP endpoint to be configured.
How does this agent compare with similar options?
The README contrasts Vessel with invisible browser automation: agents work in a user-visible window with approval and takeover controls. It also positions Vessel as a browser runtime for external agents such as Hermes Agent and OpenClaw, rather than a separate browser session launched by those tools.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Vessel Browser This agent | 58 · Major gaps | Desktop appFreemium | ★ 137 | 1mo ago | TypeScript | OpenAI API · Claude API |
| AIHawk – AI Browser Agent | 59 · Major gaps | MCP serverFree + model costs | ★ 32k | 2d ago | TypeScript | Codex · Claude Code |
| Lightpanda Browser | 66 · Some gaps | CLIFree | ★ 37k | today | Zig | OpenAI API · Claude API |
| Auto Browser | 62 · Some gaps | Self-hosted serviceFree + model costs | ★ 916 | 3d ago | Python | OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
The README describes visible supervision, scoped approvals, reject-and-steer, domain policies, undo, and session restoration; tests also cover approval states and runtime behavior, giving ordinary confirmation and rollback some concrete support. However, several safeguards are chiefly README claims, and auto mode can bypass actions explicitly marked as requiring approval, so confirmation and rollback do not receive full marks. The README describes encrypted conversation history, in-memory-only handling when secure storage is unavailable, redacted run records, and credential blind fill with domain limits and per-use consent. These details support sensitive-data handling and data-flow transparency, but the supplied material lacks code corroboration and a complete data-flow account. Dependency-audit scripts and CI audit steps are present, but no audit results are supplied, so dependency security receives partial credit. MCP, local AI providers, and browser actions can affect external services; the README describes navigation and form work alongside approval and domain controls, while evidence for least privilege is limited. package.json identifies an author, email, and repository, but publisher identity is unknown under the prompt, so attribution is only partial.
package.json and the README broadly align on Electron, Node, and the main features. The README makes broad platform claims while also calling Linux the most mature target and macOS source packaging available; installation guidance specifically recommends Linux AppImage and describes Windows installers, leaving uneven maturity and delivery paths. Node/npm versions, a lockfile-based CI install, and CI checks are specified, but Electron downloads depend on external availability; the README offers a mirror as a workaround, so dependency availability is only partly handled. Runtime health checks, error records, interrupted-run handling, and tests asserting concrete error responses support failure messaging. Full marks are withheld because user-facing failure handling is not comprehensively shown.
The README names ordinary browsing, research, form work, long sessions, and harnesses such as Hermes, OpenClaw, and MCP clients, giving useful audience and scenario coverage. It lists capabilities in detail and marks Research as beta, some features as Premium, and Linux as the most mature target; a complete external-tool permission boundary is still missing. Startup instructions, shortcuts, MCP connection options, and domain policies make use conditions fairly clear, but the approval requirements for each action are not specified. Node 22, Linux installation, macOS builds, Windows installers, and an Electron mirror workaround are documented; differing platform maturity and macOS signing/notarization limitations prevent a full environment-fit score.
The README is organized into quick start, features, architecture, installation, and external-agent setup. It covers AppImage, npm, source, development, and packaging, but the source install pipes a remote script to a shell without a verification method in the supplied material. Package, command, MCP, and version names are mostly consistent. The README provides commands and Hermes/OpenClaw setup steps, but no complete FAQ; the supplied README text also ends mid-section. It discloses early development, Research beta status, platform maturity, lack of notarization, and that interrupted runs are not automatically resumed. The MIT license text is complete and earns full marks. package.json gives version 0.1.0, but no changelog or clear release history is included. An author and contact email are listed, while maintenance responsibility, support commitments, and update ownership remain unclear.
The README describes usable outputs and controls for long sessions, approvals, run records, bookmarks, rollback, and report export; tests also show structured action events and error responses. These support practical output usability, though no complete end-user output example is provided. Visible browser supervision, durable state, and MCP control offer a clear additional capability for agent browsing, but many advanced features require Premium and the product is early software. The README identifies free and paid features and documents installation effort, but does not quantify resource use, service costs, or maintenance burden, limiting cost-benefit evidence.
README claims about installation, architecture, protocol endpoints, retention, and approvals can be traced to package.json, CI configuration, and some tests. Many feature claims remain README-only in the supplied material. The README, configuration, and tests provide limited cross-source corroboration; CI describes intended checks but does not establish that this revision passed them. The README distinguishes implemented features from beta status, Premium gates, and platform maturity, but promotional claims are not consistently separated from independently supported facts.
- The README calls the product early software and advises caution for sensitive browsing and account access; verify the author, package, and distribution channel independently because publisher identity is unverified.
- The README describes agent navigation and form actions; review approval mode, domain policies, and credential scope before use.
FAQ
Is Vessel entirely free?
What do I need for the built-in chat assistant?
How does an external agent connect?
vessel-browser-mcp --stdio; the proxy reads its bearer token from a local config file. Or connect directly to the local HTTP MCP endpoint on port 3100 and supply the token manually.