为什么需要这个#

在上一课中,我们学习了如何通过 CLAUDE.md 给 Claude 指令。但 Claude Code 还有另一种强大的管理方式——设置文件(settings)。它们控制的不是 Claude 做什么,而是它如何工作:可以使用哪些工具、运行哪些命令、遵守哪些限制。

如果 CLAUDE.md 是"行为规则",那么 settings 就是"安全法规和技术参数"。

什么是 settings.json#

settings.json 是一个 JSON 格式的文件,存储 Claude Code 的技术设置。

💡 JSON(读作"杰森")是一种数据记录格式,类似于列表。数据写在花括号 {} 中,每个设置是一对"名称: 值"。

示例:

{
  "permissions": {
    "allow": ["Read files", "Write files"],
    "deny": ["Delete files"]
  }
}

这相当于说:“允许读取和创建文件,但不允许删除。”

设置层级#

与 CLAUDE.md 一样,设置也存在于多个层级。以下从最广泛到最窄排列:

层级 文件位置 适用对象 可以覆盖?
托管级(Managed) 系统文件夹 计算机所有用户 不可以,最高优先级
用户级(User) ~/.claude/settings.json 您,在所有项目中 可以,被更窄的覆盖
项目级(Project) .claude/settings.json 整个项目团队 可以,被本地级覆盖
本地级(Local) .claude/settings.local.json 仅限您,在此项目中 可以,仅被托管级覆盖

💡 规则很简单:范围越窄,优先级越高。本地设置"胜过"项目设置,项目设置"胜过"用户设置。

如何打开设置#

最简单的方式是在 Claude Code 中使用命令:

/config

将打开设置界面,可以查看和修改所有内容。

分步指南:配置权限#

步骤1:创建设置文件夹#

在项目根目录创建 .claude 文件夹(以点开头):

mkdir .claude

步骤2:创建设置文件#

创建文件 .claude/settings.json

{
  "permissions": {
    "allow": [
      "Read",
      "Edit",
      "Bash(npm test)",
      "Bash(npm run build)"
    ],
    "deny": [
      "Bash(rm *)"
    ]
  }
}

我们做了什么:

  • 允许 Claude 读取和编辑文件
  • 允许运行测试和构建
  • 禁止使用 rm 命令删除文件

步骤3:个人设置#

创建文件 ~/.claude/settings.json 用于您的个人偏好:

{
  "preferences": {
    "theme": "dark",
    "language": "zh"
  }
}

设置示例#

新手安全模式#

{
  "permissions": {
    "allow": [
      "Read"
    ],
    "deny": [
      "Bash",
      "Edit"
    ]
  }
}

Claude 只能读取文件——不会修改或运行任何东西。在您刚开始了解项目时很方便。

开发工作模式#

{
  "permissions": {
    "allow": [
      "Read",
      "Edit",
      "Bash(npm *)",
      "Bash(git status)",
      "Bash(git diff)"
    ]
  }
}

Claude 可以读取、编辑、运行 npm 命令和查看 Git 状态。

可以配置什么#

设置 功能 示例
permissions.allow 允许的操作列表 ["Read", "Edit"]
permissions.deny 禁止的操作列表 ["Bash(rm *)"]
env 环境变量 {"NODE_ENV": "development"}

CLAUDE.md 和 settings.json 的区别#

CLAUDE.md settings.json
格式 自由文本 严格的 JSON
存储内容 指令、规则、上下文 权限、技术参数
谁来读取 Claude(作为建议) Claude Code 系统(作为严格规则)
可以违反? Claude 可能偏离建议 不可以,系统严格遵守

建议#

  • ✅ 从用户设置开始——它们在所有地方生效
  • ✅ 团队协作使用项目设置(.claude/settings.json
  • ✅ 本地设置(.local.json)不会进入 Git——用于个人实验
  • ⚠️ 小心权限设置:最好从最小权限开始,按需添加

课程总结#

  • settings.json 管理 Claude Code 的技术参数:权限、环境、行为
  • 有4个层级的设置:托管级 → 用户级 → 项目级 → 本地级
  • 范围越窄的设置优先级越高
  • /config 命令打开方便的设置界面
  • settings.json 是严格规则(系统不会违反),CLAUDE.md 是建议(Claude 可以灵活调整)