沙箱、记忆与上下文设置
sandbox.*(文件系统、网络、凭证)与自动压缩、自动记忆、CLAUDE.md 注入、检查点、Skill 清单预算等设置。
作用域缩写:任何文件 = 用户/项目/本地/托管任一处。沙箱的整体机制见沙箱。
沙箱
sandbox 是一个对象,把 Bash 命令与你的文件系统和网络隔离(macOS、Linux、WSL2),不设则命令不在沙箱里运行。
| 键 | 作用域 | 说明 |
|---|---|---|
sandbox.enabled | 任何文件 | 在 macOS、Linux 和 WSL2 上开启 Bash 沙箱(默认 false) |
sandbox.failIfUnavailable | 任何文件 | 沙箱无法启动时拒绝启动,而不是不带沙箱运行(默认 false) |
sandbox.autoAllowBashIfSandboxed | 任何文件 | 沙箱内的命令不经权限提示就运行(默认 true) |
sandbox.excludedCommands | 任何文件 | 列出 Claude Code 可以在沙箱之外运行的命令(命令模式数组) |
sandbox.allowUnsandboxedCommands | 任何文件 | 让 Claude 在命令被阻止后到沙箱外重试,或禁止这样做(默认 true) |
sandbox.enableWeakerNestedSandbox | 任何文件 | 在无特权容器里运行 Linux 沙箱(较弱的嵌套沙箱,默认 false) |
sandbox.enableWeakerNetworkIsolation | 任何文件 | macOS 上让 gh、gcloud、terraform 在沙箱内的 MITM 代理后验证 TLS(默认 false) |
sandbox.allowAppleEvents | 用户或托管 | 让沙箱内的命令在 macOS 上发送 Apple Events(默认 false) |
sandbox.ignoreViolations | 任何文件 | 对命令预期会探测的路径静默违规报告(命令子串到违规子串数组的映射) |
sandbox.bwrapPath | 仅托管 | 让沙箱指向 PATH 之外的 bubblewrap 二进制(必须是绝对路径) |
sandbox.socatPath | 仅托管 | 让沙箱代理指向 PATH 之外的 socat 二进制(必须是绝对路径) |
sandbox.ripgrep | 用户或托管 | 在沙箱内使用你自己的 ripgrep 二进制:含 command 路径和可选的前置 args |
sandbox.filesystem | 任何文件 | 控制沙箱内命令能读写哪些路径;含 allowWrite、denyWrite、denyRead、allowRead 数组,以及 allowManagedReadPathsOnly、disabled |
sandbox.filesystem.allowWrite | 任何文件 | 增加沙箱命令可写的路径(默认可写工作目录、每用户临时目录、--add-dir 添加的目录等) |
sandbox.filesystem.denyWrite | 任何文件 | 阻止沙箱命令写入特定路径 |
sandbox.filesystem.denyRead | 任何文件 | 阻止沙箱命令读取特定路径(默认保留读取权限,包括 ~/.aws/credentials 这类凭证文件) |
sandbox.filesystem.allowRead | 任何文件 | 在 denyRead 阻止的区域里重新开放读取 |
sandbox.filesystem.allowManagedReadPathsOnly | 仅托管 | 阻止开发者重新开放你组织已阻止的读取路径(默认 false) |
sandbox.filesystem.disabled | 用户或托管 | 关闭文件系统隔离但保留网络隔离(默认 false) |
sandbox.network | 任何文件 | 控制沙箱命令能到达哪些主机、端口和套接字;不设则没有预先允许的域名,新主机由权限模式决定 |
sandbox.network.allowedDomains | 任何文件 | 预先允许的域名(域名、通配模式或 IP 字面量,可带 :port),使沙箱命令不为它们提示 |
sandbox.network.deniedDomains | 任何文件 | 对沙箱命令阻止这些域名,即使在允许的通配之内 |
sandbox.network.allowManagedDomainsOnly | 仅托管 | 把网络允许列表锁定到托管设置(默认 false) |
sandbox.network.strictAllowlist | 用户或托管 | 拒绝允许列表之外的主机而不是提示(默认 false) |
sandbox.network.allowLocalBinding | 任何文件 | macOS 上让沙箱命令监听网络端口并连接 localhost(默认 false) |
sandbox.network.allowUnixSockets | 任何文件 | macOS 上沙箱命令可使用的 Unix 套接字路径列表(不设则全部阻止) |
sandbox.network.allowAllUnixSockets | 任何文件 | 让沙箱命令连接所有 Unix 套接字(默认 false) |
sandbox.network.allowMachLookup | 任何文件 | 让 macOS 沙箱工具(如 iOS 模拟器或 Playwright)到达它们的 XPC 服务(服务名数组) |
sandbox.network.httpProxyPort / socksProxyPort | 任何文件 | 通过你自己的代理路由沙箱的 HTTP / SOCKS 流量(本地 TCP 端口);不设则 Claude Code 运行自己的代理 |
sandbox.network.tlsTerminate | 用户或托管 | 让沙箱代理终止 TLS 以读取 HTTPS 请求(可选 caCertPath、caKeyPath) |
sandbox.credentials | 任何文件 | 隐藏或遮蔽沙箱内的凭证文件和变量:含 files、envVars、allowPlaintextInject、awsPairs、sigv4 |
sandbox.credentials.files | 任何文件 | 阻止或遮蔽沙箱内对某个凭证文件的读取(path 加 mode:"deny" 或 "mask") |
sandbox.credentials.envVars | 任何文件 | 在沙箱内取消设置或遮蔽某个环境变量(name 加 mode) |
sandbox.credentials.allowPlaintextInject | 用户或托管 | 让被遮蔽的凭证到达受信测试网络里的明文 HTTP 服务(默认 false) |
sandbox.credentials.awsPairs | 用户或托管 | 把自定义命名的 AWS 密钥变量关联成一个凭证用于重新签名(accessKeyIdVar、secretAccessKeyVar、可选 sessionTokenVar) |
sandbox.credentials.sigv4 | 用户或托管 | 选择流式、预签名或 SigV4A 的 AWS 请求是失败还是透传(streaming、presigned、sigv4a,各取 "deny" 或 "passthrough",默认全部 "deny") |
记忆与上下文
| 键 | 作用域 | 说明 |
|---|---|---|
autoCompactEnabled | 任何文件 | 关闭或开启自动压缩(默认 true) |
autoCompactWindow | 任何文件 | 设置上下文多满时 Claude Code 压缩,100000 到 1000000 token(上限为模型的上下文窗口);不设则选一个为你的模型调好的窗口 |
autoMemoryEnabled | 任何文件 | 关闭或开启自动记忆(默认 true) |
autoMemoryDirectory | 任何文件 | 把自动记忆存到你选择的目录(绝对路径或 ~/ 开头);不设则用 ~/.claude/projects/<项目>/memory/ |
claudeMd | 仅托管 | 通过托管设置注入组织级 CLAUDE.md 指令(像写文件一样写 Markdown 文本,换行用 \n) |
claudeMdExcludes | 任何文件 | 记忆加载时跳过特定 CLAUDE.md 文件(glob 或绝对路径数组) |
env | 任何文件 | 为每个会话及其子进程设置环境变量(变量名到字符串值的对象) |
bashOutputMaxChars | 任何文件 | 设置 Claude 内联收到的成功命令输出量,正整数,限制在 4000 到 128000 字符;不设则最多内联 30000 字符 |
fileCheckpointingEnabled | 任何文件 | 关闭或开启 /rewind 所恢复的文件快照(默认 true) |
plansDirectory | 任何文件 | 选择计划模式把计划文件写到哪里(相对项目根的路径);不设则用 ~/.claude/plans |
skillListingBudgetFraction | 任何文件 | 为 Skill 清单预留更多或更少上下文:大于 0 且不超过 1 的小数(默认 0.01,即上下文窗口的 1%) |
skillListingMaxDescChars | 任何文件 | 限制 Skill 清单里每个 Skill 描述的长度(默认 1536 字符) |
taskOutputMaxChars | — | 已在 v2.1.277 移除,连同它所调整的 TaskOutput 工具 |