设置

2026-09-14   访问量:0


配置文件

settings.json 文件是配置 CodeBuddy Code 的官方机制,支持分层设置:

用户设置 定义在 ~/.codebuddy/settings.json,应用于所有项目

项目设置 保存在项目目录中:

.codebuddy/settings.json 用于检入源代码控制并与团队共享的设置

.codebuddy/settings.local.json 用于不检入的设置,适合个人偏好和实验。CodeBuddy Code 会自动配置 git 忽略此文件

完整配置示例

{  "language": "简体中文",  "permissions": {    "allow": [      "Bash(npm run lint)",      "Bash(npm run test:*)",      "Read(~/.zshrc)"    ],    "ask": [      "Bash(git push:*)"    ],    "deny": [      "Bash(curl:*)",      "Read(./.env)",      "Read(./.env.*)",      "Read(./secrets/**)"    ]  },  "env": {    "NODE_ENV": "development",    "DEBUG": "codebuddy:*"  },  "model": "gpt-5",  "subagents": {    "agents": {      "Explore": { "model": "lite" },      "Plan": { "model": "reasoning" }    }  },  "variantModels": {    "lite": "<fast-model-id>",    "reasoning": "<reasoning-model-id>"  },  "cleanupPeriodDays": 30,  "includeCoAuthoredBy": false,  "statusLine": {    "type": "command",    "command": "~/.codebuddy/statusline.sh"  }}

可用设置

settings.json 支持以下选项:

配置键

描述

示例

language

首选响应语言,设置后 CodeBuddy Code 将使用指定语言进行回复。留空则自动根据用户输入判断语言

"简体中文"

apiKeyHelper

自定义脚本,在 /bin/sh 中执行,生成认证值。此值将作为模型请求的 X-Api-KeyAuthorization: Bearer 头发送

/bin/generate_temp_api_key.sh

textToImageModel

文生图功能使用的模型 ID

"your-image-model"

imageToImageModel

图生图功能使用的模型 ID

"your-edit-model"

cleanupPeriodDays

根据最后活动日期本地保留聊天记录的时长(默认:30 天)

20

env

应用于每个会话的环境变量

{"FOO": "bar"}

includeCoAuthoredBy

是否在 git 提交和拉取请求中包含 co-authored-by CodeBuddy 署名(默认:true

false

permissions

权限配置,见下表


autoMode

auto 权限模式的分类器规则,详情请参见 Auto Mode 配置

{"allow": ["$defaults", "允许 dev 环境发布"]}

hooks

配置在工具执行前后运行的自定义命令,详情请参见 hooks 文档

{"PreToolUse": {"Bash": "echo 'Running command...'"}}

disableAllHooks

禁用所有 hooks

true

allowUntrustedFrontmatterHooks

是否允许执行来自非 product 内置来源的 agent/skill 的 frontmatter hooks 字段(包括用户本地 .codebuddy/agents|skills/*.md 和插件市场)。默认 false,防止不可信的 md 文件静默启动 shell 命令;只有 product 内置 agent/skill 不受影响。

true

model

覆盖 CodeBuddy Code 使用的默认模型。直接编辑 settings.json 后已开启的会话不生效(需重启进程或执行 /clear(新建会话)后才应用新值);通过 /model/config set model 切换则立即生效

"gpt-5"

outputStyle

输出风格。直接编辑 settings.json 后已开启的会话不生效(需重启进程或执行 /clear(新建会话)后才应用新值);通过样式面板(/output-style)或 /config set outputStyle 切换则立即生效

"concise"

subagents

按内置子代理名称指定模型。格式为 {"agents": {"<子代理名>": {"model": "..."}}}model 支持模型 ID、别名、lite / reasoninginherit / default。各子代理互不影响,支持用户全局和项目两种范围,可在 /agents 中编辑。优先级:CODEBUDDY_CODE_SUBAGENT_MODEL > 本次 Agent 工具调用的 model 入参 > 项目设置 > 用户全局设置 > 内置声明 > 主模型。详情请参见 子代理文档

{"agents": {"Explore": {"model": "lite"}, "Plan": {"model": "reasoning"}}}

variantModels

将通用场景变体映射到模型,键为 litereasoning,值为模型 ID 或别名。该映射影响所有使用相应变体的逻辑,可通过 /model:lite / /model:reasoning 编辑。优先级:对应的变体环境变量 > 项目设置 > 用户全局设置 > 主模型的 relatedModels > 适用的产品内置默认 > 主模型

{"lite": "<fast-model-id>", "reasoning": "<reasoning-model-id>"}

agent

覆盖主线程使用的 agent 名称(内置或自定义 agent),应用该 agent 的 system prompt、工具限制和模型配置。优先级:product.json defaultplugin agentsettings.json agentCLI --agent

"my-reviewer"

statusLine

配置自定义状态行以显示上下文。见 [statusLine 文档](#状态行配置)

{"type": "command", "command": "~/.codebuddy/statusline.sh"}

enableAllProjectMcpServers

自动批准项目 .mcp.json 文件中定义的所有 MCP 服务器

false

enabledMcpjsonServers

.mcp.json 文件批准的特定 MCP 服务器列表

["memory", "github"]

disabledMcpjsonServers

.mcp.json 文件拒绝的特定 MCP 服务器列表

["filesystem"]

autoCompactEnabled

开启自动压缩功能

true

autoUpdates

自动更新设置

false

alwaysThinkingEnabled

始终启用思考模式

true

showTokensCounter

是否在界面中显示 Tokens 计数器

false

endpoint

自定义服务端点地址

"https://api.example.com"

envRouteMode

环境路由模式配置

"production"

sandbox

Bash 沙箱配置,见 Bash 沙箱设置

{"enabled": true}

promptSuggestionEnabled

启用 Prompt 建议功能,在 Agent 完成对话后自动预测下一步操作(默认:true

false

reasoningEffort

Reasoning effort 级别配置,控制模型推理的深度。可选值:minimallowmediumhighxhighmax。留空时使用产品配置默认值。可通过 /config 面板切换,选择 auto 等效于清除此设置

"high"

memory

[Experimental] 记忆功能配置,见记忆功能配置

{"enabled": true}

trustedDirectories

已经信任过的工作目录列表。命中的目录启动时不会再弹"是否信任此目录"的授权提示。通常由首次启动时的弹窗自动写入,也可手动编辑

["~/workspace/myproj"]

trustAll

信任所有工作目录,启动时不再弹"是否信任此目录"的授权提示。仅免除目录信任授权,不会跳过工具执行权限——是否弹工具审批仍由 permissions.defaultMode / bypassPermissions 模式决定,与本字段相互独立

true

gateway

Remote Gateway 配置,见 Gateway 配置

{"runTimeoutMs": 1800000}

disableUEAutoExclude

禁用 Unreal Engine 项目自动排除。默认 false:当 cwd 顶层存在 *.uproject 文件时,Grep/Glob 工具会自动在 ripgrep 搜索中排除 Intermediate/ DerivedDataCache/ Saved/ Binaries/ Build/ .vs/ 六个 UE 编译产物和 IDE 缓存目录。设为 true 可关闭该行为,让搜索覆盖这些目录

true

权限设置

配置键

描述

示例

allow

权限规则数组,允许工具使用。注意: Bash 规则使用前缀匹配,不是正则表达式

[ "Bash(git diff:*)" ]

ask

权限规则数组,在工具使用时询问确认

[ "Bash(git push:*)" ]

deny

权限规则数组,拒绝工具使用。用于排除 CodeBuddy Code 访问敏感文件。注意: Bash 模式是前缀匹配,可以被绕过(参见 Bash 权限限制)

[ "WebFetch", "Bash(curl:*)", "Read(./.env)", "Read(./secrets/**)" ]

additionalDirectories

CodeBuddy 可以访问的额外工作目录

[ "../docs/" ]

defaultMode

打开 CodeBuddy Code 时的默认权限模式。常用值:defaultacceptEditsautodontAskplanbypassPermissions

"acceptEdits"

disableBypassPermissionsMode

设置为 "disable" 以防止激活 bypassPermissions 模式。这会禁用 -y--dangerously-skip-permissions 命令行标志

"disable"

disableAutoMode

设置为 "disable" 以防止激活 auto 模式。禁用后,--permission-mode autodefaultMode: "auto" 都会回退到 default

"disable"

subagentPermissionMode

覆盖 subagent/团队成员的默认权限模式。设置后所有 subagent 使用此模式,而非继承主 session 的模式。Agent 工具的 mode 参数优先级更高;但主会话若处于 auto / dontAsk,子代理仍会受父会话权限上限约束

"bypassPermissions"

Auto Mode 配置

autoMode 是一个顶层 settings 字段,不是 permissions 的子字段。它定义 auto 权限模式使用的分类器上下文与规则。

autoMode 里有哪些字段?

配置键

作用

示例

environment

描述哪些仓库、域名、服务、存储位置属于您的受信边界,帮助分类器判断什么算“内部”

["$defaults", "Trusted internal domains: staging.example.com"]

allow

补充“在 auto 下通常可自动放行”的自然语言规则

["$defaults", "允许 dev namespace 的发布"]

soft_deny

补充“通常应拦截,但在明确用户意图下可重试”的规则描述

["$defaults", "修改共享测试数据库 schema"]

hard_deny

补充“默认必须阻断”的高风险规则描述

["$defaults", "把私有仓库内容发布到公网"]

这些字段的值都是字符串数组。数组项不是正则,也不是工具模式,而是写给分类器看的自然语言规则

分类器会从哪里读取 autoMode

CodeBuddy 只会从以下来源读取 autoMode

来源

典型位置

用途

user settings

~/.codebuddy/settings.json

跨项目的个人受信边界

project-local settings

.codebuddy/settings.local.json

某个项目、某台机器上的本地补充规则

CLI --settings

codebuddy --settings '{...}'

一次性自动化或临时覆盖

不会读取的来源:

共享项目配置 .codebuddy/settings.json

原因是:autoMode 属于本地安全边界定义,仓库提交的配置不应该悄悄改变您本机对“哪些地方算内部、哪些动作算允许”的判断。

permissions.defaultMode: "auto" 的区别

这里有两个容易混淆的限制:

autoMode 规则来源:允许来自 user / project-local / CLI

默认进入 auto 模式的授权来源:只允许来自 user / CLI

也就是说:

.codebuddy/settings.local.json 可以补充 autoMode.environment / allow / soft_deny / hard_deny

.codebuddy/settings.local.json 不能通过 permissions.defaultMode: "auto" 让会话默认进入 auto

.codebuddy/settings.json 两者都不行:既不能提供 autoMode,也不能授予 defaultMode: "auto"

多个来源如何合并?

autoMode 的四个字段会按来源顺序合并:

user

project-local

CLI

合并时遵循两个原则:

每个字段独立合并,互不影响

每个字段都是把不同来源的数组追加在一起,再统一处理 "$defaults"

这意味着:

您只设置 environment,不会影响 allow / soft_deny / hard_deny 的默认值

您可以在 user settings 里放组织级受信域名,再在 project-local 补充某个项目独有的 staging 服务

"$defaults" 怎么工作?

"$defaults" 是一个特殊占位符,表示“把内置默认规则插到这里”。

例如:

{  "autoMode": {    "environment": [      "$defaults",      "Trusted internal domains: staging.example.com"    ]  }}

表示:

先使用内置 environment 默认规则

再追加您自定义的 staging.example.com

关键语义:

字段未配置:该字段直接使用内置默认规则

字段里包含 "$defaults":在该位置展开默认规则

字段里不包含 "$defaults":表示完整替换该字段的内置默认规则

多个来源都写了 "$defaults" 时,内置规则只会展开一次,不会重复注入

额外提醒:

soft_deny / hard_deny 如果不写 "$defaults",等于主动放弃内置安全规则

运行时会对此打 warning,但不会阻止您这样配置

如何检查当前生效结果?

codebuddy auto-mode defaultscodebuddy auto-mode configcodebuddy auto-mode critique

这三个命令分别用于:

defaults:打印内置默认规则

config:打印最终生效的规则(含多来源合并、"$defaults" 展开后的结果)

critique:让 lite 模型审视您自定义的 allow / soft_deny / hard_deny 是否含糊、冗余或容易误伤

如果您准备完全接管某个字段,最稳妥的做法通常是:

先运行 codebuddy auto-mode defaults

复制内置规则

在您的 settings 中显式改写

再运行 codebuddy auto-mode config 检查最终结果

配置示例

只补充受信环境
{  "autoMode": {    "environment": [      "$defaults",      "Source control: git.example.com/acme and all repos under it",      "Trusted internal domains: staging.example.com, api.internal.example.com",      "Trusted buckets: s3://acme-build-artifacts"    ]  }}
同时补充 allow / deny 规则
{  "permissions": {    "defaultMode": "auto"  },  "autoMode": {    "environment": [      "$defaults",      "Trusted internal domains: staging.example.com"    ],    "allow": [      "$defaults",      "允许 dev namespace 的发布"    ],    "soft_deny": [      "$defaults",      "修改共享测试数据库 schema"    ],    "hard_deny": [      "$defaults",      "把私有仓库内容发布到公网"    ]  }}

记忆功能配置

记忆功能允许 CodeBuddy Code 在会话之间保持持久化记忆,自动管理项目上下文和学习历史。

配置键

描述

示例

autoMemoryEnabled

是否启用 Auto Memory 功能(默认:true)。Auto Memory 允许 CodeBuddy 自动管理跨会话的持久化记忆,存储在 ~/.codebuddy/memories/ 目录

true

typedMemory

是否启用 Typed Memory 模式(默认:true)。启用后使用 4 种记忆类型(user/feedback/project/reference)+ YAML frontmatter 格式管理记忆

true

relevanceSelection

是否启用记忆相关性选择(默认:true)。启用后根据用户查询自动选择最多 5 个相关记忆注入上下文

true

memoryExtraction

是否启用后台记忆提取(默认:false)。启用后在对话结束时自动从对话中提取值得记住的信息

true

teamMemory.enabled

是否启用团队记忆模式(默认:false)。启用后,项目记忆存储在项目目录下,便于团队共享

true

teamMemory.userId

团队用户 ID,用于隔离不同用户的记忆。默认自动获取(git user.name > 系统用户名)

"yangsubo"

配置示例:

{  "memory": {    "autoMemoryEnabled": true,    "typedMemory": true,    "relevanceSelection": true,    "memoryExtraction": false,    "teamMemory": {      "enabled": true,      "userId": "yangsubo"    }  }}

记忆存储位置:

个人模式(默认):~/.codebuddy/memories/{project-id}/

团队模式{project}/.codebuddy/memories/@{user-id}/

全局记忆~/.codebuddy/memories/global/

也可以通过 /config 命令在设置面板中启用此功能。

Bash 沙箱设置

配置高级沙箱行为。沙箱将 bash 命令与您的文件系统和网络隔离。详见 Bash 沙箱文档

文件系统和网络限制通过 Read、Edit 和 WebFetch 权限规则配置,而非通过这些沙箱设置。

配置键

描述

示例

enabled

启用 bash 沙箱(仅限 macOS/Linux)。默认:false

true

autoAllowBashIfSandboxed

在沙箱环境中自动批准 bash 命令。默认:true

true

excludedCommands

应在沙箱外运行的命令

["git", "docker"]

allowUnsandboxedCommands

允许通过 dangerouslyDisableSandbox 参数在沙箱外运行命令。设置为 false 时,完全禁用

-

network.allowUnixSockets

沙箱中可访问的 Unix 套接字路径(用于 SSH 代理等)

["~/.ssh/agent-socket"]

network.allowLocalBinding

允许绑定到 localhost 端口(仅限 macOS)。默认: false

true

network.httpProxyPort

如果您希望使用自己的代理,使用的 HTTP 代理端口。如果未指定,CodeBuddy 将运行自己的代理

8080

network.socksProxyPort

如果您希望使用自己的代理,使用的 SOCKS5 代理端口。如果未指定,CodeBuddy 将运行自己的代理

8081

enableWeakerNestedSandbox

为无特权的 Docker 环境启用较弱的沙箱(仅限 Linux)。降低安全性。 默认:false

true

配置示例:

{  "sandbox": {    "enabled": true,    "autoAllowBashIfSandboxed": true,    "excludedCommands": ["docker"],    "network": {      "allowUnixSockets": [        "/var/run/docker.sock"      ],      "allowLocalBinding": true    }  },  "permissions": {    "deny": [      "Read(.envrc)",      "Read(~/.aws/**)"    ]  }}

文件系统访问通过 Read/Edit 权限控制:

Read deny 规则阻止沙箱中的文件读取

Edit allow 规则允许文件写入(除默认值外,如当前工作目录)

Edit deny 规则阻止路径内的写入

注意:

沙箱默认将 CodeBuddy 配置文件(settings.jsonsettings.local.json)加入写保护列表,防止沙箱内的命令或工具篡改配置。详见 Bash 沙箱 - 配置文件保护

网络访问通过 WebFetch 权限控制:

WebFetch allow 规则允许网络域

WebFetch deny 规则阻止网络域

设置优先级

设置按优先级顺序应用(从高到低):

命令行参数

特定会话的临时覆盖

本地项目设置 (.codebuddy/settings.local.json)

个人项目特定设置

共享项目设置 (.codebuddy/settings.json)

源代码控制中的团队共享项目设置

用户设置 (~/.codebuddy/settings.json)

个人全局设置

此层次结构确保团队可以建立共享标准,同时仍允许个人自定义体验。

配置系统要点

内存文件 (CODEBUDDY.md):包含 CodeBuddy 在启动时加载的指令和上下文

设置文件 (JSON):配置权限、环境变量和工具行为

斜杠命令:可在会话期间使用 /command-name 调用的自定义命令

MCP 服务器:使用额外工具和集成扩展 CodeBuddy Code

优先级:更高级别的配置覆盖更低级别的配置

继承:设置被合并,更具体的设置添加或覆盖更广泛的设置

排除敏感文件

为防止 CodeBuddy Code 访问包含敏感信息的文件(如 API 密钥、秘密、环境文件),在 .codebuddy/settings.json 文件中使用 permissions.deny 设置:

{  "permissions": {    "deny": [      "Read(./.env)",      "Read(./.env.*)",      "Read(./secrets/**)",      "Read(./config/credentials.json)",      "Read(./build)"    ]  }}

匹配这些模式的文件将对 CodeBuddy Code 完全不可见,防止任何敏感数据的意外泄露。

Gateway 配置

gateway 字段配置 Remote Gateway(--serve 模式下 HTTP/SSE 对外暴露 /api/v1/runs 等端点)的行为。

{  "gateway": {    "auth": "none",    "maxConnections": 5,    "tokenTtlMs": 86400000,    "runTimeoutMs": 1800000  }}

字段

描述

默认

auth

认证模式。"password" 要求客户端携带密码,"none" 不做认证。--serve 未显式配置时默认为 "password";显式设为 "none" 可关闭(此时同机任意进程即可经该服务执行命令、读写文件,仅建议隔离环境 / CI 使用)

"password"--serve

password

auth: "password" 时的密码。为空首次启动会自动生成并打印到日志

自动生成

corsOrigins

允许跨域访问 Gateway 的额外 Origin 列表。服务自身监听端口的 loopback 来源自动放行,其他端口的 localhost 页面需在此显式声明(如本地开发的 Vite dev server)

[]

maxConnections

ACP 协议最大并发连接数。环境变量 CODEBUDDY_ACP_MAX_CONNECTIONS 优先级更高

5

tokenTtlMs

ACP session token 有效期(毫秒)。环境变量 CODEBUDDY_ACP_TOKEN_TTL_MS 优先级更高

86400000(24 小时)

runTimeoutMs

/api/v1/runs 任务执行超时(毫秒)。超时返回 {code:'EXECUTION_ERROR', message:'Task timed out after Xmin'}

1800000(30 分钟)

runTimeoutMs 覆盖优先级

长任务(如复杂 agent 多轮搜索、大文件处理)可能超过默认 30 分钟,支持两种覆盖方式:



HTTP 请求头 X-Codebuddy-Run-Timeout(毫秒数): 针对单次请求覆盖,优先级最高

settings.jsongateway.runTimeoutMs — 进程级默认值

内置默认值 :30 分钟

示例:

# 单次请求给 60 分钟curl -X POST http://127.0.0.1:7890/api/v1/runs \  -H "Content-Type: application/json" \  -H "X-Codebuddy-Run-Timeout: 3600000" \  -d '{"id":"run-1","type":"message","payload":{"text":"..."}}'

设为 0 或负数关闭超时保护(不建议,长任务未结束会一直占用 SSE 长连接)。

子代理配置

CodeBuddy Code 支持为内置子代理独立选择模型,也支持通过 Markdown 文件创建自定义子代理。

内置子代理与场景模型可以在用户级或项目级 settings.json 中组合配置:

{  "subagents": {    "agents": {      "Explore": { "model": "lite" },      "Plan": { "model": "reasoning" }    }  },  "variantModels": {    "lite": "<fast-model-id>",    "reasoning": "<reasoning-model-id>"  }}

使用 /agents 编辑内置子代理映射;使用 /model:lite / /model:reasoning 编辑 litereasoning 映射。

Global 写入用户设置,Project 写入共享项目设置。

subagents 按子代理名合并,variantModels 按变体名合并。项目级覆盖 Explore 不会删除用户级的其他子代理配置;项目级覆盖 reasoning 也不会删除用户级的 lite

/agents 中选择 Inherit / Default,或在 /model 中选择 Default,会删除所选范围的对应项并恢复低优先级解析链。

自定义子代理存储为带有 YAML frontmatter 的 Markdown 文件:

用户子代理~/.codebuddy/agents/ - 在所有项目中可用

项目子代理.codebuddy/agents/ - 特定于项目,可与团队共享

自定义子代理文件定义专用提示、模型和工具权限。完整配置方式和优先级详见 子代理文档

插件配置

CodeBuddy Code 支持插件系统,允许您使用自定义命令、代理、hooks 和 MCP 服务器扩展功能。插件通过市场分发,可在用户和项目级别配置。

插件设置

settings.json 中的插件相关设置:

{  "enabledPlugins": {    "formatter@company-tools": true,    "deployer@company-tools": true,    "analyzer@security-plugins": false  },  "extraKnownMarketplaces": {    "company-tools": {      "source": {        "source": "github",        "repo": "company/codebuddy-plugins"      }    }  }}

enabledPlugins

控制启用哪些插件。格式:"plugin-name@marketplace-name": true/false

作用域

用户设置 (~/.codebuddy/settings.json):个人插件偏好

项目设置 (.codebuddy/settings.json):与团队共享的项目特定插件

本地设置 (.codebuddy/settings.local.json):每台机器的覆盖(不提交)

示例:

{  "enabledPlugins": {    "code-formatter@team-tools": true,    "deployment-tools@team-tools": true,    "experimental-features@personal": false  }}

extraKnownMarketplaces

定义应为项目提供的额外市场。通常在项目级设置中使用,以确保团队成员可以访问所需的插件源。

当项目包含 extraKnownMarketplaces:

团队成员在信任文件夹时被提示安装市场

然后团队成员被提示从该市场安装插件

用户可以跳过不需要的市场或插件(存储在用户设置中)

安装遵守信任边界并需要明确同意

示例:

{  "extraKnownMarketplaces": {    "company-tools": {      "source": {        "source": "github",        "repo": "company-org/codebuddy-plugins"      }    },    "security-plugins": {      "source": {        "source": "git",        "url": "https://git.company.com/security/plugins.git"      }    }  }}

市场源类型:

github: GitHub 仓库(使用 repo)

git:任何 git URL(使用 url)

directory:本地文件系统路径(使用 path,仅用于开发)

管理插件

使用 /plugin 命令交互式管理插件:

浏览市场中的可用插件

安装/卸载插件

启用/禁用插件

查看插件详细信息(提供的命令、代理、hooks)

添加/删除市场

详见 插件文档

环境变量

CodeBuddy Code 支持通过环境变量来控制其行为。所有环境变量也可以在 settings.jsonenv 字段中配置,这样可以自动为每个会话应用,或为整个团队推出配置。

完整的环境变量参考文档请参见 环境变量参考

快速入门

基础认证配置

# 使用 API 密钥

export CODEBUDDY_API_KEY="your-api-key"

codebuddy



# 或使用授权令牌

export CODEBUDDY_AUTH_TOKEN="your-token"

codebuddy

设置代理

export HTTPS_PROXY="https://proxy.example.com:8080"export NO_PROXY="localhost,127.0.0.1"codebuddy

启用高级功能

# 扩展思考

export MAX_THINKING_TOKENS="10000"



# 自动内存

export CODEBUDDY_DISABLE_AUTO_MEMORY="0"



codebuddy -p "您的查询"

在 settings.json 中配置

环境变量也可以在 settings.jsonenv 字段中设置:

{  "env": {    "CODEBUDDY_API_KEY": "your-api-key",    "HTTPS_PROXY": "https://proxy.example.com:8080",    "MAX_THINKING_TOKENS": "10000"  }}

更多配置示例和高级用法,请参见 环境变量参考使用示例

状态行配置

配置终端底部显示的状态行,可以显示当前会话、模型、成本等信息:

配置键

类型

描述

statusLine.type

string

状态行类型,目前支持 "command"

statusLine.command

string

执行的命令路径,支持 ~ 路径扩展

{  "statusLine": {    "type": "command",    "command": "~/.codebuddy/statusline-script.sh"  }}

状态行命令会接收包含会话信息的 JSON 数据作为 stdin 输入,包括:

session_id:会话 ID

model:当前模型信息

workspace:工作空间路径信息

cost:成本统计信息

version:应用版本

使用 /statusline 命令可以快速配置状态行。

配置管理命令

使用 codebuddy config 命令管理配置:

基本语法

codebuddy config [command] [options]

可用命令

命令

语法

描述

get

codebuddy config get <key>

获取配置值

set

codebuddy config set [options] <key> <value>

设置配置值

list

codebuddy config list(别名:ls

列出所有配置

add

codebuddy config add <key> <values...>

向数组配置添加项目

remove

codebuddy config remove <key> [values...](别名:rm

移除配置或数组项

选项

选项

描述

适用命令

-g, --global

设置全局配置

set

使用示例

查看配置

# 列出所有配置

codebuddy config list



# 获取特定配置值

codebuddy config get model

codebuddy config get permissions

设置配置

# 设置项目级模型(不需要 -g 标志)

codebuddy config set model gpt-5



# 设置全局模型(需要 -g 标志)

codebuddy config set -g model gpt-4



# 设置项目级权限配置(不需要 -g 标志)

codebuddy config set permissions '{"allow": ["Read", "Edit"], "deny": ["Bash(rm:*)"]}'



# 设置项目级环境变量(不需要 -g 标志)

codebuddy config set env '{"NODE_ENV": "development", "DEBUG": "true"}'



# 设置全局专用配置(需要 -g 标志)

codebuddy config set -g cleanupPeriodDays 30

codebuddy config set -g includeCoAuthoredBy false

CodeBuddy 可用的工具

CodeBuddy Code 可以访问一组强大的工具,帮助它理解和修改您的代码库:

工具

描述

需要权限

AskUserQuestion

向用户询问多选问题以收集信息或澄清歧义

Bash

在您的环境中执行 shell 命令

TaskOutput

从正在运行或已完成的后台任务检索输出

Edit

对特定文件进行有针对性的编辑

MultiEdit

在单个操作中对单个文件进行多次编辑

ExitPlanMode

提示用户退出计划模式并开始编码

Glob

基于模式匹配查找文件

Grep

在文件内容中搜索模式

TaskStop

通过 ID 终止正在运行的后台任务

LSP

与 LSP 服务器交互获取代码智能功能(跳转定义、查找引用、悬停信息等)

NotebookEdit

修改 Jupyter notebook 单元格

Read

读取文件内容

Skill

在主对话中执行技能

SlashCommand

运行自定义斜杠命令

Task

运行子代理以处理复杂的多步骤任务

TaskOutput

从正在运行或已完成的后台任务检索输出

TaskCreate

创建任务以跟踪工作进度

TaskUpdate

更新任务状态(pending/in_progress/completed)

TaskList

列出当前任务

TaskGet

获取特定任务详情

WebFetch

从指定 URL 获取内容

WebSearch

执行带域过滤的网络搜索

Write

创建或覆盖文件

权限规则可以使用 /permissions 或在权限设置中配置。另见工具特定的权限规则

使用 hooks 扩展工具

您可以使用 CodeBuddy Code hooks 在任何工具执行前后运行自定义命令

例如,您可以在 CodeBuddy 修改 Python 文件后自动运行 Python 格式化程序,或通过阻止对某些路径的 Write 操作来防止修改生产配置文件。

常见配置场景

团队协作配置

项目共享配置.codebuddy/settings.json):

{  "model": "gpt-5",  "permissions": {    "allow": ["Read", "Edit", "Bash(git:*)", "Bash(npm:*)"],    "ask": ["WebFetch", "Bash(docker:*)"],    "deny": ["Bash(rm:*)", "Bash(sudo:*)"]  },  "env": {    "NODE_ENV": "development"  }}

个人本地配置.codebuddy/settings.local.json):

{  "model": "gpt-4",  "env": {    "DEBUG": "myapp:*"  }}

安全配置

限制敏感操作和文件访问:

{  "permissions": {    "allow": ["Read", "Edit(src/**)", "Bash(git:status,git:diff)"],    "ask": ["WebFetch", "Bash(curl:*)"],    "deny": [      "Edit(**/*.env)",      "Edit(**/*.key)",      "Edit(**/*.pem)",      "Bash(wget:*)",      "Read(/etc/**)",      "Read(~/.ssh/**)"    ],    "defaultMode": "default"  }}

沙箱安全配置

启用沙箱并配置文件系统和网络访问:

{  "sandbox": {    "enabled": true,    "autoAllowBashIfSandboxed": true,    "excludedCommands": ["docker", "git"],    "network": {      "allowUnixSockets": ["/var/run/docker.sock"],      "allowLocalBinding": true    }  },  "permissions": {    "allow": [      "Edit(src/**)",      "WebFetch(https://api.github.com/**)"    ],    "deny": [      "Read(.envrc)",      "Read(~/.aws/**)",      "Edit(**/*.env)"    ]  }}