开发与工程 incussystem-containerssandboxingcodexopencodethreat-detectionnetwork-isolation

Code on Incus (coi)

为每个 AI 编码代理提供独立的隔离整机,配备 root、Docker、systemd 与主动威胁防御。

FollowAgents 评估 · FARS-2.1
谨慎使用
66/ 100 五分制 3.3 / 5
1 2 3 4 5 6
1信任安全16 / 29 · 2.8/5

证据显示默认凭据隔离(SSH 密钥/env 不进容器)、网络三模式、审计日志、受信任配置作用域(项目级 [prompts] 被忽略),值得肯定;扣分点:install.sh 以 curl|bash 方式运行且需写入 /etc/sudoers.d/coi-nft(NOPASSWD nft),属较大的宿主权限变更;permission_mode 可配置为 bypass 且 headless 默认 bypass,自动放行需用户明确知情;自动 kill 容器是有意的外部效应,回滚主要靠快照但快照细节只在 wiki,未见源码级证据;MIT + 版权人署名清晰。

2可靠稳定8 / 14 · 2.9/5

CI 覆盖 20+ 集成分组、竞态检测、覆盖率,单元与集成并行,自洽性好;错误信息有断言(no-tmux 建议 --bash、无 sudoers 时明确失败、coi health);扣分点:依赖外部 Zabbly 仓库、Ubuntu/Colima 镜像下载,CI 自身已记录网络瞬断需重试,安装可用性脆弱,未见锁定/降级策略。

3适用触发14 / 18 · 3.9/5

目标受众与场景描述充分(跑 AI agent 的开发者、并行多 agent、不信任仓库检查),hardened 预设、profile 继承、Linux/Incus 与 macOS Colima 支持并给出 wiki 指南;扣分点:prompt 模式目前仅支持 claude+bypass,边界有说明但覆盖面窄;触发精度(威胁检测阈值/误报)依赖测试名推断,静态文件看不到规则本体。

4规范维护13 / 18 · 3.6/5

README→wiki 的信息架构非常清晰,命令示例丰富,MIT 全文、安装三步、限制(macOS 需 Colima、无 sudoers 路径)有文档;扣分点:仓库内无 CHANGELOG/版本历史文件(仅有 release 徽章),FAQ/排障全部外链 wiki 无法在本仓库验证,安装测试 workflow 处于 .disabled 状态。

5有效结果10 / 13 · 3.8/5

输出可用性有支撑:JSONL 审计可接 SIEM、exit code 透传、coi top/monitor/audit 命令族;边际价值明确——系统容器 + 内核级威胁检测 + 自动响应在同列工具中少见,扣分点在成本:首次构建 5-10 分钟、需 Incus 宿主与 nftables 权限,比 Docker 沙箱更重,静态证据无法证明检测准确率,性价比部分依赖未验证的检测质量。

6证据核验5 / 8 · 3.1/5

README 主张与 CI 测试分组大体可互证(威胁检测、reverse shell、nftables 隔离、#508 非 sudo 路径、#505 回归均有对应测试名),行为主张可追溯到 wiki 页面;扣分点:安全主张(auto-kill/auto-pause 的实际效果)在本仓库静态文件内只能靠测试命名佐证而非实现代码,部分文案('killer preset')是营销语言而非事实陈述。

证据充分度: 评估于 2026年9月10日 审查版本 0d802a415c61
使用前请注意
  • 安装采用 curl | bash 且会写入 NOPASSWD nft sudoers 规则——安装前请审查 install.sh 并知晓其对宿主防火墙控制的授出。
  • headless prompt 模式强制 bypass 权限,agent 在无确认情况下自动执行;仅在可信项目上使用,敏感仓库务必使用 --profile hardened。
  • 自动 kill/pause 的威胁检测准确率未经本次静态审查验证;可能存在误报中断工作或漏报风险。
  • 仓库内无 CHANGELOG,版本追踪需依赖 GitHub Releases;安装测试 workflow 当前处于禁用状态。
  • 可用的源文件不含核心 Go 实现代码,本评估置信度为低;安全关键主张(内核级检测、自动响应)请在使用前自行验证对应源码与测试。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

code-on-incus(简称 coi)是一个开源(MIT)的 Go 命令行工具,用于将 Claude Code、Codex CLI、opencode、pi、omp 等 AI 编码代理运行在独立的 Incus 系统容器中。每个容器是完整操作系统,具备 root、systemd 和原生 Docker,代理可像在真实服务器上一样安装软件和运行服务,但无法接触宿主机或凭证。其内核级主动防御通过 nftables 监控反向 shell、C2 连接、数据外泄和 DNS 隧道,高威胁自动暂停、危急威胁自动终止容器。工作区文件和会话历史始终持久化,凭证默认不进入容器,除非显式挂载。部署边界为 Linux 宿主机(macOS 可通过 Colima/Lima),一条 `coi shell` 命令即可进入编码会话。

coi 基于工作区路径和 session_name 的哈希创建 Incus 系统容器,将项目挂载到 /workspace 并保持正确的文件属主。它运行配置中指定的 AI 工具(claude/codex/opencode/pi/omp),通过 config.toml 的 permission_mode 支持 bypass(自主运行)或 interactive 模式。安全层面,内核级监控(nftables 三种网络模式、DNS 钉扎、出口端口控制)实时检测威胁并执行 HIGH 自动暂停 / CRITICAL 自动终止,所有事件以 JSONL 格式记录,可用 coi audit 流式输出到 SIEM 或 jq。Profile 功能将镜像、工具、资源限制、挂载、网络模式和代理指令打包为可继承的模板;内置 hardened 预设提供受限网络、秘密掩码、临时容器和禁用 SSH-agent 转发。coi run --prompt 支持无头执行预定义提示词,可配合宿主机 cron 做自动化(如夜间依赖更新并开 PR);提示词只从受信任的 ~/.coi/config.toml 读取,克隆仓库无法注入。

  1. 运行多个 AI 编码代理并行处理同一项目的开发者,需要各会话完全隔离、互不泄露
  2. 打开不信任的第三方仓库前,想用 coi shell --profile hardened 在强隔离环境下安全审查代码
  3. 担心代理接触 SSH 私钥、.env 或 Git token 的团队,希望凭证默认永不进入代理环境
  4. 想对代理行为做实时告警与审计的工程师,通过 coi monitor 和 JSONL 审计日志接入 SIEM
  5. 需要夜间无人值守自动化的维护者,用 cron + coi run --prompt-name 定期执行依赖更新、测试和开 PR
  6. 偏好持久化开发环境的用户,容器可跨重启保留已安装的包并随时恢复会话历史

这个 Agent 有哪些优点和局限?

优点
  • 提供完整 OS 系统容器而非受限沙箱:代理拥有 root、systemd 和原生 Docker,可装包、跑服务、用 cron,宿主机文件属主正确无需 chown
  • 主动防御而非仅被动隔离:内核级(nftables)实时检测反向 shell、C2、数据外泄、DNS 隧道和凭证扫描,HIGH 自动暂停、CRITICAL 自动终止
  • 凭证安全模型清晰:SSH 密钥、.env、host 环境变量默认不进入容器,需共享时用 socket 转发或短寿命 token 而非直接挂载
  • 多个代理可并行隔离运行同一项目,每个 slot 独立 home 目录;工作区文件与会话历史始终持久化可恢复
  • Profile 支持继承并内置 hardened 预设,覆盖较弱的全局配置,审查不信任代码零配置可用
局限
  • 依赖 Incus,要求 Linux 宿主机;macOS 仅能通过 Colima/Lima 间接使用,Windows 未提及支持
  • 首次 coi build 需 5–10 分钟构建基础镜像,且用户需自行维护 Incus 安装
  • 无头 prompt 模式目前仅支持 claude 工具且必须 permission_mode = "bypass";Aider 和 Cursor 尚未支持
  • 主动防御的自动化终止意味着代理可能被误杀中断工作流,用户需要理解威胁分级与网络模式(restricted/allowlist/open)的权衡
  • README 中未提供性能基准或威胁检测误报率的量化数据,效果需自行评估

如何安装或部署这个 Agent?

要求 Linux 并已安装 Incus(macOS 可通过 Colima/Lima,参见 wiki 的 macOS Setup Guide)。安装:curl -fsSL https://raw.githubusercontent.com/mensfeld/code-on-incus/master/install.sh | bash。首次构建基础镜像(约 5–10 分钟):coi build。随后在任意项目目录运行 coi shell 即可开始。

如何使用这个 Agent?

在项目目录运行 coi shell 进入默认(Claude Code)交互会话。在 ~/.coi/config.toml 或项目内 .coi/config.toml 中配置工具(如 [tool] name = "codex")与 permission_mode(bypass 自主 / interactive 询问)。常用命令:coi run -- npm test(沙箱内执行任意命令并透传退出码)、coi run --prompt "..."(无头执行提示词)、coi run --prompt-name nightly(执行配置中 [prompts] 表内的命名提示词,可配合 crontab 定时)、coi shell --profile rust-dev(按 profile 启动)、coi shell --profile hardened(最强加固预设)、coi monitor(实时安全面板)、coi top(容器资源监控)、coi attach(接入运行中会话)、coi audit(流式威胁事件日志)、coi shutdown / kill / clean(容器管理)。

这个 Agent 与同类方案有什么区别?

README 自带对比表:相比 Docker 沙箱方案,code-on-incus 默认凭证隔离、提供内核级(nftables)实时威胁检测与反向 shell/外泄的自动终止/暂停响应、三种网络隔离模式和 JSONL 审计日志,而 Docker 沙箱仅部分凭证隔离且无这些能力;相比直接在裸机运行,裸机无任何隔离与检测。作者选择 Incus(LXD 的现代分支)系统容器而非 Docker 应用容器,以获得完整 init 系统和秒级启动。

常见问题

支持哪些 AI 工具?
README 明确支持 Claude Code(默认)、Codex CLI、opencode、pi 和 omp(Oh My Pi),通过配置或 profile 选择;Aider 和 Cursor 官方表示即将支持。
代理能拿到我的 SSH 密钥或环境变量吗?
默认不能。SSH 密钥、.env 文件、Git token 和宿主机环境变量不会进入容器,除非显式挂载;需要授权时建议转发宿主 socket 或按会话铸造短寿命 token。
我的工作会丢失吗?
不会。无论选择临时(退出即删)还是持久容器,工作区文件和会话历史始终保存回宿主机,可用 --resume/--continue 恢复完整对话历史。
威胁检测误杀了正在工作的代理怎么办?
coi 的策略是 HIGH 威胁自动暂停、CRITICAL 自动终止,用户可通过 coi audit 查看 JSONL 事件日志排查原因,并通过网络模式(restricted/allowlist/open)和 profile 调整严格程度。
成本如何?
项目本身是 MIT 开源工具,无订阅费用;运行成本主要是宿主机资源和容器内 AI 工具自身的 API 费用。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents