简介
Bromure Agentic Coding 是一款 macOS 应用,它在你自己的 Mac 上、在硬件虚拟化的 Linux 机器中运行 AI 编程代理——Claude Code、Codex、Grok、Kimi Code、Oh My Pi,以及普通的 shell 工具——构建于 Apple 的 Virtualization.framework 之上。每个代理都拥有完整、持久的 Ubuntu 开发环境,但你真实的凭据永远不会进入其中。代理发往外界的一切都要经过宿主机侧的单一网关。这个网关负责实施隔离、凭据保护、供应链扫描、提示注入检测、个人数据保护和审计追踪,而代理无法绕过它。
本手册介绍 Bromure Agentic Coding 5.0.0。应用的 Bundle ID 是 io.bromure.agentic-coding,可执行文件是 bromure-ac,可选的命令行工具安装为 bromure-cli。需要搭载 Apple 芯片的 macOS 14(Sonoma)或更高版本。产品详情、截图和下载见 bromure.io。
什么是 Bromure Agentic Coding?
编程代理功能强大,而且在设计上就是自主运行的:它们会读取文件、运行 shell 命令、安装软件包,并替你调用 API。如果直接在 Mac 上运行,代理就会继承你的 shell 所拥有的一切——你的 SSH 密钥、~/.aws 凭据、kubeconfig、API 令牌。这时,只要一个恶意依赖、一个被植入提示注入的网页,就离这一切只有一步之遥。
Bromure Agentic Coding 改变了这笔交易。代理在机器中运行:隔离的 Linux 虚拟机,每台都有自己的内核、磁盘、MAC 地址和网络。(设置编辑器把机器称为工作区;两个词指的是同一样东西。)机器会保留自己的状态——克隆的仓库、软件包缓存、virtualenv、shell 历史——因此用起来就像一台普通的开发机。但它只持有刻意设为无效的伪造凭据。真实值加密保存在宿主机上,并在你同意的前提下,按目的地在传输途中换回。
大多数时候你打交道的不是机器,而是会话。一个会话就是与一个代理、在一个文件夹、在一台机器上的一段对话。打开应用时,主窗口会列出你的会话,并以聊天形式显示你选中的那一个:
侧边栏从上到下依次为:
- 搜索会话 按标题和对话内容查找会话。
- 新建会话 ⌘N 会打开新建会话界面,你在其中选择代理、机器和文件夹,然后输入想要完成的事。
- 会话 列出你的对话,按它们需要你做什么分组:需要你、工作中、就绪、已暂停 和 已完成。总机 行和你的房间位于列表顶部,你收起的会话会进入 已归档 折叠区。
- 任务 和 自动化 会打开编码任务和自动化的看板。
- 虚拟机 默认折叠。其中列出你的机器、终端网格,以及你运行的任何 Kubernetes 集群、镜像仓库和消息连接器。
在截图中,“Add Apple Pay to checkout”的代理正在工作。聊天以紧凑的活动行显示它到目前为止做了什么,汇总这一轮的文件更改(Changed 1 file +4 −1),并在输入区提供红色的停止按钮。会话主页介绍了这个窗口的每个部分。
它面向谁
Bromure Agentic Coding 面向三个相互重叠的群体:
- 个人开发者:想用真实凭据——Anthropic、OpenAI、AWS、Kubernetes、GitHub——运行编程代理,却不想把这些凭据交给代理。代理仍然可以部署、推送和置备;即使会话被攻破,泄露的也只有诱饵。
- 注重安全的团队:希望代理的每个动作都清晰可见:调用了哪个模型、运行了哪些工具、改动了哪些文件、执行了哪些命令,以及哪些凭据在哪里被使用。加密的本地追踪记录和安全时间线能在事后回答“代理到底做了什么?”。
- 组织中的平台与安全工程团队:需要覆盖整个设备群的策略:已注册的安装会把会话元数据发送到组织的工作区,凭据可以签发给应用而不是开发者的 shell,而让一台机器下线只需在控制平面上执行一个操作。参见企业版。
你不需要懂任何虚拟化知识。首次启动时,一个简短的向导会下载预构建、已签名的基础镜像,提议导入你已有的凭据,并帮助你登录模型提供方。之后,你只需开始一个会话,然后与代理对话。
两款姊妹应用
Bromure Agentic Coding 与它的姊妹应用 Bromure(网页浏览器应用,有时称为 Bromure Web)出自同一个开源仓库。两者都使用 Apple 的 Virtualization.framework,并共享相同的虚拟机和镜像机制,但在虚拟机的生命周期上采取相反的立场:
| Bromure (Web) | Bromure Agentic Coding | |
|---|---|---|
| 用途 | 一次性浏览会话 | 沙盒化的 AI 编码代理 |
| 客户机操作系统 | Ubuntu + 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 所使用的那种用完即弃的 Ubuntu + Chromium 虚拟机。
单边界安全模型
这个产品的核心理念,是所有保护都在同一个地方实施:一个宿主机侧的 MITM 代理服务器,机器所有出站网页流量都要经过它。客户机的 HTTPS_PROXY 指向它,而发往 80 和 443 端口的出站连接也会在虚拟网络交换机上被转向它,因此即使某个工具忽略代理变量,也照样要经过它。由于这道边界位于宿主机上,虚拟机内的代码——包括完全被攻破的代理——都无法关闭它、绕过它或欺骗它。
在该边界处,每个请求都会经历三件事:
- 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 数据保护钥匙串中。
入侵检测器补上了最后一环。它会扫描每个出站请求,查找为该机器注册的任何伪造令牌。伪造值如果被发往其范围之外的主机,就是一次数据外泄企图的特征,因此代理服务器会拒绝替换并提醒你。由于泄露的只是伪造值,真实凭据根本无需轮换。
其他一切也都接入同一道边界。软件包下载在穿越它时接受扫描,经由它返回的不可信内容会被检查是否含有提示注入,个人数据会在 AI 请求离开之前被替换掉,审计追踪记录穿越它的内容,而 Fusion、模型路由和远程访问也都在它之上工作。一道边界,全部管控。
主要功能
下面每项功能都有专门的章节;本节让你先了解每一项的大致模样。
会话、房间与分支
会话就是与一个代理的一段对话。你在新建会话界面上选择代理、机器以及它工作的位置——新的空文件夹、你的某个文件夹,或要检出的仓库——然后输入你想要的内容,即可开始。聊天会以易读的活动行、差异、命令、待办列表、表格和图表的卡片,以及每一轮所更改文件的摘要来呈现代理的工作。当代理向你提问时,聊天中会出现一张提问卡片,会话也会移到侧边栏的需要你。参见开始一个会话和聊天。
当多个会话在处理同一件事时,可以把它们归入一个房间:并排显示实时聊天的网格,配有一个可以发给其中任意一个或同时发给全部的输入区。参见房间。如果想尝试某件事而不碰会话的文件夹,可以在它自己的 git 工作树上开始一个分支会话,用逐行评论审查其更改,再合并回去。参见分支与审查。
代理协同工作,以及总机
代理之间可以相互移交工作。代理可以把一项工作委派给新的子会话(在它自己的分支上或另一台机器上)并获得回复,或者通过**@昵称向已有会话发送请求**。代理之间的每条消息都会经过提示注入筛查。参见代理协同工作。
总机是一个掌握所有其他会话的会话:问它现在的情况、让它替正在等待的代理回答,或开始新的工作。每个房间都可以有自己的总机,只能看到该房间。消息连接器让你在离开 Mac 时,也能通过 Signal、WhatsApp 或 Slack 联系总机。参见总机与消息。
隔离
每台机器都是独立的持久虚拟机,拥有自己的内核、虚拟磁盘、MAC 地址、网络和代理服务器监听器。恶意软件包或失控的代理进程可能会毁掉这台机器——但也只有这台机器。你的 Mac、其他机器和文件都不会受到影响,只有你明确共享的文件夹例外。机器通过 APFS 写时复制克隆从已签名的 Ubuntu 24.04 基础镜像创建,因此新机器起初几乎不占磁盘空间,而挂起的机器会从其内存快照原地恢复。参见概念与架构和机器。
凭据保护与许可
真实凭据永远不会进入机器;如上所述,代理服务器会在传输途中把伪造值换成真实值。在替换之外,你还可以管控每一次使用:凭据可以要求你按目的地给予许可,授权带有时限(5 分钟、1 小时或会话剩余时间),也可以限定为只读。订阅(Claude、ChatGPT、Grok 或 Kimi)的登录在宿主机上进行;代理只会看到一个替身密钥。参见凭据与传输边界。
供应链扫描
安装软件包是恶意代码进入开发环境最常见的途径,因此代理服务器会在获取软件包时就加以检查。四种机制相互配合:年龄门槛(刚发布的新版本会被暂缓)、OSV 漏洞查询、socket.dev 行为分析,以及 Depi。被阻止的软件包永远不会到达机器,而当你清楚自己在做什么时,可以批准例外。参见供应链保护。
提示注入检测与护栏
代理从外界读取的内容——网页、API 响应、文件——可能夹带着针对代理而不是针对你的指令。Bromure Agentic Coding 使用在你 Mac 上运行的两个本地分类模型 PromptGuard 和 ModernBERT,扫描穿越边界的不可信内容。检测结果如何处理由你决定,被标记的文本也由你查看;代理则看不到。护栏会把代理对 Kubernetes、AWS、git 托管平台、镜像仓库与数据库的调用分类为读取、写入与破坏性操作,并可对你选定的那些先行询问或直接拦截。参见提示注入检测与护栏。
沙盒策略、客户机沙盒与内核哨兵
每台机器都会选择一种沙盒引擎。Bromure Firewall 按主机、端口、协议,甚至 HTTP 方法来允许或拒绝连接,让机器能读取某个 API,却不被允许写入。OpenShell + Sentry 则改为运行一份 NVIDIA OpenShell 策略:除非有规则允许,否则一律拒绝;请求会逐个检查;在 VM 内,代理只能访问策略列出的文件与程序。内核哨兵从 VM 的内核内部报告每一个程序、每一条连接与每一次拒绝,所以每条连接都能追溯到建立它的提示与工具调用。当有东西被拦截时,代理会被告知原因并被要求先来问你,而 Sandbox 抽屉让你一键就能允许它。参见沙盒策略、客户机沙盒与内核哨兵。
个人数据保护
为某台机器开启后,个人数据保护会在对话离开你的 Mac 之前,把个人数据——姓名、电子邮件地址和电话号码、卡号、银行账号和税号、身份证件号码以及住址——替换为逼真的替身,并在模型的回复中换回真实值。检测在你的 Mac 上由内置的 Rampart 模型运行。默认关闭。参见个人数据保护。
追踪、审计与安全时间线
每个会话都可以记录为加密的追踪记录:模型调用(模型、令牌、延迟)、工具调用、shell 命令、文件读写、凭据使用以及联系过的域名。跟踪检查器让你重放代理做过的事。安全窗口(窗口 › 安全…)有一个概览标签页——每个安全引擎在(默认)过去 24 小时内阻止、允许、代为处理、检查和替换了什么,以及每台机器开启了哪些保护——还有一个列出每项决定的时间线标签页,可以按机器与期间筛选、导出为 CSV,或以 OCSF 日志串流给 SIEM。时间线事件默认保留 90 天。在已注册企业版的安装上,会话元数据还会通过双向 TLS 发送到组织的工作区——绝不包括原始提示或模型响应,也绝不包括机密值。未注册的安装不会发送任何内容,而每台机器的私密模式会完全停止发送。参见追踪与审计和安全概览与时间线。
模型与提供方
位于偏好设置 › 模型的全局模型看板,汇集了你使用的所有模型来源:Anthropic、OpenAI、xAI、z.ai 和 Moonshot 的登录与 API 密钥,外加 Amazon Bedrock、OpenRouter、一个自定义服务器(vLLM、Ollama、LM Studio 或任何兼容 OpenAI 的服务器),以及用 MLX 在你 Mac 上运行的设备端模型。对每个代理,你可以保留其提供方的默认模型,也可以另选其他模型,包括其他提供方的模型。机器可以继承这些设置,也可以用自己的设置覆盖。更改会即时生效:只有受影响的代理会重启,并从中断之处接着对话。参见模型与提供方。
Fusion
由于每次模型调用都会穿越代理服务器,代理服务器能做的不只是放行。Fusion 会把一个请求变成一个评审团:多个模型作答,一个评审模型评估这些候选答案,再把一个综合后的答案返回给代理——全在传输途中进行,代理看不见,也无需对代理做任何配置。参见 Fusion。
Kubernetes 集群与镜像仓库
Bromure 可以在你的机器旁边、用各自的虚拟机运行 k3s Kubernetes 集群和私有容器镜像仓库,并提供存储、负载均衡、可选的云模拟器,以及按机器的访问控制。代理可以通过内置的基础设施 MCP 服务器,查看并管理其机器被允许使用的资源。参见 Kubernetes 集群与注册表。
远程访问
你的沙箱可以从任何地方访问:从应用、从命令行,或通过 SSH。另一台运行 Bromure Agentic Coding 的 Mac——或运行 Bromure Remote 客户端的 iPhone、iPad 或 Apple Vision Pro——可以通过 SSH 隧道镜像远程实例(工作区 › 连接到远程 Bromure…),连同其会话、房间和总机。在镜像窗口中,偏好设置 可以编辑远程 Mac 的设置。远程使用时安全性也不会打折扣:凭据使用、供应链例外、护栏写入和提示注入决定的许可提示,都会显示在连接的宿主机一侧,被攻破的客户机既看不到也无法伪造它们;超时或关闭提示都视为拒绝。参见远程访问与客户端。
企业管理
组织用一个六词代码把安装注册到 bromure.io 工作区(bromure-cli enroll,或应用中的 bromure.io 注册…)。注册会给安装一张双向 TLS 证书,启用由控制平面推送的托管配置文件,并开始发送追踪一节所述的元数据。让机器下线只需在控制平面上执行一个操作,即可吊销该安装的证书。整个设备群的供应链清单和令牌用量汇总,是 Bromure Enterprise Manager 企业版层级的功能。参见企业版。
它与其他工具的比较
README 中的对比矩阵(于 2026 年 6 月根据各项目的公开文档整理)把同一套威胁模型套用到人们常用的工具上。大多数工具只选择五项管控之一——隔离、让机密远离代理、限定凭据的使用范围、供应链扫描、提示注入检测——然后就止步于此。
- Dev Containers(VS Code) 隔离了工具链,但容器共享宿主机的内核,而且配置会把你的 SSH 代理和 git 凭据转发到代理运行的环境中。没有按次使用的凭据范围限定、镜像仓库扫描,也没有注入检测。
- nono 是内核级沙箱:带审批流程的系统调用允许列表、出站过滤器,以及不可篡改的本地审计日志。它会阻止对密钥文件的访问并代理部分凭据,但代理没有自己的内核,而软件包扫描和注入检测不在其范围之内。
- agent-vault(octokraft) 通过管道把机密传给进程,使人无法读取原始值,并可为每个机密设定时限。但代理直接在你的机器上运行——根本没有隔离边界。
- Agent Vault(Infisical) 是一个 HTTP 凭据代理:它在传输途中附加凭据,让代理永远读不到,并按端点过滤出站流量。然而代理的运行没有任何约束,也没有扫描或检测。
- Docker Sandboxes(实验性预览)在隔离方面最为接近:一个拥有自己内核的 microVM,以及一个注入凭据请求头的宿主机代理,让原始值留在虚拟机之外。缺口在于治理:代为处理的凭据会附加到沙箱发出的任何出站请求上,因此安装在其中的恶意软件包可以在从未看到凭据的情况下,把它用在某个被允许的域名上——而且没有任何东西会在该软件包进入时扫描它。
- Capsem 是一个与网络隔离的硬件虚拟机,具备按域名以及方法/路径设置的出站规则,并完整记录 HTTP 请求正文。但真实的 API 密钥就存放在虚拟机内,而当工作负载是一个可能已被攻破的代理时,这恰恰是绝不应该发生的事。
对比矩阵中没有其他工具提供供应链扫描或提示注入检测。Bromure Agentic Coding 在其单一的代理服务器边界上实施全部五项管控,并进一步加上掌握传输途径才能实现的功能:个人数据保护、Fusion 模型评审团、跨提供方和你自有硬件的模型路由,以及从应用、CLI 或 SSH 进行的远程访问。
对比数据过时得很快。更详细、最新的对比矩阵见 bromure.io/zh-CN/feature-matrix;如果关于其他工具的某一行已经过时,README 欢迎你通过 issue 提出更正。
系统要求一览
| 系统要求 | 详情 |
|---|---|
| macOS | 14 (Sonoma) 或更高版本 |
| 硬件 | Apple 芯片(M1 或更新)。没有 Intel 版本——Virtualization.framework 只支持 Apple 芯片上的 ARM64 客户机。 |
| 磁盘 | Ubuntu 基础镜像是一个 24 GB 的稀疏磁盘,实际约占 6–8 GB;每台机器会增加一个随使用而增长的写时复制克隆。 |
| 网络 | 首次启动时会从 dl.bromure.io 下载预构建、已签名的基础镜像。如果无法下载,应用可以改为在本地构建镜像(约 10 分钟)。 |
| 专有代理 | Claude Code、Codex、Grok、Kimi Code、Oh My Pi 和 Google Cloud SDK 不能随可再分发的镜像一起发布。它们会作为已签名的设置步骤,安装在你的 Mac 上、你的镜像副本中。运行首次设置即表示你许可基线步骤;之后发布的步骤会请求批准。 |
分步说明见安装与首次运行。
许可与署名
Bromure 仓库依据 MIT 许可证(版权所有 2026 Renaud Deraison)开源,可免费使用。署名归于 Renaud Deraison(提示)和 Claude + Opus 4.7(实现)。
这两个应用都是开源的,但企业功能——注册、托管配置文件、云事件流和 Bromure Enterprise Manager——依赖于位于 bromure.io 的托管控制平面,而那是一项商业服务。单用户体验完全不依赖它:未注册的安装不会把任何内容发送到任何地方,而每一项安全功能都完全在你的 Mac 上运行。
获取帮助
- bromure.io —— 产品文档、截图、下载、技术白皮书和详细的功能矩阵。
- GitHub issue——缺陷报告、功能请求以及对对比矩阵的更正,请提交到项目的 GitHub 仓库(可从 bromure.io 链接过去)。
- 本手册——故障排除汇集了诊断步骤和已知问题;术语表定义了这些章节中使用的每个术语。
本手册的组织方式
初次使用者可以从头到尾阅读本手册;之后再把它当作参考资料使用:
- 入门——安装与首次运行介绍应用的安装和引导向导;快速上手带你从向导走到完成一项任务;概念与架构介绍会话、机器、房间和分支,以及宿主机、客户机和代理服务器如何配合工作。
- 日常使用——会话主页、开始一个会话、聊天、房间、分支与审查、代理协同工作、总机与消息、机器、嵌入式浏览器、自动化和编码任务涵盖你每天要做的事。
- 设置参考——设置参考逐一记录设置编辑器和偏好设置的每个面板,一个面板一页。
- 安全与传输边界——凭据、供应链保护、提示注入检测与护栏、个人数据保护、追踪与审计和安全概览与时间线完整介绍每一项保护。
- 模型与基础设施——Fusion、模型与提供方和 Kubernetes 集群与注册表。
- 超越单台 Mac——远程访问与客户端涵盖镜像、移动端和 visionOS 客户端、CLI 以及 SSH;企业版涵盖注册、设备群管理和云事件流。
- 参考资料——CLI、API 与 MCP、高级、故障排除、术语表和附录。
接下来请阅读安装与首次运行。