Claude Code 斜杠命令(七):项目配置与权限管理

系列目录

  1. (一)快速入门——最常用的基础命令
  2. (二)对话管理——让你的会话有条不紊
  3. (三)上下文管理——不让 Token 成为瓶颈
  4. (四)代码审查三剑客
  5. (五)模型与推理控制
  6. (六)并行工作与后台 Agent
  7. (七)项目配置与权限管理(本文)
  8. (八)研究、规划与 CI/CD 集成

# 项目配置与权限管理 ## 权限管理 - /permissions 三档:allow/ask/deny - /fewer-permission-prompts 自动优化 - 配置提交 Git 团队共享 ## MCP 工具接入 - /mcp 连接外部服务 - 数据库/GitHub/Slack 等 - OAuth 或 API Key 认证 ## 自动化钩子 - /hooks 查看已注册钩子 - PreToolUse / PostToolUse / Stop ## 目录扩展 - /add-dir 追加可访问目录 - 跨仓库联动修改 ## 沙箱隔离 - /sandbox 隔离 shell 执行 - 防止不信任脚本影响主机 ## 界面个性化 - /theme 配色主题 - /statusline 状态栏信息 - /keybindings 快捷键 - /tui 布局模式

配置一个顺手的 Claude Code 环境,是提升 AI 协作效率的隐形杠杆。许多团队在首次使用时跳过了权限和工具配置,结果每次执行命令都要手动确认,MCP 服务器也从未接入——白白浪费了 Claude 访问真实数据的能力。本文逐一拆解那些"配置类"斜杠命令,帮你把环境搭对、省掉重复操作。

/permissions:三级权限,精准管控

/permissions 打开权限管理面板,让你决定 Claude 在执行各类操作时的自由度。权限分三档:

  • allow:无需确认,Claude 直接执行。适合你完全信任的操作,比如读取项目文件、运行测试命令。
  • ask:每次执行前弹窗询问。默认大多数写操作、网络请求处于此档,保留人工把关。
  • deny:硬性禁止,Claude 不会尝试执行。适合线上数据库写入、生产环境部署等高风险操作。
flowchart LR A["Claude 发起操作"] --> B{"权限档位?"} B -- allow --> C["直接执行"] B -- ask --> D["弹窗询问用户"] B -- deny --> E["拒绝执行"]

哪些操作默认需要手动授权?

典型场景包括:执行 shell 命令(Bash)、向文件系统写入(Write/Edit)、发起网络请求(WebFetch)。初次配置项目时,Claude 会逐条弹窗,新手往往感到烦躁。

减少弹窗:/fewer-permission-prompts

如果你发现某些操作被反复询问,可以运行 /fewer-permission-prompts。这条命令会扫描你的历史 transcript,识别高频的只读 Bash 调用和 MCP 工具调用,然后自动将它们加入项目 .claude/settings.json 的 allowlist。

团队协作场景:将团队公用的 settings.json 提交到 Git,所有成员拉取后就能共享相同的权限基线,不必各自反复授权。

// .claude/settings.json 示例片段
{
  "permissions": {
    "allow": ["Bash(git status)", "Bash(npm test)", "Read"],
    "deny": ["Bash(rm -rf *)"]
  }
}

/mcp:把真实世界的数据接进来

MCP 是什么?

MCP(Model Context Protocol)是 Anthropic 提出的开放协议,允许 Claude 通过标准接口连接外部服务——数据库、文件系统、API、代码仓库等。简单理解:MCP 服务器就是"给 Claude 装上眼睛和手",让它不仅能读写本地文件,还能直接查询 PostgreSQL、调用 GitHub API、搜索 Notion 文档。

常见 MCP 服务器举例

服务器 用途
@modelcontextprotocol/server-filesystem 访问本地或远程文件系统
@modelcontextprotocol/server-github 读写 GitHub Issues、PR、代码
@modelcontextprotocol/server-postgres 查询 PostgreSQL 数据库
@modelcontextprotocol/server-slack 读取 Slack 消息、发送通知

连接与 OAuth 认证流程

运行 /mcp 后,界面列出已配置的服务器及其状态(connected / disconnected / error)。对于需要 OAuth 的服务(如 GitHub、Google Drive),Claude 会生成授权链接,在浏览器完成登录后,token 自动写回配置,无需手动粘贴。

flowchart LR A["/mcp 打开面板"] --> B["选择服务器"] B --> C{"需要 OAuth?"} C -- 是 --> D["浏览器授权"] C -- 否 --> E["填写 API Key"] D --> F["Token 写入配置"] E --> F F --> G["服务器 connected"]

团队协作场景:后端团队在 settings.json 中配置了公司内网的 PostgreSQL MCP 服务器,开发者拉取配置后,Claude 就能直接查询测试库的表结构,无需每次手动粘贴 schema。

/hooks:自动化触发的钩子配置

/hooks 显示当前项目注册的所有 hook,以及它们绑定的触发时机。Hook 是在特定事件发生时自动执行的脚本或命令,比如:

  • PreToolUse:Claude 调用某个工具之前执行(适合做前置校验)
  • PostToolUse:工具调用完成后执行(适合格式化、日志记录)
  • Stop:Claude 完成回复时执行(适合发通知、更新状态)
flowchart LR A["PreToolUse 钩子"] --> B["工具执行"] B --> C["PostToolUse 钩子"] D["Claude 回复完成"] --> E["Stop 钩子"]

/hooks 本身是查看和入口命令,实际配置通过 /update-config 或直接编辑 settings.json 完成。常见用法:Claude 每次写完代码后自动跑 eslint --fix,或者在 Claude 停止时向 Slack 发一条完成通知。

/add-dir:打破单仓库的边界

默认情况下,Claude Code 只能访问启动时所在的项目目录。当你的工作横跨多个仓库时——比如前端在 ~/projects/web,后端在 ~/projects/api——/add-dir 允许你在运行时追加可访问目录,无需重启会话。

/add-dir ~/projects/api

执行后,Claude 可以同时读写两个目录下的文件,非常适合需要联动修改前后端接口的场景。注意:追加的目录受同样的权限规则约束,不会绕过 deny 设置。

界面个性化:四条命令速览

这四条命令不影响 Claude 的行为逻辑,但能让终端界面更顺眼、更高效:

  • /theme:切换配色主题(dark / light / system),适配不同显示器和光线环境。
  • /statusline:配置底部状态栏显示的信息,比如当前模型、token 用量、会话 ID。
  • /tui:控制终端 UI 的整体布局模式,部分终端环境下可切换紧凑视图。
  • /keybindings:自定义快捷键绑定,将常用命令映射到组合键,减少重复输入。

这些配置写入 ~/.claude/settings.json(用户级),不需要提交到项目仓库,属于个人偏好。

/sandbox:隔离执行,安全第一

/sandbox 启用沙箱模式,将 Claude 的 shell 命令执行限制在隔离环境中——通常基于容器或操作系统沙箱机制。在沙箱内:

  • 文件系统写入被限制在指定目录
  • 网络访问受策略管控
  • 进程无法影响宿主机状态

适用场景:

  1. 运行不受信任的依赖安装脚本:让 Claude 在沙箱里跑 npm installpip install,即使依赖包含恶意代码也不会影响本机。
  2. CI/CD 预演:在沙箱中模拟构建流程,验证脚本正确性再推到真实 CI 环境。
  3. 新人 onboarding:给刚加入项目的开发者开启沙箱,降低误操作风险。

注意:沙箱模式会带来一定性能开销,且部分需要访问本机服务的操作(如连接本地数据库)需要额外的网络配置才能在沙箱内正常工作。

项目初始配置清单

新项目开始时,建议按以下顺序完成配置:

  • 运行 /permissions,确认 allow / deny 列表符合项目安全要求
  • 将公共权限配置提交到 .claude/settings.json 并纳入 Git 管理
  • 运行 /mcp,接入项目所需的数据库或 API 服务器
  • 完成 MCP OAuth 授权(如需要)
  • 确认 /hooks 中的自动化钩子已正确注册
  • 如需跨仓库工作,提前规划 /add-dir 路径
  • 根据团队安全策略决定是否启用 /sandbox
  • 个人偏好:配置 /theme/keybindings/statusline
  • 运行 /fewer-permission-prompts 优化高频操作的授权体验

三个常见误区

误区一:把 deny 当成唯一安全手段。 deny 只阻止 Claude 主动调用,不能替代操作系统级别的权限控制。生产数据库的连接凭据不应出现在 Claude 可访问的配置文件里,这是更根本的防线。

误区二:MCP 服务器连接后就能用所有功能。 MCP 服务器的能力由服务器端实现决定。server-github 默认只开放读操作,写操作需要额外的 token scope 和权限配置,连上不等于全部可用。

误区三:/add-dir 会持久化到下次会话。 当前版本的 /add-dir 只在本次会话有效,下次启动 Claude Code 后需要重新添加。如果某个目录需要长期访问,应在项目的 CLAUDE.md 里说明,或通过配置文件固化。


配置类命令的价值往往在用了一段时间后才真正显现:权限弹窗少了、跨仓库跳转顺了、MCP 接入让 Claude 能直接回答"线上有多少活跃用户"这类问题。下一篇,我们进入系列的收尾章节,聚焦研究、规划与 CI/CD 集成——看 Claude Code 如何融入完整的工程交付流程。

实操清单

  • 执行 /permissions 配置 allow/ask/deny 列表
  • .claude/settings.json 权限配置提交 Git,供团队共享
  • 执行 /fewer-permission-prompts 减少高频只读操作的弹窗
  • 执行 /mcp 接入项目所需的数据库或 API 服务器
  • 完成 MCP 服务器的 OAuth 或 API Key 认证
  • 执行 /hooks 查看现有钩子,确认自动化触发规则正确
  • 跨仓库工作时用 /add-dir 追加目录(每次会话需重新添加)
  • 配置 /theme/keybindings/statusline 等个人偏好
  • 评估是否需要启用 /sandbox 隔离执行环境