Claude Code 新手配置指南:让它少问、多做
Claude Code 装完就能用,但默认配置偏保守——每个动作都来问你一遍。模型已经足够聪明,值得把缰绳放松一点。这页按「你想要什么」组织:每一项给确切的字段名和写法,全部在本机实测核对过。
速查:你想要什么
| 你想要 | 改哪里 | 怎么改 |
|---|---|---|
| 信任的命令别再问 | permissions.allow | settings.json 加白名单 |
| 改文件不用逐个确认 | acceptEdits 模式 | 会话内 Shift+Tab |
| 完全不问(隔离环境) | bypassPermissions | 风险边界见下文 |
| 它记住我的规矩 | CLAUDE.md | 全局 + 项目两层 |
| 固定用某个模型 | model 设置 | /model 或 settings |
| 接着昨天的会话干 | 会话恢复 | claude -c |
| 脚本里调用它 | 非交互模式 | claude -p |
第一件事:让它少问
「别问东问西,直接做」是配置 Claude Code 的第一诉求。正规做法有三层,按放权程度递增——推荐从第一层开始,大多数人到第二层就够了。
第 1 层 · 白名单:信任的命令不再询问#
- 做法
-
在 settings.json 的
permissions.allow里列出你信任的操作,命中的直接执行、不弹确认:~/.claude/settings.json{ "permissions": { "allow": [ "Bash(npm run *)", "Bash(git status)", "Bash(git diff *)", "Read(*)" ] } }Bash(npm run *)的*是前缀通配:npm run build、npm run test -- --watch都命中。只放你确认无害的前缀——比如放行git diff *而不是整个git *(后者连git push --force一起放了)。 - 为什么先用它
- 精确、可审计、可回收。你放行的每一条都写在文件里,哪天不放心删掉那行就收回来了。
第 2 层 · acceptEdits:文件编辑自动接受#
- 做法
-
会话内按 Shift+Tab 循环切换权限模式,切到 acceptEdits——文件的新建和修改不再逐个确认,其余操作(如 Bash)仍走正常询问。想长期生效就写进 settings:
.claude/settings.json{ "permissions": { "defaultMode": "acceptEdits" } } - 适合谁
- 代码全在 git 里的人。改错了
git diff一眼可见、随时可回滚——版本控制就是你的安全网。另有 plan 模式反向收紧:只读分析、先出计划不动手,适合让它先把方案想清楚。
第 3 层 · bypassPermissions:完全不问#
- 做法
- 启动时
claude --dangerously-skip-permissions,或 settings 里"defaultMode": "bypassPermissions"。所有权限检查跳过,任何命令直接执行。 - 风险边界
-
这个模式的名字里带着 dangerously,是认真的。它对删文件、改系统、发网络请求一视同仁地放行。官方定位是给隔离环境用的:Docker 容器、专用虚拟机、CI 沙箱——坏了就重建的环境。在存着你真实数据的主力机器上裸跑,等于把 shell 的钥匙整串交出去。想在团队里禁用它,settings 里有
disableBypassPermissionsMode开关。
让它记住你的规矩:CLAUDE.md
少问的另一半是少教——每次会话都重复交代口径,比确认弹窗更烦。CLAUDE.md 是每次会话自动读取的指示文件,两层:
| 位置 | 生效范围 | 放什么 |
|---|---|---|
~/.claude/CLAUDE.md | 你的所有项目 | 语言偏好、协作风格(如「结论先行、别铺垫」) |
项目根 CLAUDE.md | 当前仓库(可入 git,全队共享) | 构建/测试命令、代码规范、目录禁区 |
写法上最重要的一条:写成简短的规则列表,不要写成小说。它每次会话都占上下文,越长噪音越多。三类内容回报最高:固定口径(「注释用中文」)、常用命令(「测试跑 npm test,别用 yarn」)、禁区(「migrations/ 目录只读」)。
固定模型
| 方式 | 写法 | 适合 |
|---|---|---|
| 会话内切换 | /model 命令,从列表选 | 临时换着用 |
| 固定默认 | settings.json 加 "model": "..." | 长期偏好 |
| 环境变量 | ANTHROPIC_MODEL(优先级高于 settings) | 脚本/CI 里临时覆盖 |
| 单次会话 | claude --model <名称> | 一次性指定 |
模型名手输容易错版本号——在 /model 列表里选,或从 模型列表页照抄准确 id。
会话:恢复、压缩、清空
| 命令 | 作用 |
|---|---|
claude -c | 直接继续最近一次会话(最常用,别每次从零开始) |
claude --resume / 会话内 /resume | 从历史会话列表挑一个恢复 |
/compact | 把长会话的历史压缩掉,腾出上下文继续干(接近上限时也会自动触发) |
/clear | 彻底清空,开新会话——换任务时用它比继续旧会话更省更准 |
| Esc | 打断当前生成——它跑偏了不用等它说完 |
脚本里调用:非交互模式
# 执行一条指令,输出结果后退出
claude -p "总结这个目录里的 TODO"
# 结构化输出,给下游程序消费
claude -p "..." --output-format json
--output-format 支持 text / json / stream-json(只在 -p 模式下生效)。CI、定时任务、批处理管道都走这个。
settings.json 有三个,改哪个?
三层从高到低覆盖,权限规则多层叠加合并,单值字段(如 model)以高层为准:
| 优先级 | 文件 | 定位 |
|---|---|---|
| 高 | .claude/settings.local.json | 本机个人特例(不入 git) |
| 中 | .claude/settings.json | 项目团队共享(入 git) |
| 低 | ~/.claude/settings.json | 你的全局默认 |
经验法则:个人偏好放用户级,团队规范放项目级,「只有我这台机器需要」的放 local。
进阶三件套(一句话版)
- MCP 服务器:
claude mcp add -s user|project|local ...接外部工具(数据库、浏览器、内部系统),-s决定配置存哪层。 - Hooks:settings.json 的
"hooks"块,在工具调用前后挂自动化(如 PostToolUse 里跑 lint)——「每次改完文件自动格式化」这类需求归它。 - 状态栏:settings.json 的
statusLine可自定义底部状态栏显示的内容。
claude --help 与官方文档核实;配置项随版本演进,发现与你的版本不符时以 claude --help 实际输出为准。本页持续更新。
相关
- Claude Code 接入 9Coding——两个环境变量,先跑通再调优
- 报错排查手册——401 / 429 / 529 按错误码对号入座
- 用量与余额怎么查——控制台与 billing API