---
title: "Claude 基本配置选项详解"
description: "配置分三层：项目记忆文件管项目，用户设置管个人偏好，命令行参数管一次性覆盖；再讲模型档位、权限白名单与输出格式。"
updated: 2026-11-13
canonical: https://docai.cc/learn/basic-configuration-options/
markdown_mirror: https://docai.cc/learn/basic-configuration-options.md
---
## 配置分三层，优先级要记清

同一个工具，配置可能来自三个地方。冲突时，越靠近当前项目的层级越优先。

| 层级 | 放什么 | 生效范围 |
|---|---|---|
| 项目记忆文件 | 这个项目怎么跑、哪里不能碰、代码风格 | 当前项目 |
| 用户级设置 | 默认模型、界面主题、常用放行项 | 当前系统用户的所有项目 |
| 命令行参数 | 一次性的临时覆盖 | 本次启动 |

新手常把三样混在一起：把项目细节塞进用户设置，换个仓库就全部失效；或者把个人偏好写进项目文件，提交后影响整个团队。先想清楚「这条规则属于谁」，再决定放哪。

## 项目记忆文件：写给工具的说明书

在项目根目录放一份名为 `CLAUDE.md` 的纯文本记忆文件。每次在这个目录启动，它都会被读入。内容不需要长，但四类信息必须有：

1. 怎么装依赖、怎么启动、怎么跑测试；
2. 哪些目录或文件不许改；
3. 代码风格与提交前检查；
4. 这个项目特有的坑。

一个够用的骨架：

```markdown
# 项目说明

### 运行
- 安装依赖：<命令>
- 本地启动：<命令>
- 测试：<命令>

### 不要碰
- 环境变量文件与任何密钥
- 数据库迁移目录
- 生成产物目录

### 约定
- 提交前先跑测试与静态检查
- 新逻辑必须带测试
```

写命令时给出完整可复制的形式，别写「跑一下测试」这种模糊描述。工具需要的是能直接执行的字符串，不是意图。

子目录里也可以再放一份，用来补充该目录的专属规则，例如前端组件规范、后端接口约定。上层文件仍然生效，下层只做增量说明。

## 用户级设置与模型档位

用户级设置是 `~/.claude/settings.json` 这个 JSON 文件（Windows 上在用户目录的 `.claude` 文件夹里）。多数时候不用手改，用会话里的命令调整即可。常见项就三类：默认模型、主题、权限偏好。

模型不要只记名字，要记档位差异：

| 档位 | 特点 | 适合 |
|---|---|---|
| Haiku | 最快、最省 | 改名、格式化、简单问答 |
| Sonnet | 速度与质量平衡 | 日常改代码、写测试、读报错 |
| Opus | 推理更强、更慢 | 架构设计、疑难缺陷、跨模块重构 |

用 `/model` 临时切换；用启动参数做一次性指定；要长期改默认值，写进用户设置。追新没有意义，按任务选档位更省时间。

## 权限：把确认留给危险操作

默认模式下，读文件之外的每个动作都会停下来问你。天天重复批准同一条测试命令很烦，全部放开又太危险，折中的做法是列白名单：

- 只读命令、测试命令、构建命令可以放行；
- 删除、推送、部署、改数据库必须保留确认；
- 密钥与环境文件永远不交给自动执行。

团队里把这份清单写进项目设置，跟着仓库走，新人拉下来就是一致的行为。完全跳过确认的模式只适合一次性容器或隔离的流水线，不要在日常开发机上开。

## 输出格式与附加指令

脚本里调用时（用 `-p` 或非交互模式），输出格式要选对：给人看用默认的富文本，写日志用纯文本，交给程序解析用 JSON。格式选错，后面要么解析失败，要么日志里全是控制字符。

需要长期固定的偏好，例如「注释一律用中文」「先给结论再给理由」，可以写进用户级记忆；只对某次任务生效的要求，直接写在提示里。附加指令要短，堆十几条互相冲突的规则，模型只会挑一部分执行。档位之间的差异不必死记，按任务选型的思路可以看[模型怎么选](/learn/choose-a-model/)。

## 改完怎么验证

三项检查足够：

```bash
claude
# 进入会话后输入
/status
```

先看状态页里的模型与配置来源；再问它一句「这个项目跑测试用哪条命令」，答案应与你写的一致；最后跑一个真实的小任务，观察它有没有避开你标注的禁区。

配置不是一次写完就结束。项目换构建工具、加新目录、改测试框架时，回头更新那份记忆文件；过期的说明比没有说明更容易误导。

下一步把它接到真实的开发环境里：让它能跑命令、读日志、按你的工作流协作，见[把本地环境接进来](/learn/connect-local-dev-environment/)。
