Settings and permissions
各种配置
各种配置 这一页讲的,就是 各种配置 这件事在 Claude Code 里到底怎么用。
页面信息
这页不是官方原文,而是顺着官方文档结构做的中文解释版。命令、参数、配置名这些硬东西尽量保留,解释部分则尽量讲成人能照着做的话。
如果你碰到特别敏感的配置、权限或企业环境差异,最好顺手点上面的“查看原始文档”再核一遍。
这一页先讲明白
设置页讲的是 Claude Code 身上那些旋钮和挡位到底怎么拧。
重点不是都去改,而是知道哪些配置会真正影响你的手感和安全边界。
像一台拖拉机,不只是会不会点火,还要知道档位、限速器、油门和刹车分别在哪儿。
配置页就是让你分清“个人习惯”“项目规则”“临时试验”三类设置。
个人口味放全局,项目规则放仓库,临时试验用命令行参数覆盖。
权限类设置宁可先收紧,再按需要慢慢放开。
Documentation Index
这里不是让你背"Documentation Index"这个词,而是让你看它真干活时怎么使。
Configuration scopes
这一块主要是在说"Configuration scopes"真到手上该怎么用,哪里最容易踩坑。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Available scopes
这里不是让你背"Available scopes"这个词,而是让你看它真干活时怎么使。
When to use each scope
When to use each scope 到底什么时候值得上,这一段就是在算这笔账。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
How scopes interact
这一段更像在讲判断条件,什么时候该上,什么时候先别急。把触发条件看清,比背标题更重要。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
What uses scopes
这一块主要是在说"What uses scopes"真到手上该怎么用,哪里最容易踩坑。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Settings files
这段看着像个标题,其实是在说"Settings files"管到哪儿。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Settings files
这会儿轮到改配置了,字段名和关键字别自己乱换。
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)",
"Read(~/.zshrc)"
],
"deny": [
"Bash(curl *)",
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp"
},
"companyAnnouncements": [
"Welcome to Acme Corp! Review our code guidelines at docs.acme.com",
"Reminder: Code reviews required for all PRs",
"New security policy in effect"
]
} Available settings
这里不是让你背"Available settings"这个词,而是让你看它真干活时怎么使。
如果你看到环境变量或 settings.json,意思通常都是:这不是会话里临时喊一声就行,而是要把开关真正写进环境或配置。
Global config settings
这一段主要是在把"Global config settings"讲实,不是只摆个标题给你看。
看这段时要特别盯工具和权限边界,别为了省事一把全开。
Worktree settings
这一段是在把 how --worktree creates and manages git worktrees. 配起来、配稳当。你主要盯住在哪儿改、怎么写、改完怎么看它真生效。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Permission settings
这里不是让你背"Permission settings"这个词,而是让你看它真干活时怎么使。
Permission rule syntax
看到这里,就别靠猜了,字段、格式和写法都得按说明来。
看这段时要特别盯工具和权限边界,别为了省事一把全开。
Sandbox settings
这一段是在把 advanced sandboxing behavior. Sandboxing isolates bash commands from your filesystem and network. See Sandboxing for details. 配起来、配稳当。你主要盯住在哪儿改、怎么写、改完怎么看它真生效。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Sandbox settings
这会儿轮到改配置了,字段名和关键字别自己乱换。
{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true,
"excludedCommands": ["docker *"],
"filesystem": {
"allowWrite": ["/tmp/build", "~/.kube"],
"denyRead": ["~/.aws/credentials"]
},
"network": {
"allowedDomains": ["github.com", "*.npmjs.org", "registry.yarnpkg.com"],
"deniedDomains": ["uploads.github.com"],
"allowUnixSockets": [
"/var/run/docker.sock"
],
"allowLocalBinding": true
}
}
} Attribution settings
这里不是让你背"Attribution settings"这个词,而是让你看它真干活时怎么使。
Attribution settings 1
下面这块是这一段最值钱的原文样板,先对着看一眼。
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Attribution settings 2
下面这块是这一段最值钱的原文样板,先对着看一眼。
🤖 Generated with [Claude Code](https://claude.com/claude-code) Attribution settings 3
光知道意思还不够,这里得把规矩落进配置里,下面这块照着填。
{
"attribution": {
"commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
"pr": ""
}
} File suggestion settings
这一段是在把 a custom command for @ file path autocomplete. The built-in file suggestion uses fast filesystem traversal, but large monorepos may benefit from project-specific indexing such as a pre-built file index or custom tooling. 配起来、配稳当。你主要盯住在哪儿改、怎么写、改完怎么看它真生效。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
File suggestion settings 1
想把这条规矩固定住,就把下面这块老老实实写进去。
{
"fileSuggestion": {
"type": "command",
"command": "~/.claude/file-suggestion.sh"
}
} File suggestion settings 2
想把这条规矩固定住,就把下面这块老老实实写进去。
{"query": "src/comp"} File suggestion settings 3
看到这里,别光点头,下面这条命令先跑起来再说。
src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx File suggestion settings 4
看到这里,别光点头,下面这条命令先跑起来再说。
#!/bin/bash
query=$(cat | jq -r '.query')
your-repo-file-index --query "$query" | head -20 Hook configuration
这一块主要是在说"Hook configuration"真到手上该怎么用,哪里最容易踩坑。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Hook configuration 1
想把这条规矩固定住,就把下面这块老老实实写进去。
{
"allowedHttpHookUrls": ["https://hooks.example.com/*", "http://localhost:*"]
} Hook configuration 2
想把这条规矩固定住,就把下面这块老老实实写进去。
{
"httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]
} Compute managed settings with a policy helper
这段看着像个标题,其实是在说"Compute managed settings with a policy helper"管到哪儿。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Compute managed settings with a policy helper
这会儿轮到改配置了,字段名和关键字别自己乱换。
{
"managedSettings": {
"permissions": { "deny": ["Read(//etc/secrets/**)"] }
},
"claudeMd": "# Organization context\n...",
"appendSystemPrompt": "Always cite the internal style guide."
} Settings precedence
看到这里,就把"Settings precedence"当成一件真要上手的活来看。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Verify active settings
这一段就是验收,看它到底有没有真的通。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Key points about the configuration system
看到这里,就把"Key points about the configuration system"当成一件真要上手的活来看。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
System prompt
看到这里,就把"System prompt"当成一件真要上手的活来看。
Excluding sensitive files
这一段主要是在把"Excluding sensitive files"讲实,不是只摆个标题给你看。
看这段时要特别盯工具和权限边界,别为了省事一把全开。
Excluding sensitive files
这会儿轮到改配置了,字段名和关键字别自己乱换。
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Read(./config/credentials.json)",
"Read(./build)"
]
}
} Subagent configuration
这一块主要是在说"Subagent configuration"真到手上该怎么用,哪里最容易踩坑。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Plugin configuration
看到这里,就把"Plugin configuration"当成一件真要上手的活来看。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Plugin settings
这一段主要是在把"Plugin settings"讲实,不是只摆个标题给你看。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Plugin settings 1
这会儿轮到改配置了,字段名和关键字别自己乱换。
{
"enabledPlugins": {
"formatter@acme-tools": true,
"deployer@acme-tools": true,
"analyzer@security-plugins": false
},
"extraKnownMarketplaces": {
"acme-tools": {
"source": {
"source": "github",
"repo": "acme-corp/claude-plugins"
}
}
}
} Plugin settings 2
这会儿轮到改配置了,字段名和关键字别自己乱换。
{
"enabledPlugins": {
"code-formatter@team-tools": true,
"deployment-tools@team-tools": true,
"experimental-features@personal": false
}
} Plugin settings 3
这会儿轮到改配置了,字段名和关键字别自己乱换。
{
"extraKnownMarketplaces": {
"acme-tools": {
"source": {
"source": "github",
"repo": "acme-corp/claude-plugins"
}
},
"security-plugins": {
"source": {
"source": "git",
"url": "https://git.example.com/security/plugins.git"
}
}
}
} Plugin settings 4
这会儿轮到改配置了,字段名和关键字别自己乱换。
{
"extraKnownMarketplaces": {
"team-tools": {
"source": {
"source": "settings",
"name": "team-tools",
"plugins": [
{
"name": "code-formatter",
"source": {
"source": "github",
"repo": "acme-corp/code-formatter"
}
}
]
}
}
}
} Managing plugins
这一段是在说怎么用 the /plugin command 去做 manage plugins interactively:。看这种内容,光知道名字没用,还是得落到手上。
如果你打算把外接能力往里挂,这里提到的 hooks、MCP、skills、memory 都要分清各自负责哪一摊。
Environment variables
这里不是让你背"Environment variables"这个词,而是让你看它真干活时怎么使。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
Tools available to Claude
看到这里,就把"Tools available to Claude"当成一件真要上手的活来看。
看这段时要特别盯工具和权限边界,别为了省事一把全开。
See also
这一段主要是在把"See also"讲实,不是只摆个标题给你看。
这里还牵扯作用域,意思就是这条规则到底管当前项目、你个人,还是只管这一趟会话。
照着做一遍
第一次碰设置,不用想着一口气全懂。
先抓三层:个人习惯、项目规则、临时覆盖,分清这三层就已经赢一半。
第 1 步:先改全局习惯
像个人偏好这种,先放你自己的全局配置里。
~/.claude/settings.json 第 2 步:团队规矩写进项目配置
凡是大家都得守的规则,才值得进仓库。
.claude/settings.json 第 3 步:临时试验就走临时参数
别为了试一个想法,把长期配置改乱。
claude --model some-model 第 4 步:改完马上核对有没有生效
配置最怕“你以为改了,其实没吃到”。
Use /config to review the current effective settings. 一眼看懂这一页
这页的作用,就是把原本偏专业的话题,拆成能直接照着走的明白话。
各种配置
|
v
各种配置 这一页讲的,就是 各种配置 这件事在 Claude Code 里到底怎么用。
|
v
照着步骤去做 文末提醒
这站会按官方 docs 的导航和内容变化继续重生成,原站加页、删页、改页时,这里会跟着更新。
人话解释会尽量顺着原页往下讲,但命令、参数名、配置名这些硬东西还是保留原样,免得你抄过去跑不起来。