Vane:一款开源原生 Mac 浏览器
Show HN: Vane – An open-source native Mac browser
Vane 是一款用 Swift、SwiftUI、AppKit 和 WebKit 构建的开源原生 macOS 浏览器,由 WKWebView 渲染页面,并加入侧边栏标签、Spaces、配置文件、阅读工具等浏览器控制功能,要求 macOS 26 或更高版本。
Vane 是一款原生 macOS 浏览器,使用 Swift、SwiftUI、AppKit 和 WebKit 构建。Apple 的 WKWebView 负责渲染页面;Vane 在其周围添加了侧边栏标签页、Spaces、配置文件、阅读工具和浏览器控制功能。
需要 macOS 26 或更高版本。 Vane 正在积极开发中。在将其作为唯一浏览器依赖之前,请阅读限制说明。
下载并安装
- 打开最新的 GitHub 发布版本,并阅读其说明和已知问题。
- 下载
Vane.dmg,打开它,然后将 Vane 拖入 Applications。 - 从 Applications 打开 Vane。首次运行的欢迎界面可跳过。
已发布的版本通过签名和公证工作流构建。这并不代表与每个网站兼容,也不代表完整的全新 Mac 安装/升级覆盖。请参阅发布验证。
使用 Vane → 检查更新… 手动检查。更新程序提供稳定版本;包含连字符的标签为预发布版本,不会提供。合并到 main 不会发布版本。
使用 Developer ID 打包的稳定版本会提供一次默认浏览器提示。本地、调试和预发布版本会跳过此提示。手动 将 Vane 设为默认… 操作仍可在设置中使用。
构建并运行
使用 macOS 26 或更高版本以及 Xcode 26 或更高版本及其包含的 Swift 工具链。从检出目录:
git clone https://github.com/notnaki/vane.git
cd vane
./make-app.sh
open Vane.appmake-app.sh 构建发布可执行文件,组装应用及其辅助程序,添加资源和图标,并为本地开发对包进行临时签名。使用 ./make-app.sh debug 可获得更快的开发构建。
要构建可执行文件并运行不需要 Keychain 或窗口服务器的检查:
swift build -c release ./.build/release/vane selfcheck --pure
使用组装好的应用以获得捆绑图标和原生沙盒/签名行为。Vane 管理的位置决策需要 Xcode 27 加 macOS 27;最低运行时仍为 macOS 26。有关测试和分发,请参阅开发设置和发布流程。
功能概览
| 领域 | 已实现内容 |
|---|---|
| 浏览 | 侧边栏标签页、收藏夹、固定标签页、文件夹、多窗口、隐私窗口、分屏视图、Peek 和 Little Vane。 |
| 组织 | Spaces、可复用的 Space 模板、带审查/撤销的 Tidy Tabs、批量标签页整理、书签、历史搜索和资料库。 |
| 阅读 | 阅读器偏好设置、离线文章队列、页面内查找和页面捕获。 |
| 媒体 | 自定义画中画、最小化侧边栏播放器,以及带原生 PiP 回退的嵌入式播放器控制。 |
| 视觉工具 | 带笔记、绘图、捕获、实时网页视图以及可编辑 JSON 或 PNG 导出的 Easels;针对每个网站的样式、Zap 和可选脚本的 Boosts。 |
| 数据 | 独立配置文件、本地 Keychain 密码和账户选择器、浏览器导入、导出、完整资料库备份和本地恢复点。 |
| 控制 | 自定义搜索引擎和网站搜索快捷方式、键盘绑定、主题、应用图标、电池节能模式和网站控制。 |
| 集成 | 未打包的 WebExtensions、EasyList 子集拦截和 HTTPS 订阅、GitHub Live Folders,以及使用你自己密钥的可选 AI 提供商。 |
“已实现”描述的是可用行为。验证范围限于每次审计中记录的修订版本、macOS 版本、签名以及测试夹具或服务。这并不保证一般网站或扩展的兼容性。
开始浏览
- ⌘T 打开新标签页搜索;⌘L 打开地址栏。
- ⇧⌘T 重新打开已关闭的标签页;⌘F 在页面上查找文本。
- ⇧⌘L 打开资料库;⌘Y 打开历史记录。
- 点击 Space 按钮或在侧边栏上水平滑动即可切换 Space。
- 使用 F6 / ⇧F6 在页面和浏览器控件之间移动。
快捷键可在设置中更改;菜单栏会显示当前绑定。 日常浏览介绍了标签页组织、共享窗口、 站点搜索、键盘导航、下载和媒体。
截图说明描述了隔离的演示截图。
文档
文档索引是指南、 故障排除、专项审计和记录验证的起点。
| 指南 | 涵盖 |
|---|---|
| 日常浏览 | 标签页、Space、窗口、搜索、快捷键、资源库、下载和媒体。 |
| 阅读与自定义 | 阅读器、离线文章、Easels、捕获、Boosts、模板、外观和电池节能模式。 |
| 配置文件、数据与隐私 | 密码、导入/导出、网站数据、备份、文件夹锁定和恢复边界。 |
| 扩展与集成 | 扩展授权/诊断、内容拦截、权限、AI 密钥和 GitHub Live Folders。 |
| 开发 | 设置、CLI、聚焦测试、图形化冒烟检查、项目结构和贡献流程。 |
| 发布与分发 | 发布、签名/公证、更新程序检查和候选版本验证。 |
网站现场指南提供了 可视化介绍。上述 Markdown 指南包含详细的当前控件 和注意事项;网站保持其现有布局和导航。
限制
Vane 使用系统 WebKit 引擎。支持情况取决于已安装的 macOS 和 WebKit 版本、网站,有时还取决于签名或 Apple 管理的功能。
- 兼容性并不完整。限定范围的 macOS 27 公开演示和本地测试夹具 通过并不能确立提供商登录、订阅流媒体、跨网络 调用、所有硬件权限或最低 macOS/公证候选版本的覆盖。 请参阅兼容性矩阵。
- 通行密钥待定,需等待 Apple 托管浏览器授权批准、匹配 配置文件以及注册/登录验证。仅靠 Developer ID 是不够的。
- 在 macOS 27.0.x 上文件夹上传被阻止,因为一个独立的 WebKit 探针 在提交前复现了防护故障。普通文件仍可使用; 其他版本上的目录提交尚未验证。请参阅矩阵中的 目录调查。
- 密码和扩展存在兼容性限制。自动填充是启发式的; 支持未打包的 MV2/MV3 并不保证支持 Chrome 应用商店或任意 API。
- 拦截支持 EasyList 的一部分。不支持的规则会被报告;本地 磁盘列表不会自动更新。URL 订阅会更新。
- 数据不会在 Mac 之间同步。备份未加密,且不包含钥匙串 机密、Cookie/站点存储、已下载文件和外部扩展代码。 常规浏览器导入不包含会话;专用的 Arc 流程支持部分会话。
- 实时草稿不是可恢复的备份。暂停会保护检测到或 不确定的草稿,但崩溃、页面关闭或锁定可能会丢失易失性工作。 草稿保护和 崩溃恢复 描述了哪些内容会被保留,哪些无法恢复。
- 权限与可靠性仍然受限。 嵌入式设备请求会失败关闭;位置控制需要 Xcode/macOS 27;屏幕共享仍由 WebKit/macOS 管理。恢复、物理存储故障以及所有导航失败均无法通过合成检查保证。
- 部分功能使用私有 WebKit API,包括检查器集成和受保护的页面关闭回退,这些可能随 macOS 版本变化。
详细证据见 审计索引。 浏览器就绪状态 将已完成的工作与剩余的验证和工程任务区分开来。分发声明仍需要真实的公证候选版本以及干净的 Mac 安装/升级检查。
贡献
遵循 AGENTS.md 进行隔离分支、相关验证、独立 PR 审查、必需的 CI 和压缩合并。对受影响的行为使用有针对性的本地检查;文档更改不需要完整的应用测试套件。
在 问题跟踪器 中报告问题时,请附上 macOS 版本、Vane 版本、复现步骤和预期行为。避免在报告中包含密码、令牌、个人浏览数据或私人文档。
许可证
Vane 在 MIT 许可证下发布。参见 LICENSE。 捆绑字体的署名和许可证位于 Sources/Vane/EaselFonts。
来源:Hacker News · github.com
