命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
为 Claude 添加额外的工作目录以读写文件
--add-dir <directories>claude --add-dir ../apps ../lib--add-dir 是 Claude Code CLI 的启动 flag,作用是让 Claude 除了当前工作目录之外,还能读写额外指定的目录。官方文档原文:
Add additional working directories for Claude to read and edit files. Grants file access; Claude Code doesn't discover most
.claude/configuration from these directories. Validates that each path exists as a directory. You can't add most network paths, such as\\server\share.
接受值:一个或多个目录路径(可以是相对路径或绝对路径),支持一次传入多个。
claude --add-dir ../apps ../lib
官方示例即为上例:一次性添加 ../apps 和 ../lib 两个目录。
会话中途也可以用等价的斜杠命令动态添加目录(无需重启会话):
/add-dir ../other-project
官方 slash-commands 文档提到:
When you add a directory with
--add-diror/add-dir, Claude Code loads the skills in that directory's.claude/skills/, along with its.claude/commands/and.claude/agents/.
并补充"要更早加载它们,对子目录路径运行 /add-dir,需要 Claude Code v2.1.257 或更高版本"——这个版本号来自该官方文档页面。
要跨会话持久生效,对应的 settings.json 字段是 permissions.additionalDirectories:
{
"permissions": {
"additionalDirectories": ["../apps", "../lib"]
}
}
官方 settings-reference 对该字段的描述是:"Give Claude file access to directories outside the current one"。目前没有找到对应的独立环境变量。
| flag | env | settings.json |
|---|---|---|
--add-dir <dirs> | 未发现对应环境变量 | permissions.additionalDirectories(字符串数组) |
| 约束 | 原因 |
|---|---|
| 路径必须存在且是目录 | 官方文档:"Validates that each path exists as a directory" |
不支持大多数网络路径(如 \\server\share) | 官方文档明确列出这一限制 |
不会自动发现被加目录里的大多数 .claude/ 配置(如 CLAUDE.md、权限规则) | 官方文档:"doesn't discover most .claude/ configuration from these directories" |
会加载被加目录 .claude/skills/、.claude/commands/、.claude/agents/ 中的内容(v2.1.257+ 通过 /add-dir 可更早加载子目录) | 官方 slash-commands 文档单独说明,与上一条"不发现配置"是两个不同范畴(前者指 CLAUDE.md/权限规则,后者指 skills/commands/agents) |
--add-dir 只对当次会话生效,重启会话后需要重新指定;如果想要每次启动都自动生效,需要写进 settings.json 的 permissions.additionalDirectories,而不是依赖 flag。CLAUDE.md 或权限规则——这点和"添加一个新的工作区"直觉不同,容易误以为该目录的项目级配置也会一并生效。修复了 `--add-dir` 的 skills 和 manifests 在 managed `allowManagedPermissionRulesOnly` 下预批准自身工具的问题
修复了 CLAUDE.md 被发送两次的问题
拒绝网络路径(UNC shares、`/net/<host>` automounts)
修改 `--add-dir` flag 以支持从添加的目录中读取 `enabledPlugins` 和 `extraKnownMarketplaces` 配置
改进参数自动加载额外目录中定义的 skills
支持通过 --add-dir 标志从指定目录加载 CLAUDE.md 文件
新增 CLI 参数用于指定额外的工作目录