☰
让/insights看见容器内会话:claude-code-devcontainer的devc sync快速实战教程
2026/10/23 4:05:48 网站建设 项目流程

【免费下载链接】claude-code-devcontainer

Sandboxed devcontainer for running Claude Code in bypass mode safely. Built for security audits and untrusted code review.

项目地址:https://gitcode.com/gh_mirrors/cl/claude-code-devcontainer
点击查看免费下载

claude-code-devcontainer是 Trail of Bits 打造的沙箱化 devcontainer,专为安全地在bypassPermissions模式下运行 Claude Code 而设计,常用于安全审计和不可信代码审查。它的 CLI 工具devc内置了sync子命令,可一键把容器内产生的 Claude Code 会话同步到宿主机,让/insights命令完整分析你的所有工作记录。本文带你从环境安装到devc sync全用法,一步步跑通整个流程。

为什么 /insights 看不见容器里的会话?

先理解痛点,才知道devc sync解决了什么。

Claude Code 的/insights命令会分析你的会话历史,但它只读取宿主机的~/.claude/projects/目录。而在 claude-code-devcontainer 中:

  • 容器通过CLAUDE_CONFIG_DIR环境变量把 Claude 的配置(含会话记录)指向/home/vscode/.claude,配置见 devcontainer.json;
  • 这个目录被挂载为独立 volume(devc-<项目名>-config-<容器ID>),容器重建也不会丢失,见 devcontainer.json 的mounts配置;
  • 会话.jsonl文件全部落在容器 volume 里,宿主机上的/insights完全看不到它们。

结果就是:你在多个项目容器里做了大量审计工作,/insights却只分析到宿主机上零星的会话。

💡devc sync就是为打通这道"墙"而生的:它把各容器里的会话日志拷贝到宿主机~/.claude/projects/,让/insights一次看全。

快速上手:3 步装好 devc 并启动容器

使用devc sync前,需要先按下面步骤准备好环境和至少一个 devcontainer。

前置条件

  • Docker 运行时(Docker Desktop、OrbStack 或 Colima 任选其一)
  • devcontainer CLI:
npm install -g @devcontainers/cli

安装 devc 命令行

git clone https://gitcode.com/gh_mirrors/cl/claude-code-devcontainer ~/.claude-devcontainer ~/.claude-devcontainer/install.sh self-install

self-install会把devc命令软链到~/.local/bin,确保该目录在 PATH 中。

启动项目容器

在目标项目目录中一条命令完成模板安装 + 容器启动:

devc .

进入容器和 Claude Code 干活:

devc shell # 打开容器内 shell

📌 完整的两种使用模式(按项目隔离 / 共享工作区)说明,见 README.md 的 Quick Start 章节。

devc sync 实战:4 个例子覆盖全部用法

示例 1:同步所有容器的会话

devc sync

执行时会先列出所有被发现的 devcontainer(运行中和已停止的都算),然后逐个拷贝会话:

[devc] Discovered devcontainers: - my-project (running) /home/user/my-project - crypto-audit (exited) /home/user/crypto-audit [devc] === my-project (running) === Host path: /home/user/my-project Container: 3f8a2c91d4be Sessions: 12 Synced 12 file(s) -> -devcontainer-my-project Total: 12 file(s) synced. [devc] Run '/insights' in Claude Code to include these sessions.

示例 2:按项目名同步指定容器

项目多了以后,只想同步某一个?直接传项目名做子串匹配:

devc sync crypto

只要容器对应的项目目录名包含crypto,就会被同步;不匹配的其他容器全部跳过。匹配失败时,命令会列出所有可用容器供你参考。

示例 3:跳过确认提示(--trusted)

默认情况下,devc sync会弹出一个安全确认,因为它把容器内文件拷贝到你的宿主机文件系统:

[devc] This copies files from devcontainers to your host filesystem. [devc] Only proceed if you trust the container contents. Continue? [y/N]

确认输入y即继续。如果你确定信任这些容器,可以加--trusted直接跳过:

devc sync --trusted devc sync crypto --trusted

这个确认逻辑在 install.sh 中实现,是刻意的安全设计,后面会展开讲。

示例 4:同步后在 /insights 中查看

同步完成后,回到宿主机的 Claude Code 里直接运行:

/insights

此时它会读取~/.claude/projects/下的全部会话——包括刚从容器同步过来的那些。

devc sync 的三大设计亮点:它是如何工作的?

了解原理能帮你更好地排障。核心实现位于 install.sh 的cmd_sync和 install.sh 的sync_one_container。

设计点实现方式好处
自动发现容器通过 Docker 标签devcontainer.local_folder过滤docker ps -a,见 install.sh无需记容器名/ID,运行中和已停止的容器都能找到
增量同步仅当目标文件不存在或源文件更新时拷贝([[ "$file" -nt "$dest_file" ]]),见 install.sh可安全重复执行,第二次起几乎秒完成
目录重命名归档容器内会话目录-workspace在宿主机重命名为-devcontainer-<项目名>,见 install.sh与宿主机会话清晰区分,绝不覆盖

补充两个细节:

  • 容器名自动提取:从devcontainer.local_folder标签取项目目录名(basename)作为显示名,实现见 install.sh;
  • 会话目录定位:优先读取容器环境里的CLAUDE_CONFIG_DIR,回退到/home/<用户>/.claude/projects,对停止状态的容器也有效(不依赖docker exec),见 install.sh。

安全提示:sync 是把容器内容"搬出来"的动作

由于 claude-code-devcontainer 常用来审查不可信代码,devc sync的默认确认提示非常重要:

⚠️ 你正在把一个可能运行过恶意代码的容器里的文件复制到宿主机。虽然会话文件是 Claude Code 自己生成的 JSONL 日志(风险很低),但安全审计流程中保持警惕是好习惯——这正是它默认要求手动确认、并提供--trusted显式豁免的原因,相关说明见 README.md 的 "Session Sync for /insights" 章节。

devc sync 常见问题速查

提示No devcontainers found (running or stopped)?你的容器不是由 devcontainer 工具创建的(缺少devcontainer.local_folder标签),或 Docker 守护进程未运行。用devc ./devc up启动的容器才可被发现。

提示No sessions found, skipping?该容器里还没有产生过 Claude Code 会话(.jsonl文件为 0 个),属于正常跳过,不是错误。

只想清理某个项目的容器资源?不要用docker rm手动删(会留下孤儿 volume),请使用:

devc destroy

完整命令清单:devc还提供up、rebuild、down、shell、exec、upgrade、mount、cp、template等子命令,全部用法可用devc help查看(源码见 install.sh 的print_usage)。

总结

claude-code-devcontainer 让 Claude Code 的"免确认"模式变得安全,而devc sync补上了最后一块拼图:

  1. devc sync— 一条命令,把运行中和已停止容器的会话全部同步到宿主机;
  2. devc sync <名称>— 按项目名子串过滤,精确同步;
  3. --trusted— 信任容器内容时跳过确认,适合脚本化场景;
  4. 同步后运行/insights,获得跨容器、跨项目的完整工作洞察。

增量同步机制让它可以放心地挂到日常流程里——比如每次收工前跑一次devc sync,你的/insights将永远拥有全量视角。

【免费下载链接】claude-code-devcontainer

Sandboxed devcontainer for running Claude Code in bypass mode safely. Built for security audits and untrusted code review.

项目地址:https://gitcode.com/gh_mirrors/cl/claude-code-devcontainer
点击查看免费下载
上一篇:仓颉 stdx.compress.tar 归档库实战:V7/USTAR/PAX/GNU 四种格式、Tar/TarReader/TarWriter 核心 API 与安全解压指南
下一篇:ECDICT 英汉词典数据库完全指南:CSV 数据格式、词形变化与 stardict.py 编程接口实战

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询