推荐给好友,福利领不停!好友同步开通最高 1000 万词元额度 · 后续消费分佣最高 30%。
+50万 Token生成链接配置 (settings.json)
CrabCode 的 JSON 配置文件,控制权限、环境变量、hooks、模型、插件等。
settings.json 决定 CrabCode 在当前用户/项目下的行为。按以下层级加载,后者覆盖前者:
- 用户级:
~/.crabcode/settings.json
- 项目级:
<repo>/.crabcode/settings.json(提交到 git,团队共享)
- 本地级:
<repo>/.crabcode/settings.local.json(不提交,个人覆盖)
- 托管/策略级:企业管理员下发,优先级最高
Windows 上用户级路径为 %USERPROFILE%\.crabcode\settings.json。
设置 CRABCODE_CONFIG_DIR 环境变量可改用户级根(默认 ~/.crabcode)。
settings.json 与运行时全局状态(~/.crabcode.json,例如 theme、登录信息、统计计数)是两个不同的文件。本页面只讲 settings.json。
/config 命令的"了解更多"链接
- 启动时
settings.json 字段校验失败的提示
- 安装某些 skill 或 plugin 后引导你加配置
{
"$schema": "https://json.schemastore.org/crabcode-settings.json",
"permissions": {
"defaultMode": "default",
"allow": ["Bash(npm test:*)"],
"deny": ["Bash(rm -rf:*)"],
"ask": ["WebFetch"],
"additionalDirectories": ["~/code/sibling-repo"]
},
"env": {
"DEBUG": "true",
"ACOSMI_BASE_URL": "https://api-staging.acosmi.com"
},
"hooks": {
"PreToolUse": [{ "matcher": "Bash", "hooks": [/* ... */] }]
},
"model": "deepseek-v4-flash",
"smallModel": "qwen3.6-plus",
"outputStyle": "default",
"cleanupPeriodDays": 30
}
{
"$schema": "https://json.schemastore.org/crabcode-settings.json",
"permissions": {
"defaultMode": "default",
"allow": ["Bash(npm test:*)"],
"deny": ["Bash(rm -rf:*)"],
"ask": ["WebFetch"],
"additionalDirectories": ["~/code/sibling-repo"]
},
"env": {
"DEBUG": "true",
"ACOSMI_BASE_URL": "https://api-staging.acosmi.com"
},
"hooks": {
"PreToolUse": [{ "matcher": "Bash", "hooks": [/* ... */] }]
},
"model": "deepseek-v4-flash",
"smallModel": "qwen3.6-plus",
"outputStyle": "default",
"cleanupPeriodDays": 30
}
下方表格按分组列出主要字段、类型与默认值。完整字段以 schema 校验为准(带上 $schema 行后大多数编辑器有补全)。
| 字段 | 类型 | 默认 | 说明 |
|---|
permissions.defaultMode | enum: default / acceptEdits / plan / bypassPermissions / dontAsk | default | 启动时默认权限模式,详见 iam |
permissions.allow | string[] | — | 允许规则数组,如 Bash(npm test:*) |
permissions.deny | string[] | — | 拒绝规则数组(优先级最高) |
permissions.ask | string[] | — | 始终弹确认的规则数组 |
permissions.additionalDirectories | string[] | — | 工作目录白名单之外可访问的目录 |
permissions.disableBypassPermissionsMode | "disable" | — | 禁用 bypassPermissions 模式(通常托管) |
| 字段 | 类型 | 默认 | 说明 |
|---|
model | string | deepseek-v4-flash | 主对话模型 ID |
smallModel | string | qwen3.6-plus | 用于 token 估算 / 压缩 / hooks / 搜索的轻量模型 |
alwaysThinkingEnabled | boolean | true | 在支持的模型上自动启用 thinking |
effortLevel | enum: low / medium / high | — | 持久化思考档位 |
fastMode | boolean | false | 启用 fast mode |
fastModePerSessionOptIn | boolean | false | fast mode 不跨会话保持 |
showThinkingSummaries | boolean | false | 在记录视图(Ctrl+O)显示 thinking 摘要 |
| 字段 | 类型 | 默认 | 说明 |
|---|
env | record[string,string] | — | 注入到 CrabCode 进程的环境变量;详见下方「env 覆盖矩阵」 |
apiKeyHelper | string | — | 输出鉴权值的脚本路径(stdout 即 token) |
awsCredentialExport / awsAuthRefresh | string | — | AWS 凭据导出/刷新脚本 |
gcpAuthRefresh | string | — | GCP 凭据刷新命令 |
otelHeadersHelper | string | — | OpenTelemetry header 输出脚本 |
| 字段 | 类型 | 默认 | 说明 |
|---|
hooks | object | — | 工具执行前后的 shell hook,详见 hooks |
disableAllHooks | boolean | false | 完全禁用 hooks 与 statusLine |
statusLine | { type: "command", command, padding? } | — | 自定义状态栏命令 |
allowedHttpHookUrls | string[] | — | HTTP hooks 允许的 URL 模式 |
httpHookAllowedEnvVars | string[] | — | HTTP hooks 可注入到请求 header 的环境变量名 |
| 字段 | 类型 | 默认 | 说明 |
|---|
enableAllProjectMcpServers | boolean | false | 自动批准本项目所有 .mcp.json 中的 MCP server |
enabledMcpjsonServers | string[] | — | .mcp.json server 白名单 |
disabledMcpjsonServers | string[] | — | .mcp.json server 黑名单 |
enabledPlugins | record[plugin-id@marketplace-id, bool/array] | — | 启用的插件清单 |
extraKnownMarketplaces | record[string, object] | — | 项目额外注册的 marketplace 源 |
pluginConfigs | record[string, object] | — | 单插件配置,按 plugin@marketplace 索引 |
| 字段 | 类型 | 默认 | 说明 |
|---|
includeCoAuthoredBy | boolean | true | commit 是否带 Co-Authored-By(已废弃,推荐用 attribution) |
attribution.commit | string | — | 自定义 commit attribution 文本(空字符串 = 不展示) |
attribution.pr | string | — | 自定义 PR 描述 attribution 文本 |
includeGitInstructions | boolean | true | 在 system prompt 中注入 commit / PR 工作流指引 |
worktree.symlinkDirectories | string[] | — | git worktree 创建时从主仓 symlink 的目录(如 node_modules) |
worktree.sparsePaths | string[] | — | 在大单仓中只 sparse-checkout 这些目录 |
defaultShell | enum: bash / powershell | bash | 输入框 ! 命令的默认 shell |
respectGitignore | boolean | true | 文件选择器是否遵循 .gitignore |
| 字段 | 类型 | 默认 | 说明 |
|---|
outputStyle | string | default | 助手回复风格,配合 /output-style |
language | string | — | 偏好语言(如 "japanese" / "spanish") |
syntaxHighlightingDisabled | boolean | false | 关闭 diff 的语法高亮 |
prefersReducedMotion | boolean | false | 减少动画(spinner shimmer、闪烁等) |
spinnerTipsEnabled | boolean | true | spinner 是否展示提示 |
spinnerVerbs | { mode: "append" / "replace", verbs: string[] } | — | 自定义 spinner 动词 |
spinnerTipsOverride | { excludeDefault?: bool, tips: string[] } | — | 覆盖 spinner 提示 |
terminalTitleFromRename | boolean | true | /rename 是否同步更新终端标签页标题 |
| 字段 | 类型 | 默认 | 说明 |
|---|
cleanupPeriodDays | int ≥ 0 | 30 | 聊天记录保留天数;设 0 完全关闭持久化 |
autoMemoryEnabled | boolean | — | 是否启用 auto-memory(项目记忆) |
autoMemoryDirectory | string | ~/.crabcode/projects/[sanitized-cwd]/memory/ | auto-memory 存储路径(可用 ~/ 前缀) |
autoDreamEnabled | boolean | — | 是否启用后台记忆合并(auto-dream) |
crabcodeMdExcludes | string[] | — | 排除加载的 CRABCODE.md glob 模式 |
| 字段 | 类型 | 默认 | 说明 |
|---|
autoUpdatesChannel | enum: latest / stable | latest | 自动更新通道 |
minimumVersion | string | — | 锁定最低版本,防止 stable 切换时降级 |
webSearch.provider | enum: ali / bocha | — | 本地搜索 provider(启用后由本地 API key 代替 OAuth) |
webSearch.ali.apiKey / endpoint / model | string | — | 阿里云 DashScope 搜索配置 |
webSearch.bocha.apiKey / endpoint | string | — | Bocha 搜索配置 |
| 字段 | 类型 | 默认 | 说明 |
|---|
customModel.provider | string (enum) | — | provider 类型;可选值参 /login → "自定义模型配置" 流程提示 |
customModel.baseUrl | string (URL) | — | API base URL(如 https://api.example.com/v1) |
customModel.apiKey / apiKeyHandle | string | — | API key(明文或安全存储句柄,二选一) |
customModel.models | record[alias, ModelDef] | — | 模型定义,含 id / contextWindow / maxOutputTokens / supportsThinking 等 |
托管 settings.json(policy 级)专属字段,优先级最高、组员无法覆盖。
| 字段 | 类型 | 说明 |
|---|
availableModels | string[] | 限定可选模型;接受 family 别名 / 版本前缀 / 完整模型 ID。空数组表示只允许默认模型 |
modelOverrides | record[string, string] | acosmi 规范模型 ID → provider 特定 ID 的映射(如 Bedrock inference profile ARN) |
allowManagedHooksOnly | boolean | 仅运行托管 hooks;用户/项目/本地 hooks 全忽略 |
allowManagedPermissionRulesOnly | boolean | 仅采用托管下发的 allow/deny/ask 规则 |
allowManagedMcpServersOnly | boolean | allowedMcpServers 只从托管读取(deniedMcpServers 仍合并) |
allowedMcpServers | object[] | MCP server 白名单(serverName / serverCommand / serverUrl 三选一) |
deniedMcpServers | object[] | MCP server 黑名单(高于白名单) |
strictPluginOnlyCustomization | boolean / ("skills" / "agents" / "hooks" / "mcp")[] | 锁定指定 surface 只允许通过 plugin 自定义 |
strictKnownMarketplaces | object[] | marketplace 源严格白名单(下载前校验) |
blockedMarketplaces | object[] | marketplace 源黑名单(下载前校验) |
forceLoginMethod | enum: acosmi / console | 强制登录方式 |
forceLoginOrgUUID | string | OAuth 登录使用的组织 UUID |
pluginTrustMessage | string | 插件信任提示中追加的自定义文案 |
companyAnnouncements | string[] | 启动时随机展示一条的企业公告 |
skipWebFetchPreflight | boolean | 跳过 WebFetch 黑名单预检(限受限网络环境) |
sshConfigs | object[] | 远程环境 SSH 连接预配置 |
env 字段里能放哪些变量是有边界的。下表为常用项:
| 变量 | 用途 |
|---|
ACOSMI_BASE_URL | Acosmi 网关地址(自托管 / staging) |
ACOSMI_API_KEY / ACOSMI_AUTH_TOKEN | Acosmi 直连鉴权 |
ACOSMI_MODEL | 主模型默认值(与 model 字段等价,env 优先) |
ACOSMI_DEFAULT_MODEL / ACOSMI_DEFAULT_FAST_MODE_MODEL / ACOSMI_DEFAULT_MAX_EFFORT_MODEL | 默认 / fast 档 / 最大档对应模型 |
ACOSMI_SMALL_FAST_MODEL | smallModel 默认值 |
CRABCODE_USE_BEDROCK=1 | 走 Amazon Bedrock 第三方 provider |
CRABCODE_USE_VERTEX=1 | 走 Google Vertex AI 第三方 provider |
CRABCODE_USE_FOUNDRY=1 | 走 Microsoft Foundry 第三方 provider |
ACOSMI_BEDROCK_BASE_URL / ACOSMI_VERTEX_BASE_URL / ACOSMI_FOUNDRY_BASE_URL | 各 provider 自定义 base URL |
VERTEX_REGION_[model-id] | 单模型 Vertex 区域路由(前缀匹配) |
BASH_DEFAULT_TIMEOUT_MS / BASH_MAX_TIMEOUT_MS / BASH_MAX_OUTPUT_LENGTH | Bash 工具默认/最大超时与输出长度 |
MCP_TIMEOUT / MCP_TOOL_TIMEOUT / MAX_MCP_OUTPUT_TOKENS | MCP 启动 / 工具调用超时;MCP 单次输出上限 |
CRABCODE_MAX_OUTPUT_TOKENS | 模型输出 token 上限 |
MAX_THINKING_TOKENS | thinking 预算上限 |
CRABCODE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 | Bash 工具保留项目 cwd(不跟着 cd 漂移) |
CRABCODE_DISABLE_NONESSENTIAL_TRAFFIC=1 | 关闭非必要遥测/分析请求 |
CRABCODE_DISABLE_TERMINAL_TITLE=1 | 禁止改写终端窗口标题 |
CRABCODE_IDE_SKIP_AUTO_INSTALL=1 | 跳过 IDE 自动安装提示 |
DISABLE_BUG_COMMAND=1 | 禁用 /bug |
DISABLE_FEEDBACK_COMMAND=1 | 禁用 /feedback |
DISABLE_TELEMETRY=1 | 关闭遥测上报 |
DISABLE_ERROR_REPORTING=1 | 关闭错误上报 |
DISABLE_AUTOUPDATER=1 | 禁用自动更新 |
DISABLE_COST_WARNINGS=1 | 关闭费用告警弹窗 |
出于安全考虑,重定向类(ACOSMI_BASE_URL 等)、信任根证书类(NODE_TLS_REJECT_UNAUTHORIZED、NODE_EXTRA_CA_CERTS)、项目切换类(API key / token)通过远程托管设置注入时会额外弹安全对话框,本机用户级 settings.json 写入不受此限。
- JSON 严格模式:不允许注释,不允许尾逗号
- 三层合并:本地级(
settings.local.json)最适合个人调试,不会污染团队配置
env 不会被 export:只在 CrabCode 进程内生效,不会影响外面的 shell
- 未知字段会保留:升级 schema 时旧字段不会被静默删除,但不参与校验
- 加载顺序:用户级 → 项目级 → 本地级 → 托管级;同名字段后者覆盖前者;数组类字段按字段语义合并
- 企业策略字段只在托管
settings.json 中生效:在个人 settings.json 写 allowManagedHooksOnly 之类不会生效