关于 Vessel Browser
Vessel 是一款内置 AI 助手的网页浏览器,面向需要在真实浏览器窗口中观察并监督 AI 操作的用户。它允许用户批准敏感操作、随时接管,并通过持久会话和检查点保留长时间任务的进度。
主要功能
- 01侧边栏 AI 助手与真实浏览器窗口
- 02审批策略(单次、按运行、按域名)
- 03持久对话线程与运行收件箱
- 04检查点、命名会话与操作撤销
- 05页面结构推断与变更对比
- 06可自托管的 MCP 客户端接入
适用场景
- 01监督 AI 在网页上完成调研与表单填写
- 02中断后恢复长时间的浏览任务
- 03对比页面内容变化并追踪更新
MCP 相关
Vessel 可作为 MCP 客户端连接外部 Agent 与工具,外部 MCP 客户端也能调用其浏览器工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Vessel 是一款简洁、清爽的网页浏览器,内置 AI 助手。你可以像往常一样浏览网页,然后让 Vessel 帮你研究内容、浏览页面、总结所读内容、填写表单,或跟进较长的任务。
与不可见的浏览器自动化不同,Vessel 会在真实的浏览器窗口中展示 AI 的操作。你可以跟进过程、批准重要操作、暂停或调整工作方向,并随时接手。
- 熟悉的浏览器,随手可用的 AI 帮助 — 提供标签页、书签、阅读模式、下载功能,以及用于处理网页任务的侧边栏助手
- 适合较长时间的浏览任务 — 持久保存的对话线程、跨来源的运行收件箱、命名会话、检查点、笔记、书签和页面变更,让中断的工作也能恢复
- 由你掌控 — 查看 AI 的操作,针对单次操作或指定运行/域名批准敏感操作,拒绝并引导操作方向,撤销近期更改,并随时切回手动浏览
- 开源且可扩展 — 基于 Chromium 构建;需要时,可为 MCP 客户端和 Agent 工具提供高级自动化支持
目前 Linux 是最成熟的安装平台。macOS 版本可从源代码打包。
Vessel 正在积极开发中。请将其视为早期软件,尤其是在进行敏感浏览或访问账户时。
https://github.com/user-attachments/assets/0a72b48a-873a-4eb0-b8f2-23e34d8472c4
快速开始
想从第一天起就使用完整的 AI 工具套件?开始 7 天免费试用 Vessel Premium — 每月 $5.99。
当前最快的安装方式
从 GitHub Releases 获取 Linux AppImage:
- 下载最新的
Vessel-<version>-x64.AppImage - 将其标记为可执行文件:
chmod +x Vessel-*.AppImage - 启动它:
./Vessel-*.AppImage - 打开设置(
Ctrl+,),选择你的 AI 提供商并查看高级连接选项
通过 npm 安装
npm install -g @quanta-intellect/vessel-browser
vessel-browser
或者无需安装,直接运行:
npx @quanta-intellect/vessel-browser
从源代码安装
curl -fsSL https://raw.githubusercontent.com/unmodeled-tyler/vessel-browser/main/scripts/install.sh | bash
从源代码进行开发
Vessel 开发使用 Node.js 22。如果你使用 fnm,请在仓库根目录运行 fnm use,以使用 .node-version 中指定的版本。
fnm use
npm install
npm run dev
如果你希望在开发过程中进行额外的本地 AI 跟踪,可创建可选的 src/main/telemetry/trace-logger.local.cjs 文件。Vessel 仅会在本地开发构建中加载该文件,打包后的生产构建会忽略它。
为什么选择 Vessel?
大多数 AI 工具都能回答有关网络的问题。Vessel 则是为了真正地在网络上开展工作:阅读页面、访问链接、比较信息、填写表单、跟踪更改,并整理较长的浏览会话。
Vessel 会让整个过程清晰可见。AI 使用真正的浏览器,因此你可以看到它打开的页面、做出的选择,以及需要你批准的地方。你无需盯着隐藏的自动化流程运行,也不必事后猜测发生了什么。
对于高级用户和开发者,同一套基础架构也支持外部 Agent、MCP 客户端、持久会话、检查点和浏览器自动化工作流。
功能
- AI 辅助浏览 — 请 Vessel 协助进行研究、阅读页面、导航、填写表单和处理多步骤网页任务
- 人类可见的浏览器界面 — 页面以普通浏览器的方式呈现,让 AI 活动清晰可见,而不是隐藏在不可见的运行过程中
- 命令栏(
Ctrl+L)— 面向由 harness 驱动的工作流及未来运行时命令的辅助操作界面 - 监督侧边栏(
Ctrl+Shift+L)— 通过十个标签页进行实时监督,包括持久化运行收件箱、对话线程、审批、检查点、变更和研究 - 聊天助手 — 内置于侧边栏「聊天」标签页的对话式 AI;支持 Anthropic、OpenAI、Ollama、llama.cpp、Mistral、xAI、Google Gemini、OpenRouter 和任何兼容 OpenAI 的端点;自动读取当前页面;可完整使用外部 Agent 使用的同一组浏览器工具;保留多轮会话历史;可在设置中配置提供商、模型和 API 密钥
- 技能(高级版)— 侧边栏「技能」标签页中的可复用浏览器技能;导入、查看、运行或删除内置 Agent 可用于研究、购物和特定网站工作流的技能
- 研究工作台(测试版)— 用于生成结构化研究报告的专用侧边栏「研究」标签页;从主题开始,完成标签页内的简报,让 Vessel 起草研究目标,批准计划,然后调度浏览器子 Agent 收集有来源依据的论点,并综合生成可导出为 Markdown 的报告。填写简报免费;批准计划、运行子 Agent 和导出报告需要 Vessel 高级版。
- 开发者工具面板(
F12)— 在窗口底部的可调整大小面板中检查控制台输出、网络请求和 MCP/Agent 活动;按类别和日期范围将日志导出为 JSON - 适合长时间运行的浏览器基础功能 — 固定标签页会紧凑地显示在标签栏前端,并受到保护,不会被意外关闭;标签页组可设置颜色并折叠;有声标签页会显示音频指示器和静音控件;使用
Ctrl+N打开其他浏览器窗口;使用Ctrl+P打印当前页面,或使用Ctrl+Shift+P直接将其保存为 PDF - 操作撤销/回滚 — 将浏览器恢复到上一次成功的、会修改状态的 Agent 操作之前所捕获的会话快照;可在「监督」标签页中使用,也可通过
undo_last_action工具调用 - 持久化运行收件箱 — 聊天、MCP、计划任务和研究工作共用一个持久化生命周期,支持状态筛选、父子研究运行、已删减的输入、输出、错误和标签页上下文
- 持久化对话线程 — 在命名线程中将多个独立聊天分组;每次聊天首次完成交互后,系统会生成 AI 标题,之后可重新打开或修改标题;线程可重命名、归档或删除;已归档线程遵循配置的历史保留期限
- 范围限定的审批策略 — 批准一次、批准当前运行、批准某个域名,或拒绝并引导;明确拒绝的优先级高于其他规则,过期的范围限定规则会被忽略
- 对 Agent 有意义的书签 — 书签带有 Agent 可读取和使用的结构化上下文:
intent(页面用途)、expectedContent(预期页面内容)、keyFields(重要表单字段)、agentHints(任意指令)和已存储的pageSchema;用户可直接在「书签」标签页中创建和编辑这些元数据,所有字段均可搜索 - 可移植书签导出 — 导出浏览器兼容的 Netscape HTML,以便导入 Chrome、Firefox、Safari、Edge、Brave 和其他浏览器;可选择包含 Vessel 备注/Agent 元数据,或导出完整保真度的 Vessel JSON 归档
- 页面架构推断 — Vessel 自动为每个页面推断类型化架构:
pageType(article、product、form、search、checkout、login、dashboard)、primaryEntity(商品和文章的结构化字段)、formFields(包含名称、类型、标签、选择器)和actionButtons(推断的意图:submit、addToCart、login 等);架构会附加到每个内容提取结果中 - 供 Agent 使用的书签 — 将页面保存到文件夹,为文件夹添加单行摘要,并通过 MCP 搜索书签,而不必导出整个书签库
- 命名会话持久化 — 将 Cookie、localStorage 和当前标签页布局以可复用的名称保存,然后在重启后重新加载
- 带注释的检查点 — 捕获并恢复短期浏览器恢复点,并为其命名和编辑备注,让人类和 Agent 能在高风险流程前标记检查点的重要原因
- 页面高亮 — Agent 可在任意页面上用带标签和颜色编码的标记高亮文本或元素;标记会在导航后保留;侧边栏会显示高亮数量和导航控件;可手动清除或通过工具调用清除
- Agent 对话记录浮窗 — 锚定在浏览器框架上的浮动对话记录叠加层;可在设置中配置显示模式(关闭、摘要、完整);显示 Agent 的实时思考过程和状态更新,不占用侧边栏空间
- 工作流流程跟踪 — Agent 可在运行时通过
flow_start声明具名多步骤工作流;进度通过flow_advance逐步跟踪,并在执行过程中显示在侧边栏中 - 结构化页面可见性上下文 — 提取结果可报告视口内的元素、被遮挡的控件、活动叠加层,以及休眠的同意提示/模态界面
- 弹窗恢复工具 — Agent 可主动关闭常见弹窗、新闻邮件拦截页和同意提示墙,而不必盲目尝试通用点击
- 表单自动填充配置文件 — 在设置中保存可复用的个人或工作配置文件,并在当前页面填写常见的联系人、地址和组织字段;Vessel 会根据标签、名称、占位符和自动完成提示匹配字段
- 页面差异/“发生了什么变化?” — Vessel 会记住页面的上一个快照,并在之后访问时检测到标题、标题栏或主要内容有变化时,在地址栏中显示
Changed标记;展开后可查看自上次快照以来变化内容的简短摘要 - 变化时间线(高级版)— 侧边栏「变更」标签页会保存各页面近期变化的历史,显示检测到每次更新的时间以及变化内容的简短摘要
- 逐标签页广告拦截控制 — 默认对标签页启用广告拦截,但 Agent 可在页面运行异常时选择性地关闭和重新启用拦截
- 域名策略 — 在设置中全局设置域名允许列表或阻止列表;Agent 无法导航到被阻止的域名
- Agent 凭据保管库(高级版)— 为 Agent 驱动的登录加密存储凭据;凭据通过“盲填”方式直接填入登录表单,绝不会发送给 AI 提供商;每次使用前都会显示用户同意对话框;支持 TOTP 双重身份验证;按域名限定访问范围;采用仅追加的审计日志
- 屏幕截图与视觉分析(高级版)— 拍摄整页截图并将图像直接交给 AI 进行视觉布局分析;适用于在文本提取无法处理复杂页面或画布渲染页面时使用
- Obsidian 记忆钩子(高级版)— 可选的知识库路径,用于保存 Agent 撰写的 Markdown 笔记、页面截图和研究线索
- 运行时健康检查 — 在启动时警告 MCP 端口冲突、设置无法读取以及用户数据写入失败
- 阅读模式 — 将文章内容提取到简洁、无干扰的视图中;可通过地址栏开启和关闭
- 专注模式(
Ctrl+Shift+F)— 隐藏所有浏览器框架元素,让内容铺满屏幕 - 可调整大小的面板 — 拖动侧边栏边缘即可调整大小;宽度会在会话之间保留
- 极简深色主题 — 温暖的深灰色、克制的强调色,不使用纯黑或纯白
可靠性、历史记录与审批
Supervisor 侧边栏如今能让 Chat、外部 MCP Agent、计划任务和 Research 中的长时间运行工作更易于了解:
- 打开 Runs,按需要关注、进行中、失败、已完成或任意来源筛选工作。每个运行记录都有按时间顺序排列的时间线,展示状态变更、审批、输出、错误和相关标签页上下文;记录可导出为 Markdown 或 JSON,也可从 Vessel 中删除。
- 打开 Threads,将多个聊天整理到一个命名主题下。聊天可以单独重新打开或重命名,而其父级话题可以重命名、归档或删除。新聊天在首次对话完成后会获得自动生成的标题。
- 审批卡片会显示操作、已脱敏的参数、域名以及是否可撤销。你可以批准一次、批准当前运行或域名内匹配的工作、拒绝,或通过书面指引拒绝。已保存的限定范围规则会在 Supervisor 中持续显示,也可在那里移除。
- 如果 Vessel 在运行进行中或等待审批时关闭,下次启动时该运行会标记为 已中断,而不会误导性地显示为仍在运行。Vessel 不会声称能自动恢复或重试未完成的执行。
- 已结束的运行历史记录和已归档的话题遵循
historyRetentionDays(默认为90天;支持的值为7、30、90、180、365,或表示不自动过期的null)。进行中的运行和未归档的话题会保留。
如果加密功能可用,对话历史记录会通过 Electron 的 safeStorage API 加密。如果安全存储不可用,Vessel 会在该会话期间将对话保存在内存中,而不是以明文形式写入聊天历史记录。运行记录会对敏感参数字段进行脱敏,并在持久化或导出前限制存储的输出大小。
定位
大多数浏览器都将自动化视为次要功能,并假定人类是主要操作者。Vessel 则恰恰相反:它是面向 Agent 的浏览器,并提供可视化界面,让人类能够参与其中。
这意味着产品应优先优化:
- 在任务和会话之间持久保留浏览器状态
- 清晰展示 Agent 当前正在执行的操作
- 通过轻量级人工干预,而非持续手动操作来控制浏览器
- 提供可供 Hermes Agent 或 OpenClaw 风格的运行框架等长期运行的 Agent 系统使用的浏览器运行时
技术栈
| 层级 | 技术 |
|---|---|
| 引擎 | Chromium(Electron 40) |
| UI 框架 | SolidJS |
| 语言 | TypeScript |
| 构建 | electron-vite + Vite |
| AI 控制 | 外部 Agent 运行框架(Hermes Agent、OpenClaw、MCP 客户端)+ 内置聊天(Anthropic、OpenAI、Ollama、llama.cpp 及任何兼容 OAI 的端点) |
| 内容提取 | @mozilla/readability |
架构
Main Process Renderer (SolidJS)
├── TabManager (WebContentsView[]) ├── TabBar, AddressBar
├── AgentRuntime (session + supervision) ├── CommandBar (secondary surface)
├── Run, conversation, and policy managers ├── AI Sidebar (Supervisor/Runs/Threads/Chat/...)
├── MCP server for external agents ├── DevTools Panel (Console/Network/Activity)
├── AI providers (Anthropic + OAI-compatible) ├── Agent Transcript Dock
├── Bookmarks, checkpoints, and page history └── Signal stores (runtime/runs/conversations/policies/...)
└── IPC handlers ◄──contextBridge──► Preload API
每个浏览器标签页都是一个独立的 WebContentsView,由主进程管理。浏览器框架(SolidJS)运行在单独的视图中,并叠加在其上。渲染进程与主进程之间的所有通信都通过 contextBridge 使用类型化 IPC 通道进行。
侧边栏的 Skills 标签页完全在渲染进程中呈现技能表单,并通过与 Chat 标签页相同的 query() 路径,将呈现的提示词传递给内置 Agent,无需额外的 IPC 接口。Changes 标签页通过 IPC 读取当前页面的差异时间线,并为 Premium 用户解锁持久化历史记录。Research 标签页为其状态机提供了专用 IPC 接口:所有用户均可使用简报功能,而目标审批、并行浏览器子 Agent、报告综合和 Markdown 导出功能在测试期间仅限 Premium 用户使用。
开始使用
安装程序会:
- 将 Vessel 克隆或更新到
~/.local/share/vessel-browser - 安装依赖并构建应用
- 在
~/.local/bin中创建vessel-browser启动器 - 在
~/.local/bin中创建vessel-browser-launch辅助程序 - 在
~/.local/bin中创建vessel-browser-update辅助程序 - 在
~/.local/bin中创建vessel-browser-status辅助程序 - 为 Linux 应用启动器创建桌面条目
- 写入
~/.config/vessel/vessel-settings.json,其中 MCP 端口为3100 - 写入
~/.config/vessel/mcp-stdio-snippet.json - 写入
~/.config/vessel/mcp-http-snippet.json - 安装
vessel-browser-mcp辅助程序,该程序可作为 stdio-to-HTTP 代理运行(--stdio),或打印配置片段 - 打印建议使用的准确 stdio MCP 片段,可将其粘贴到你的运行环境配置中
打包的 AppImage:
- 无需本地 Node/Electron 工具链
- 使用打包的 Vessel 应用图标和元数据
- 推荐给只想运行 Vessel 的早期用户
Windows 打包版本:
- 使用
Vessel-<version>-x64-setup.exeNSIS 安装程序 - 升级时可覆盖现有 Vessel 安装
- 在正常升级过程中保留 Vessel 应用数据
安装较新的 Windows 版本前,无需卸载 Vessel。仅当你要修复损坏的安装或有意删除本地 Vessel 数据时,才需要先卸载。
安装后:
vessel-browser
# Use the pinned Node.js 22 runtime
fnm use
# 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 universal macOS app bundle (run on macOS)
npm run dist:mac:dir
# Package universal macOS DMG + ZIP artifacts (run on macOS)
npm run dist:mac
# Verify a universal macOS build contains Intel and Apple Silicon slices
npm run verify:mac:universal
# Package signed macOS DMG + ZIP artifacts (run on macOS with signing set up)
npm run dist:mac:signed
注意:
npm run dev仍会启动原版 Electron 二进制文件,因此 Linux 在开发过程中可能继续显示默认的 Electron 齿轮图标- 使用
npm run dist/npm run dist:dir创建的打包版本会使用 Vessel 应用图标 npm run build:icon:mac会根据resources/vessel-icon.png重新生成resources/vessel-icon.icns,用于 macOS 打包- 默认情况下,
npm run dist:mac和npm run dist:mac:dir会构建通用 macOS 产物,因此同一应用可在 Intel 和 Apple Silicon Mac 上原生运行 - 如果需要体积更小、面向特定架构的测试产物,可使用
npm run dist:mac:x64和npm run dist:mac:arm64 npm run verify:mac:universal使用lipo确认打包后的应用可执行文件和 Electron 框架都包含x86_64和arm64切片npm run dist:mac、npm run dist:mac:dir、npm run dist:mac:x64和npm run dist:mac:arm64会有意禁用自动签名,因此无需配置钥匙串即可在任何 Mac 上进行本地打包npm run dist:mac:signed和npm run dist:mac:dir:signed会构建通用产物,并使用electron-builder的常规签名发现机制;如果你的登录钥匙串中有重复的 Apple 证书,请清理重复证书,或在运行签名流程前使用专用钥匙串- 此仓库开箱即用时仍不会对签名构建进行公证,因此在为发布添加公证之前,Gatekeeper 警告会一直存在
- 纳入版本控制的冒烟测试会运行类型检查、构建、MCP stdio 代理回归检查和 Electron 导航回归测试框架
- 对于无头 CI,请在
xvfb-run -a npm run smoke:test下运行冒烟测试 - 运行
npm run test:navigation-regression可执行独立的导航测试套件;它会构建新的测试和 preload 包、打开聚焦的测试窗口,并使用临时配置文件和回环服务器 - 导航运行器要求生成完整套件报告且退出码为零,三分钟后超时,并会在正常完成或失败时删除临时文件
为 Hermes Agent 或 OpenClaw 设置 Vessel
Vessel 的设计用途是充当浏览器运行时,由外部 Agent 框架驱动。
- 启动 Vessel
- 打开设置(
Ctrl+,),确认 MCP 状态、复制端点或更改 MCP 端口 - 可选:设置 Obsidian 知识库路径、创建自动填充配置文件,或调整会话偏好
- 启动 Hermes Agent 或 OpenClaw,并将其连接到 Vessel——最简单的方法是将
vessel-browser-mcp --stdio用作 MCP 命令(会自动解析身份验证信息),也可以使用~/.config/vessel/mcp-auth.json中的 bearer token,直接连接到http://127.0.0.1:<mcpPort>/mcp - 在框架运行期间,使用 Vessel 侧边栏中的 Supervisor 面板暂停 Agent、更改审批模式、查看待处理的审批、创建检查点、撤销上一次修改操作,或恢复浏览器会话
- 打开 Runs 查看或导出来自 Chat、MCP、计划任务和 Research 的活动;使用 Threads 重新打开并整理持久对话
- 使用 Bookmarks 面板将已保存的页面整理到文件夹中、编辑面向 Agent 的书签元数据、导出书签供其他浏览器使用,并通过 MCP 向 Agent 提供已保存的页面
注意:
- Vessel 通过本地 MCP 服务向外部 Agent 提供浏览器控制
- MCP 端点支持旧版客户端和现代
2026-07-28协议修订版,包括server/discover - 默认 MCP 端口为
3100 - Hermes Agent 和 OpenClaw 应将 Vessel 视为持久且对用户可见的浏览器,而不是启动各自独立的浏览器会话
- Vessel 内置可配置 AI 提供商的 Chat 标签页;打开设置(
Ctrl+,)并启用 Chat Assistant,即可设置提供商和模型 - 侧边栏中的 Research 标签页标记为 Beta;可用它将宽泛的研究主题整理成简报、审批多线程计划、运行浏览器子 Agent,并将最终报告导出为 markdown。简报免费;完整执行和导出需要 Premium。
- 设置中的
llama.cpp (Local)是一等 Chat 提供商,默认使用http://localhost:8080/v1;Vessel 会自动从llama-server获取当前活动模型 - 对于
llama-server,建议使用至少--ctx-size 16384,推荐使用32768,以确保 Vessel Agent 循环稳定运行;随着提示词、工具架构和工具历史不断累积,较低的值往往会导致失败 - 审批策略可在侧边栏 Supervisor 面板中实时控制,而不是通过独立的全局设置界面控制
- 设置现在会显示 MCP 运行时状态、活动端点、启动警告,并允许更改 MCP 端口且立即重启服务
- 设置还包含可重复使用的 Form Autofill 配置文件,可在当前页面上一键填写常见的联系人和地址表单
- 当 Vessel 检测到之前访问过的页面自上次保存快照以来发生了实质性变化时,地址栏也会显示
Changed徽标 - Premium 用户可以打开侧边栏中的 Changes 标签页,查看当前页面完整的 What Changed 时间线
- Bookmarks 标签页可导出与浏览器兼容的 HTML、附带 Vessel 备注的 HTML,或保留完整 Agent 元数据的 Vessel JSON 归档
- 对于有问题的标签页,Agent 可以选择性地关闭广告拦截,重新加载并重试流程,之后再重新开启拦截
- Agent 可以使用命名会话保存已验证身份的状态,例如
github-logged-in,并在之后的运行中重新加载该状态 - 预期的控制平面是由外部框架通过 MCP 驱动 Vessel
- 如果在设置中设置了 Obsidian 知识库路径,框架就可以通过 Vessel memory MCP 工具直接将 markdown 笔记写入该知识库
将 llama.cpp 用作内置 Chat 提供商
Vessel 可以通过兼容 OpenAI 的 API 直接与本地 llama-server 通信。
示例:
llama-server -m /path/to/model.gguf --port 8080 --ctx-size 32768
然后在 Vessel 中:
- 打开设置(
Ctrl+,) - 启用 Chat Assistant
- 选择
llama.cpp (Local)作为提供商 - 如有需要,点击刷新;Vessel 会自动从
http://localhost:8080/v1检测当前活动模型
注意:
--ctx-size 16384是 Vessel Agent 循环的最低实用设置--ctx-size 32768是较长浏览会话的推荐默认设置- 如果 Vessel 检测到
llama-server的上下文大小低于建议下限,或无法检测到运行中的服务的 ctx 大小,会在 Settings 中发出警告
初始记忆工具:
vessel_memory_note_createvessel_memory_appendvessel_memory_listvessel_memory_searchvessel_memory_page_capturevessel_memory_link_bookmark
目前提供的书签和文件夹工具包括:
vessel_bookmark_listvessel_bookmark_searchvessel_bookmark_openvessel_bookmark_savevessel_bookmark_removevessel_create_foldervessel_folder_renamevessel_folder_remove
目前提供的页面交互和恢复工具包括:
vessel_extract_contentvessel_read_pagevessel_scrollvessel_dismiss_popupvessel_set_ad_blockingvessel_wait_forvessel_screenshot(Premium)— 将完整页面截取为图像,供 AI 进行视觉分析undo_last_action— 将浏览器恢复到上一次成功的变更型 Agent 操作之前所捕获的快照
页面高亮工具:
vessel_highlight— 使用带标签的彩色叠加层,在页面上直观标记文本或元素;清除前会一直保留vessel_clear_highlights— 移除当前页面上的所有高亮
工作流跟踪工具:
vessel_flow_start— 开始一个命名的多步骤工作流,并预先声明步骤;执行期间,进度会显示在侧边栏中vessel_flow_advance— 将当前步骤标记为已完成并进入下一步vessel_flow_status— 查看当前工作流进度vessel_flow_end— 清除活动的工作流跟踪器
数据提取工具(Premium):
vessel_extract_table— 将页面表格提取为包含列标题的结构化 JSON 行
目前提供的命名会话工具包括:
vessel_save_sessionvessel_load_sessionvessel_list_sessionsvessel_delete_session
会话文件较为敏感,因为其中可能包含登录 Cookie 和令牌。Vessel 会将这些文件存储在应用用户数据目录中,并设置严格的文件权限。
Agent 凭据保管库工具(Premium):
vessel_vault_status— 检查某个域名是否存在已存储的凭据(返回标签/用户名,不会返回密码)vessel_vault_login— 使用已存储的凭据填写登录表单(盲填——凭据会直接写入页面,不会进入 AI 对话)vessel_vault_totp— 根据已存储的密钥生成并填写 TOTP 双重身份验证代码
会话性能工具(Premium):
vessel_metrics— 显示各工具调用次数、平均耗时、错误率和会话统计总览
保管库安全模型:
- 凭据使用 AES-256-GCM 加密后存储,密钥受操作系统密钥链(Electron safeStorage)保护
- 凭据值绝不会发送给 AI 提供商——它们只会经过主进程传递到内容脚本
- 每次使用凭据时都会触发用户同意对话框(“允许一次”/“允许本次会话”/“拒绝”)
- 所有凭据访问都会记录在只追加的审计日志中
- 凭据按域名限定——只能用于匹配的域名
- 用户可在 Settings > Agent Credential Vault 中管理凭据
值得注意的提取模式包括:
visible_only— 仅包含当前可见、位于视口内且未被遮挡的交互元素,以及活动叠加层results_only— 仅包含可能属于主要搜索结果的链接full/summary/interactives_only/forms_only/text_only
提取结果可以区分:
- 活动的阻挡叠加层
- 存在于 DOM 中、但对当前会话或地区未激活的休眠式同意/模态界面
Stdio 代理 MCP 配置(推荐——自动处理身份验证):
{
"mcpServers": {
"vessel": {
"command": "vessel-browser-mcp",
"args": ["--stdio"]
}
}
}
stdio 代理会在连接时从 ~/.config/vessel/mcp-auth.json 读取 bearer token,并兼容旧版和 2026-07-28 协议协商,因此无需手动管理 token。
MCP 客户端连接时,Vessel 必须已在运行,并且 ~/.config/vessel/mcp-auth.json 必须已在安装时或首次启动时创建。
通用 HTTP MCP 配置(需要手动复制 token):
{
"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 配置:
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
配置
安装程序会将三个配置片段写入:
~/.config/vessel/mcp-stdio-snippet.json~/.config/vessel/mcp-http-snippet.json~/.config/vessel/mcp-hermes-snippet.yaml
它还会安装一个辅助命令:
vessel-browser-mcp
辅助命令示例:
# 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
源码安装更新辅助命令:
# Check whether a source-install update is available
vessel-browser-update --check
# Fetch, rebuild, and update the local source install
vessel-browser-update
状态辅助命令:
# Human-readable local install + MCP status
vessel-browser-status
# Machine-readable status for harnesses
vessel-browser-status --json
智能启动辅助命令:
# Launch Vessel using the best available local install
vessel-browser-launch
# Show the chosen launch path without starting anything
vessel-browser-launch --dry-run
当源码安装可能因 Electron 沙箱权限而无法运行时,vessel-browser-launch 会优先使用运行正常的源码安装,并回退到本地最新的 AppImage。
键盘快捷键
| 快捷键 | 操作 |
|---|---|
Ctrl+L | AI 命令栏 |
Ctrl+Shift+L | 切换 AI 侧边栏 |
Ctrl+Shift+F | 切换专注模式 |
F12 | 切换开发者工具面板 |
Ctrl+N | 新建窗口 |
Ctrl+T | 新建标签页 |
Ctrl+W | 关闭标签页 |
Ctrl+Shift+T | 重新打开已关闭的标签页 |
Ctrl+Shift+N | 新建隐私窗口 |
Ctrl+F | 在页面中查找 |
Ctrl++ / Ctrl+= | 放大 |
Ctrl+- | 缩小 |
Ctrl+0 | 重置缩放 |
Ctrl+P | 打印当前页面 |
Ctrl+Shift+P | 将当前页面保存为 PDF |
Ctrl+, | 设置 |
项目结构
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
│ ├── conversations/ # Secure conversation thread and chat storage
│ ├── runs/ # Durable cross-source run records, timelines, export redaction
│ ├── policy/ # Action classification and scoped approval policies
│ ├── persistence/ # Debounced JSON and secure-storage persistence helpers
│ ├── content/ # Readability extraction, reader mode, screenshot, page snapshots/diff
│ ├── config/ # Settings persistence
│ ├── autofill/ # Autofill profile persistence and form-field matching
│ ├── 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/Runs/Threads/Bookmarks/Checkpoints/Chat/Skills/History/Changes/Research)
│ │ ├── devtools/ # DevTools panel (Console, Network, Activity)
│ │ └── shared/ # Settings panel
│ ├── stores/ # SolidJS stores (runtime, runs, conversations, policies, tabs, AI, etc.)
│ ├── styles/ # Theme, global CSS
│ └── lib/ # Keybindings, markdown, skills registry
└── shared/ # Types + IPC channel constants
设计原则
- Agent 优先 — 浏览器是 Agent 的操作界面,而非仅为人类使用、再额外附加自动化功能的工具
- 人类可见 — UI 应让 Agent 的行为易于观察、审计和引导
- 默认持久化 — 浏览器状态应在长时间运行的工作流和重复会话中保持
- 内容优先 — 浏览器框架仅占 110px,其余空间都留给页面
- 舒适护眼 — 温暖的深灰色、柔和的文本、不含视觉干扰
- 原生适配 Linux — 无边框窗口、系统字体回退、遵循 XDG 规范
许可证
MIT
由 Tyler Williams 于 2026 年在俄勒冈州波特兰开发
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
