简介
Bromure Agentic Coding 是一款 macOS 应用,它基于 Apple 的 Virtualization.framework,在你自己的 Mac 上的硬件虚拟化 Linux 虚拟机内运行 AI 编码代理——Claude Code、Codex CLI、Grok CLI 以及普通的 shell 工具。代理获得一个完整、持久的 Ubuntu 开发环境;你的真实凭据永远不会进入其中。代理向外界发送的一切都要经过唯一的宿主机侧网关,隔离、凭据保护、供应链扫描、提示注入检测和审计追踪全部在此强制执行——这是一道代理无法绕过的边界。
本手册记录的是 Bromure Agentic Coding 4.3.0。可执行文件为 bromure-cli,bundle ID 为 io.bromure.agentic-coding,应用要求在 Apple Silicon 上运行 macOS 14 (Sonoma) 或更高版本。完整的产品详情、截图和下载发布于 bromure.io。
什么是 Bromure Agentic Coding?
现代编码代理功能强大,且在设计上是自主的:它们代表你读取文件、运行 shell 命令、安装软件包并调用 API。若直接在你的 Mac 上运行代理,它会继承你 shell 拥有的一切——你的 SSH 密钥、你的 ~/.aws 凭据、你的 kubeconfig、你的 API 令牌。一个恶意依赖或一个被提示注入的网页,就与它们仅有一步之遥。
Bromure Agentic Coding 改变了这场交易的条件。你创建的每个工作区都拥有自己的持久 Linux 虚拟机——自己的内核、磁盘、MAC 地址和网络命名空间。代理在虚拟机内以持久状态运行(克隆的仓库、软件包缓存、虚拟环境、shell 历史),因此它就像一台普通的开发机器。但该环境只包含有意设置为无效的伪凭据;真实值以加密形式存放在宿主机上,并在你同意后按目的地在传输时注入。
启动应用时,你会进入工作区浏览器——即下图所示的主窗口。侧边栏在 工作区 下列出你的工作区(顶部有 网格 概览,下方有 自动化 区段),每个工作区都显示一个状态标记:已关闭、已挂起 或 运行中。选中某个工作区会显示其详情窗格:CPU、内存、vCPU、磁盘和运行时长的卡片、一份配置摘要(工作区使用哪个代理和凭据模式、是否启用护栏和提示注入扫描、以及共享了哪些文件夹),以及用于启动其虚拟机的 启动 按钮。
在截图中,工作区 "Codex Sandbox" 处于关闭状态:资源卡片显示它将以何种配额启动(8 GB 内存、4 个 vCPU),配置区段显示 Claude Code 以云端模式配置并使用 API 令牌、护栏和提示注入扫描均关闭、且无共享文件夹。点击 启动 即可引导虚拟机;随后同一窗格会显示实时的 CPU、磁盘和运行时长数据。
它面向谁
Bromure Agentic Coding 为三类相互重叠的受众打造:
- 个人开发者,他们希望用真实凭据运行编码代理——Anthropic、OpenAI、AWS、Kubernetes、GitHub——而不必将这些凭据交给代理本身。你既能享受一个可以部署、推送和配置资源的代理带来的便利,又能确保被攻陷的会话泄露的只是诱饵。
- 注重安全的团队,他们希望每一次代理操作都可观测:调用了哪个模型、运行了哪些工具、触碰了哪些文件、执行了哪些命令、使用了哪些凭据以及用在何处。加密的本地追踪能在事后回答"代理究竟做了什么?"。
- 平台与安全工程团队,其所在组织需要设备群范围的策略:已注册的安装会将会话元数据流式传输到组织的工作区,凭据可以发放给应用而非开发者的 shell,注销一台机器只需在控制平面执行一个操作。参见 企业版。
你不必是虚拟化专家。应用会在首次启动时下载一个预构建的、已签名的基础镜像,在后台引导虚拟机,并通过原生 macOS 界面呈现一切。只要你会用终端,就能使用 Bromure Agentic Coding。
两款姊妹应用
Bromure Agentic Coding 与其姊妹应用 Bromure(网页浏览器变体,有时称为 Bromure Web)来自同一个开源仓库。两者都基于 Apple 的 Virtualization.framework,共享相同的虚拟机和镜像机制,但它们在虚拟机生命周期上采取了相反的立场:
| Bromure (Web) | Bromure Agentic Coding | |
|---|---|---|
| 用途 | 一次性浏览会话 | 沙盒化的 AI 编码代理 |
| 客户机操作系统 | Alpine Linux + Chromium | Ubuntu 24.04 |
| 虚拟机生命周期 | 临时性——窗口关闭时销毁 | 持久性——每个工作区一个虚拟机,状态得以保留 |
| 保护的对象 | 一切:没有数据留存到会话之后 | 机密面:真实凭据永不进入虚拟机 |
| Bundle ID | io.bromure.app | io.bromure.agentic-coding |
这两种理念是互补的。浏览天然是无状态的,因此 Bromure Web 在窗口关闭时销毁每个虚拟机,不留任何痕迹。编码天然是有状态的——你明天还需要你的克隆、缓存和历史——因此 Bromure Agentic Coding 有意让虚拟机保持存活,转而控制虚拟机所能看到或外泄的内容。本手册涵盖 Bromure Agentic Coding;仅在两款应用交互之处才提及 Bromure Web(例如,嵌入式代理浏览器从与 Bromure Web 相同的目录下载其镜像)。
单边界安全模型
本产品的核心理念在于:每一项保护都在同一个地方强制执行——一个宿主机侧的 MITM 代理服务器,虚拟机所有出站 HTTPS 都流经它。客户机的 HTTPS_PROXY 指向它,客户机网络也被塑造成让该代理服务器成为唯一的出口路径。由于该边界位于宿主机,虚拟机内的代码——包括一个完全被攻陷的代理——都无法禁用、绕过或欺骗它。
在该边界处,每个请求都会经历三件事:
- TLS 终止。 代理服务器使用 Bromure 根 CA 终止虚拟机的 TLS,这是一个在首次启动时生成的、每次安装独立的证书颁发机构。它的公钥证书在引导时挂载到每个虚拟机的信任存储中;它的私钥永不离开宿主机。
- 检查与改写。 代理服务器检查请求、应用策略(许可、扫描、检测、追踪),并且——在涉及凭据时——将伪值替换为真值。替换涵盖 bearer 和
x-api-key头、OAuth 刷新体(可选开启)、完整的 AWS SigV4 重新签名、Kubernetes 凭据、Docker 注册表认证,以及通过 vsock 上的 ssh-agent 桥接的 SSH 签名。 - 重新加密。 改写后的请求通过一个正常的 TLS 连接重新加密并发往真正的上游。
其中凭据这一面在构造上就是严格的。虚拟机始终只持有带有逼真前缀和长度的伪值——例如 ANTHROPIC_API_KEY=sk-ant-api03-brm-…、一个伪 AWS 密钥、合成的 kubeconfig 令牌。替换按主机后缀限定作用域:为 api.anthropic.com 注册的凭据绝不会被注入到一个仿冒域名。而且系统是失败即关闭的:如果代理服务器不知何故被绕过,传输线上唯一的凭据是一个没有任何上游会接受的伪值(例如 AWS 会返回 InvalidSignatureException)。真实值只存在于宿主机进程中,以 AES-256-GCM 加密,主密钥存放在 macOS 数据保护钥匙串中。
一个攻陷检测器闭合了这个回路:一个基于为该工作区注册的每个伪令牌构建的 Aho-Corasick 自动机,会在单次遍历中扫描每个出站请求体。如果某个伪值正被发往其替换作用域之外的主机——这是外泄企图的特征——代理服务器就会拒绝替换并向你告警。由于泄露的只是伪值,真实凭据永远无需轮换。
同一道边界也是其他一切接入之处:软件包下载在跨越它时被扫描,不可信内容在经它返回时被检查是否含提示注入,审计追踪记录跨越它的内容,而 Fusion 面板、本地推理和远程访问也全部在其上运作。一道边界,一切控制。
各项支柱
以下每项能力在手册后文都有专章介绍;本节先让你了解每一项的概貌。
隔离
每个工作区都映射到自己的持久虚拟机,拥有自己的内核、虚拟磁盘、MAC 地址、网络命名空间和每工作区的代理服务器监听器。一个恶意软件包或一个失控的代理进程可以毁掉虚拟机——而且只能毁掉虚拟机。你的 macOS 宿主机、你的其他工作区和你的真实文件保持不受影响,除了你明确共享的文件夹之外。虚拟机从一个已签名的 Ubuntu 24.04 基础镜像引导,该镜像通过 APFS 写时复制克隆派生,因此创建工作区是即时的,而恢复一个 已挂起 的工作区会就地还原其内存快照;预热的虚拟机池则保留给临时的浏览器边车使用。相关概念在 核心概念 中介绍,日常管理在 工作区 中介绍。
凭据保护与许可
真实凭据永不进入虚拟机;如上所述,代理服务器在传输时将伪值替换为真值。在替换之上,Bromure Agentic Coding 还增加了按使用的治理:凭据可以要求你按目的地明确许可,授权带有 TTL(允许 5 分钟、1 小时,或在本次会话余下时间内),并且提供只读作用域限定。隐藏一个令牌与治理它的使用并不相同——Bromure 两者兼顾。参见 凭据。
供应链扫描
软件包安装是敌意代码进入开发环境最常见的方式,因此代理服务器在软件包被获取时对其扫描。四种机制结合使用:一道时效门(全新的软件包版本会被暂缓放行)、OSV 漏洞查询、socket.dev 行为分析,以及 Delpi。裁决在传输线上强制执行——被拦截的软件包永远不会到达虚拟机——并在你确知自己在做什么时提供经许可的绕过。参见 供应链扫描。
提示注入检测
代理从外界读取的内容——网页、API 响应、文件——可能携带针对代理而非针对你的指令。Bromure Agentic Coding 使用两个本地分类器模型 PromptGuard 和 ModernBERT,在你自己的硬件上运行,扫描跨越边界的不可信内容。检测结果以拦截/放行决策的形式呈现,并将被标记的文本展示给你,而不是展示给代理。参见 提示注入检测。
追踪与审计
每个会话都可以被记录为一份加密的全会话追踪:LLM 调用(模型、令牌、延迟)、工具调用、shell 命令、文件读写、凭据使用和联系过的域名。本地的追踪检查器让你能回放代理做过什么,并在事后回答问题。在企业注册的安装上,会话元数据还会通过双向 TLS 流式传输到组织的工作区——永远不含原始提示或模型响应,也永远不含机密值。个人(未注册)安装不会流式传输任何内容;一个每工作区的 隐私模式 开关可彻底抑制流式传输,并且每当流式传输处于活动状态时,会话窗口中都会出现一个可见的指示器。参见 追踪。
Fusion
由于每次 LLM 调用都跨越代理服务器,代理服务器能做的就不止是原样转发。Fusion 将一个请求变成一个面板:多个模型作答,一个评判器模型评估这些候选,然后一个综合出的最佳答案返回给代理——全部在传输线上完成,对代理透明,无需任何代理配置。参见 Fusion。
本地与混合推理
同一个拦截点让你能把模型调用路由到运行在你自己的 Apple Silicon 上的推理(通过 MLX),或以混合方式运行:通常使用云端模型,在云端不可达时回退到本地。本地模型还为产品中其他各处使用的设备端分类器提供支持。参见 本地模型。
远程访问
你的沙盒可从任何地方访问:通过应用本身、通过命令行,或通过 SSH。运行 Bromure Agentic Coding 的第二台 Mac 可以通过 SSH 隧道一对一地镜像一个远程实例——网格、工作区、标签页和自动化(工作区 菜单 → 连接到远程 Bromure…)。关键在于,转为远程后安全性不会削弱:凭据使用的许可提示、供应链绕过、护栏写入和提示注入决策都在连接的宿主机侧渲染,被攻陷的客户机既看不到也无法伪造它们,任何超时或忽略都被视为拒绝。参见 远程访问。
企业管理
组织使用一个六词代码(bromure-cli enroll)将安装注册到一个 bromure.io 工作区。注册会向安装发放一份双向 TLS 证书,启用从控制平面推送的托管配置文件,并激活追踪一节所述的元数据事件流。注销只需在控制平面执行一个操作,即可吊销该安装的证书。有两项能力属于企业层级,并在 Bromure Enterprise Manager 中呈现:设备群范围的供应链清单(任何已注册机器获取的每个依赖,附带裁决,可搜索)以及按文件、仓库和模型的令牌用量汇总。参见 企业版。
它与其他工具的比较
README 中的比较矩阵(于 2026 年 6 月根据各项目的公开文档编制)对人们常用的各类工具运行了相同的威胁模型。它揭示的规律是:大多数工具只从五种控制——隔离、把机密挡在代理之外、限定凭据使用的作用域、供应链扫描、提示注入检测——中挑选一种,然后就止步于此。
- Dev Containers (VS Code) 隔离了工具链,但容器共享宿主机内核,且其配置会主动将你的 SSH agent 和 git 凭据转发进代理运行的环境中。没有按使用的凭据作用域限定、注册表扫描或注入检测。
- nono 是一个内核沙盒:带审批流程的系统调用允许列表和一个出口过滤器,以及一份不可变的本地审计日志。它会阻止对关键文件的访问并代理某些凭据,但代理没有属于自己的内核,软件包扫描和注入检测也不在其范围之内。
- agent-vault (octokraft) 将机密管道传输进进程,因此不存在通向原始值的读取路径,并带有每机密的 TTL。但代理本身就地运行在你的机器上——完全没有隔离边界。
- Agent Vault (Infisical) 是一个 HTTP 凭据代理:它在传输时附加凭据,因此代理永远不会读取它们,并按端点过滤出口。然而代理是未沙盒化运行的,也没有扫描或检测。
- Docker Sandboxes(一个实验性预览)在隔离方面最为接近:一个拥有自己内核的 microVM,以及一个注入凭据头的宿主机代理,使原始值留在虚拟机之外。差距在于治理:被代管的凭据会附加到沙盒发出的任何出站请求上,因此在其中安装的恶意软件包无需看到该凭据,就能针对一个允许列表内的域名使用它——而且没有任何东西在软件包进入时对其扫描。
- Capsem 是一个气隙硬件虚拟机,带有域级和方法/路径级的出口规则以及完整的 HTTP 请求体日志。但真实 API 密钥就存放在虚拟机内,而当工作负载是一个可能已被攻陷的代理时,这恰恰是绝不能成立的。
矩阵中没有一个工具提供供应链扫描或提示注入检测;除 Bromure 之外,那两列对所有人都是空的。Bromure Agentic Coding 在单一代理服务器边界处强制执行全部五种控制,然后再加上机密代理永远做不到的东西——因为它拥有传输线:Fusion 模型面板、本地与混合推理,以及从应用、CLI 或 SSH 进行的远程接入。设备群范围的软件包清单和令牌用量分析属于企业层级,在 Bromure Enterprise Manager 中呈现。
比较数据很快就会过时。一个更详细且更新的矩阵维护在 bromure.io/en/feature-matrix,README 也邀请大家在关于其他工具的某一行已陈旧时以 issue 形式提出更正。
系统要求一览
| 系统要求 | 详情 |
|---|---|
| macOS | 14 (Sonoma) 或更高版本 |
| 硬件 | Apple Silicon(M1 或更新)。没有 Intel 版本——Virtualization.framework 仅在 Apple Silicon 宿主机上支持 ARM64 客户机。 |
| 磁盘 | Ubuntu 基础镜像是一个 24 GB 的逻辑稀疏磁盘,在磁盘上物理占用约 6–8 GB;每个工作区会新增一个写时复制克隆,随使用而增长。 |
| 网络 | 首次启动会从 dl.bromure.io 下载预构建的、经 ed25519 签名的基础镜像。离线时,应用会回退到在本地构建镜像(约 10 分钟)。 |
| 专有代理 | Claude Code、Codex CLI、Grok CLI 和 Google Cloud SDK 无法随可再分发的镜像一起发布;它们作为已签名的目录安装后步骤安装到你的机器上。运行首次设置即表示同意基线步骤;只有在后续更新中发布的步骤才会在之后提示你批准。 |
分步的下载和首次启动说明见 安装。
许可与署名
Bromure 仓库依据 MIT 许可证(版权所有 2026 Renaud Deraison)开源,可免费使用。署名归于 Renaud Deraison(提示)和 Claude + Opus 4.7(实现)。
在阅读本手册时,有一点区别值得记住:两款应用本身是开源的,但企业功能——注册、托管配置文件、云端事件流和 Bromure Enterprise Manager——绑定于 bromure.io 上的托管控制平面,那是一项商业服务。单用户体验中的任何部分都不依赖它:未注册的安装不会向任何地方流式传输任何内容,每一项安全支柱都完全在你自己的 Mac 上运作。
获取帮助
- bromure.io —— 产品文档、截图、下载、技术白皮书和详细的功能矩阵。
- GitHub issues —— 缺陷报告、功能请求以及对比较矩阵的更正,都应提交到项目的 GitHub 仓库(从 bromure.io 链接进入)。
- 本手册 —— 故障排除 汇集了诊断流程和已知问题;术语表 定义了这些章节中使用的每一个专业术语。
本手册的组织方式
本手册对新手可从头读到尾,之后则可作为随机访问的参考:
- 入门 —— 安装 涵盖下载安装应用与首次启动;快速上手 带你从全新安装一气呵成到运行中的代理。
- 基础 —— 核心概念 解释架构(虚拟机、代理服务器边界、镜像、凭据模型);工作区 和 会话 涵盖你每天打交道的两个对象;嵌入式浏览器 涵盖代理可驱动的 Chromium;自动化 涵盖在看板上进行的、计划的、无人值守的代理运行;编码任务 涵盖编码看板——任务简报、由代理规划的阶段、审阅与合并。
- 设置参考 —— 设置 记录 编辑工作区 编辑器的每一个窗格,每个窗格一页,外加应用级的自动化窗格。
- 深入各项支柱 —— 凭据、供应链扫描、提示注入检测、追踪、Fusion 和 本地模型 各自将一根支柱展开为完整的操作细节。
- 超越单台 Mac —— 远程访问 涵盖 CLI、SSH 和镜像一个远程实例;企业版 涵盖注册、设备群管理和云端事件流。
- 参考 —— 自动化与 CLI、高级、故障排除、术语表 和 附录。
继续阅读 安装。