vessel-browser

Built from the ground-up for agents, Vessel Browser is an open source AI browser for Linux/Windows that provides a durable state, MCP control, and BYOK with full autonomous browsing. Use with Hermes Agent, OpenClaw, or connect to your favorite API provider.

β˜… 49 TypeScript MIT Updated 4/14/2026
View on GitHub β†’ Homepage

quanta-intellect-logo-transparent

Get it from the Snap Store Vessel Browser from Quanta Intellect - The browser where agents drive and humans supervise | Product Hunt

Vessel: Your Agent's Browser

Open source chromium-based browser for persistent web agents. Linux is the most mature install target today, and macOS release packaging is available from source.

Vessel gives external agent harnesses a real browser with durable state, MCP control, and a human-visible supervisory UI. It is built for long-running workflows where the agent drives and the human audits, intervenes, and redirects when needed.

Vessel is in active development and currently makes no security assurances. Use and deploy it with care.

https://github.com/user-attachments/assets/0a72b48a-873a-4eb0-b8f2-23e34d8472c4

Quick Start

Want the full agent toolkit from day one? Start a 7-Day Free Trial of Vessel Premium β€” $5.99/mo.

Fastest Install Today

Linux AppImage from GitHub Releases:

  1. Download the latest Vessel-<version>-x64.AppImage
  2. Mark it executable: chmod +x Vessel-*.AppImage
  3. Launch it: ./Vessel-*.AppImage
  4. Open Settings (Ctrl+,) and confirm the MCP endpoint shown there

Install via npm

npm install -g @quanta-intellect/vessel-browser
vessel-browser

Or run it directly without installing:

npx @quanta-intellect/vessel-browser

Source Install

curl -fsSL https://raw.githubusercontent.com/unmodeled-tyler/quanta-vessel-browser/main/scripts/install.sh | bash

Development From Source

npm install
npm run dev

If you want extra local AI tracing in development, create an optional src/main/telemetry/trace-logger.local.cjs file. Vessel will load it only in local dev builds, and packaged production builds ignore it.

Why Vessel?

Most browser automation stacks are either headless, stateless, or designed around a human as the primary operator. Vessel is built around the opposite model: the browser is the agent's operating surface, and the human stays in the loop through a visible interface with clear supervisory controls.

@quanta-intellectvessel-browser_2026-03-17_200224_6613 vessel_2026-03-16_144201_7545 @quanta-intellectvessel-browser_2026-03-17_195754_6624 vessel_2026-03-17_145154_5389

Vessel is built for persistent web agents that need a real browser, durable state, and a human-visible interface. The agent is the primary operator. The human follows along in the live browser UI, audits what the agent is doing, and steers when needed.

Today, Vessel provides the browser shell, page visibility, and supervisory surfaces needed to support that model. The long-term goal is not "a browser with AI features," but a browser runtime for autonomous agents with a clear supervisory experience for humans.

Features

Positioning

Most browsers treat automation as secondary and assume a human is the primary actor. Vessel is the opposite: it is the browser for the agent, with a visible interface that keeps the human in the loop.

That means the product should optimize for:

Stack

Layer Technology
Engine Chromium (Electron 40)
UI Framework SolidJS
Language TypeScript
Build electron-vite + Vite
AI Control External agent harnesses (Hermes Agent, OpenClaw, MCP clients) + built-in chat (Anthropic, OpenAI, Ollama, llama.cpp, and any OAI-compatible endpoint)
Content Extraction @mozilla/readability

Architecture

Main Process                              Renderer (SolidJS)
β”œβ”€β”€ TabManager (WebContentsView[])        β”œβ”€β”€ TabBar, AddressBar
β”œβ”€β”€ AgentRuntime (session + supervision)  β”œβ”€β”€ CommandBar (secondary surface)
β”œβ”€β”€ MCP server for external agents        β”œβ”€β”€ AI Sidebar (Supervisor/Bookmarks/Checkpoints/Chat/Automate)
β”œβ”€β”€ AI providers (Anthropic + OAI-compat) β”œβ”€β”€ DevTools Panel (Console/Network/Activity)
β”œβ”€β”€ Supervision, bookmarks, checkpoints   β”œβ”€β”€ Agent Transcript Dock
└── IPC Handlers ◄──contextBridge──► ──► └── Signal stores (tabs, ai, ui)
└── IPC Handlers ◄──contextBridge──► Preload API

Each browser tab is a separate WebContentsView managed by the main process. The browser chrome (SolidJS) runs in its own view layered on top. All communication between renderer and main goes through typed IPC channels via contextBridge.

The sidebar Automate tab renders kit forms entirely in the renderer and passes the rendered prompt to the built-in agent via the same query() path used by the Chat tab β€” no additional IPC surface is needed.

Getting Started

The installer:

The packaged AppImage path:

After install:

vessel-browser
# Install dependencies
npm install

# If Electron download fails, use a mirror:
ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/" npm install

# Development (with HMR)
npm run dev

# Production build
npm run build

# Smoke-test the MVP release path
npm run smoke:test

# Package an unpacked Linux app
npm run dist:dir

# Package a Linux AppImage
npm run dist

# Package an unpacked macOS app bundle (run on macOS)
npm run dist:mac:dir

# Package macOS DMG + ZIP artifacts (run on macOS)
npm run dist:mac

# Package signed macOS DMG + ZIP artifacts (run on macOS with signing set up)
npm run dist:mac:signed

Notes:

Setting up Vessel for Hermes Agent or OpenClaw

Vessel is designed to act as the browser runtime that your external agent harness drives.

  1. Launch Vessel
  2. Open Settings (Ctrl+,) to confirm MCP status, copy the endpoint, or change the MCP port
  3. Optional: set an Obsidian vault path or session preferences
  4. Start Hermes Agent or OpenClaw and point it at Vessel β€” the easiest way is vessel-browser-mcp --stdio as the MCP command (auth is resolved automatically), or connect directly to http://127.0.0.1:<mcpPort>/mcp with the bearer token from ~/.config/vessel/mcp-auth.json
  5. Use the Supervisor panel in Vessel's sidebar to pause the agent, change approval mode, review pending approvals, checkpoint, or restore the browser session while the harness runs
  6. Use the Bookmarks panel to organize saved pages into folders and expose those bookmarks back to the agent over MCP

Notes:

Using llama.cpp as the built-in chat provider

Vessel can talk directly to a local llama-server through its OpenAI-compatible API.

Example:

llama-server -m /path/to/model.gguf --port 8080 --ctx-size 32768

Then in Vessel:

  1. Open Settings (Ctrl+,)
  2. Enable Chat Assistant
  3. Choose llama.cpp (Local) as the provider
  4. Click refresh if needed; Vessel will auto-detect the active model from http://localhost:8080/v1

Notes:

Initial memory tools:

Bookmark and folder tools exposed today include:

Page interaction and recovery tools exposed today include:

Page highlight tools:

Workflow tracking tools:

Data extraction tools (Premium):

Named session tools exposed today include:

Session files are sensitive because they may contain login cookies and tokens. Vessel stores them under the app user-data directory with restrictive file permissions.

Agent Credential Vault tools (Premium):

Session performance tools (Premium):

Vault security model:

Notable extraction modes include:

The extraction output can distinguish:

Stdio proxy MCP config (recommended β€” resolves auth automatically):

{
  "mcpServers": {
    "vessel": {
      "command": "vessel-browser-mcp",
      "args": ["--stdio"]
    }
  }
}

The stdio proxy reads the bearer token from ~/.config/vessel/mcp-auth.json at connection time, so no manual token management is needed. Vessel must already be running when your MCP client connects, and ~/.config/vessel/mcp-auth.json must exist from install or first launch.

Generic HTTP MCP config (requires copying the token manually):

{
  "mcpServers": {
    "vessel": {
      "type": "http",
      "url": "http://127.0.0.1:3100/mcp",
      "headers": {
        "Authorization": "Bearer <token from ~/.config/vessel/mcp-auth.json>"
      }
    }
  }
}

Hermes Agent config.yaml MCP config:

mcp_servers:
  vessel:
    url: "http://127.0.0.1:3100/mcp"
    headers:
      Authorization: "Bearer <token from ~/.config/vessel/mcp-auth.json>"
    timeout: 180
    connect_timeout: 30

Configuration

The installer writes three snippets to:

It also installs a helper command:

vessel-browser-mcp

Helper examples:

# Run as stdio-to-HTTP proxy (for MCP client integration)
vessel-browser-mcp --stdio

# Recommended stdio MCP snippet
vessel-browser-mcp

# Generic JSON snippet with Authorization header
vessel-browser-mcp --format json

# Hermes-ready YAML snippet with Authorization header
vessel-browser-mcp --format hermes

# Raw MCP endpoint URL
vessel-browser-mcp --format url

# Raw MCP bearer token
vessel-browser-mcp --format token

Source install update helpers:

# Check whether a source-install update is available
vessel-browser-update --check

# Fetch, rebuild, and update the local source install
vessel-browser-update

Status helper:

# Human-readable local install + MCP status
vessel-browser-status

# Machine-readable status for harnesses
vessel-browser-status --json

Smart launch helper:

# Launch Vessel using the best available local install
vessel-browser-launch

# Show the chosen launch path without starting anything
vessel-browser-launch --dry-run

vessel-browser-launch prefers a healthy source install and falls back to the newest local AppImage when the source install is likely blocked by Electron sandbox permissions.

Keyboard Shortcuts

Shortcut Action
Ctrl+L AI Command Bar
Ctrl+Shift+L Toggle AI Sidebar
Ctrl+Shift+F Toggle Focus Mode
F12 Toggle Dev Tools Panel
Ctrl+T New Tab
Ctrl+W Close Tab
Ctrl+, Settings

Project Structure

src/
β”œβ”€β”€ main/                 # Electron main process
β”‚   β”œβ”€β”€ ai/               # Agent tools, query flow, and AI provider implementations
β”‚   β”œβ”€β”€ tabs/             # Tab + TabManager (WebContentsView)
β”‚   β”œβ”€β”€ agent/            # Agent runtime, checkpoints, supervision, flow tracking
β”‚   β”œβ”€β”€ content/          # Readability extraction, reader mode, screenshot
β”‚   β”œβ”€β”€ config/           # Settings persistence
β”‚   β”œβ”€β”€ ipc/              # IPC handler registry
β”‚   β”œβ”€β”€ vault/            # Agent Credential Vault (encrypted storage, consent, audit)
β”‚   β”œβ”€β”€ mcp/              # MCP server for external agent control
β”‚   β”œβ”€β”€ devtools/         # CDP session management for Dev Tools panel
β”‚   β”œβ”€β”€ highlights/       # Page highlight capture, injection, and persistence
β”‚   β”œβ”€β”€ health/           # Runtime health monitoring (MCP, settings, ports)
β”‚   β”œβ”€β”€ premium/          # Subscription management, feature gating, Stripe integration
β”‚   β”œβ”€β”€ bookmarks/        # Bookmark and folder persistence
β”‚   β”œβ”€β”€ history/          # Browse history
β”‚   β”œβ”€β”€ memory/           # Obsidian vault hooks
β”‚   β”œβ”€β”€ network/          # Ad blocking, URL safety, link validation, downloads
β”‚   β”œβ”€β”€ sessions/         # Named session save/load/delete
β”‚   β”œβ”€β”€ startup/          # App initialization, menu, shortcuts, renderer bootstrap
β”‚   β”œβ”€β”€ telemetry/        # PostHog analytics (opt-in)
β”‚   β”œβ”€β”€ tools/            # Tool definitions, input coercion, pruning
β”‚   β”œβ”€β”€ window.ts         # Window layout manager
β”‚   └── index.ts          # App entry point
β”œβ”€β”€ preload/              # contextBridge scripts
β”‚   β”œβ”€β”€ index.ts          # Chrome UI preload
β”‚   └── content-script.ts # Web page preload (readability)
β”œβ”€β”€ renderer/             # SolidJS browser UI
β”‚   └── src/
β”‚       β”œβ”€β”€ components/
β”‚       β”‚   β”œβ”€β”€ chrome/   # TitleBar, TabBar, AddressBar, AgentTranscriptDock
β”‚       β”‚   β”œβ”€β”€ ai/       # CommandBar, Sidebar (Supervisor/Bookmarks/Checkpoints/Chat/Automate)
β”‚       β”‚   β”œβ”€β”€ devtools/ # DevTools panel (Console, Network, Activity)
β”‚       β”‚   └── shared/   # Settings panel
β”‚       β”œβ”€β”€ stores/       # SolidJS signal stores (tabs, ai, ui, runtime, bookmarks, etc.)
β”‚       β”œβ”€β”€ styles/       # Theme, global CSS
β”‚       └── lib/          # Keybindings, markdown, automation kits registry
└── shared/               # Types + IPC channel constants

Design Principles

License

MIT

Developed by Tyler Williams in Portland, Oregon (2026)