配置

配置文件路径

  • 用户级别配置文件:~/.hcode/settings.json
  • 项目级别配置文件:项目根目录下的 .hcode/settings.json

配置说明

属性名称 作用 是否支持热加载
env 环境变量配置,用于设置系统级别的环境变量,参考环境变量章节
language 界面语言设置,配置 Hawa Code 的默认回复语言
disableSuggestion 禁用提示词建议
permissions 权限配置,参考权限配置章节
sandbox 沙箱配置,具体参考沙箱配置章节
autoCompactEnabled 启用会话自动压缩,默认值为 true
sessionSummary 会话摘要配置, 参考会话摘要章节
autoMemory 会话记忆自动提取, 参考会话记忆自动提取章节
autoDream 会话记忆自动整合, 参考会话记忆自动整合章节
autoMode 自动工具授权模式, 参考工具自动授权章节

配置示例

{
"env": {
"HAWA_CODE_LAZY_TOOL": false,
"HAWA_CODE_FIX_SCHEMA": true
},
"permissions": {
"allow": [
"Bash(git branch:*)",
"Bash(git status:*)",
"mcp_notion_*"
],
"deny": [
"Read(./settings/**)"
]
},
"language": "chinese"
}

环境变量

通过 env 配置项可以设置系统级别的环境变量,这些变量会影响 Hawa Code 的运行行为。

属性 描述 示例
HAWA_CODE_LAZY_TOOL 工具懒加载开关 false
HAWA_CODE_FIX_SCHEMA 工具调用入参的兼容性修复选项 true
HAWA_CODE_USER_AGENT 自定义 HTTP 请求的 User-Agent 字符串 “MyCustomAgent/1.0”
HAWA_CODE_AUTH_DISABLED 禁用 Authentication HTTP 请求 Header true
HAWA_CODE_X_API_KEY_DISABLED 禁用 x-api-key HTTP 请求 Header true
HAWA_CODE_OPENAI_IMAGE_DETAIL 设置 OpenAI 图片分辨率级别,可选值:”low”、”high”、”auto”、”original”,默认为 auto “high”
HTTPS_PROXY 设置 HTTPS 代理地址 http://127.0.0.1:7890
HTTP_PROXY 设置 HTTP 代理地址 http://127.0.0.1:7890

权限配置

属性名称 作用 是否支持热加载
permissions.allow 权限配置,定义允许调用的工具
permissions.ask 权限配置,工具执行的时候需要人工授权确认
permissions.deny 权限配置,定义禁止调用的工具
permissions.disableBypassPermissionsMode 设置为 “disable” 以防止激活 bypassPermissions 模式

权限配置规则

权限规则遵循 Tool 或 Tool(specifier) 的格式。规则优先级:deny > ask > allow 。使用第一个匹配的规则

规则 效果
Bash 匹配所有 Bash 命令
Bash(npm test *) 匹配以 npm test 开头的命令
Read(./.md) 匹配读取 .md 文件
WebFetch(domain:test.com) 匹配对 test.com 的获取请求

有关完整的规则语法参考,包括通配符行为、Read、Edit、WebFetch、MCP 和 Agent 规则的工具特定模式,以及 Bash 模式的安全限制,请参阅权限规则语法

沙箱配置

配置高级沙箱行为。沙箱将 bash 命令与您的文件系统和网络隔离。请参阅沙箱了解详情。

属性 描述 示例
enabled 启用 bash 沙箱,支持的系统有 macOS、Linux 和 WSL2 。默认:false true
autoAllowBashIfSandboxed 启用沙箱时候 bash 命令不要人工确认 。默认:true true
excludedCommands 可以绕过沙箱运行的命令 [“git”, “docker”]
allowUnsandboxedCommands 允许命令通过 dangerouslyDisableSandbox 参数在沙箱外运行。当设置为 false 时,dangerouslyDisableSandbox 不能生效,不在 excludedCommands 中的所有命令必须沙箱化。默认:true false
filesystem.allowWrite 沙箱命可以写入的文件路径,user、project setting 文件配置合并, 同时也于 Edit(…)、Write(…) 允许权限规则中的路径合并。请参阅下面的路径前缀。 [“//dev/ccr”, “~/.hcode”]
filesystem.denyWrite 沙箱命令禁止写入的路径。user、project setting 文件配置合并。也与 Edit(…)、Write(…) 拒绝权限规则中的路径合并。 [“//etc”, “//usr/test”]
filesystem.denyRead 沙箱命令禁止读取的路径。user、project setting 文件配置合并。也与 Read(…) 拒绝权限规则中的路径合并。 [“~/dev/cre”]
filesystem.allowRead 沙箱命令允许读取的路径。user、project setting 文件配置合并。也与 Read(…) 允许权限规则中的路径合并。 [“~/dev/cre”]
network.allowedDomains 沙箱命令允许访问的域名。支持通配符(例如 *.example.com)。 [“github.com”, “*.npmjs.org”]
network.deniedDomains 沙箱命令禁止访问的域名。支持通配符(例如 *.example.com)。 [“github.com”, “*.npmjs.org”]
network.allowUnixSockets 沙箱中可访问的 Unix 套接字路径(用于 SSH 代理等) [“~/.ssh/code-socket”]
network.allowLocalBinding 允许绑定到 localhost 端口(仅 macOS)。默认:false true

沙箱配置示例

{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true,
"excludedCommands": ["docker"],
"filesystem": {
"allowWrite": ["//tmp/", "~/.hcode"],
"denyRead": ["~/.ct/caa"]
},
"network": {
"allowedDomains": ["github.com", "*.npmjs.org", "registry.yarnpkg.com"],
"deniedDomains": ["evil.example.com"],
"allowLocalBinding": true
}
}
}

会话摘要

autoCompactEnabled 设置为 true 时,会启用会话自动压缩功能。当上下文窗口快占满时,Hawa Code 会自动对会话消息进行压缩,从而保证 Hawa Code 能够长时间运行。会话压缩是一次性完成的,压缩过程相对耗时。

sessionSummary 用于配置会话摘要功能,Hawa Code 会在对话过程中异步对当前会话进行增量摘要总结。

摘要文件存储路径为 ~/.hcode/projects/{项目名称}/messages/{会话ID}/session-summary/summary.md

属性 描述 示例
enabled 启用会话摘要,默认:false true
config.minimumMessageTokensToInit 首次执行摘要时会话最小 token 数量,默认:10000 10000
config.minimumTokensBetweenUpdate 多次执行摘要时会话最小 token 增量,默认:5000 5000
config.toolCallsBetweenUpdates 多次执行摘要时会话最少工具调用增量,默认:3 3

会话记忆自动提取

autoMemory 会在对话过程中自动提取关键信息并保存为记忆,无需手动维护 HAWA.md 或 rules 配置。

属性 描述 示例
enabled 启用自动记忆提取,默认:false true
minTokens 首次提取及后续多次提取的最小 token 增量,默认:3000 3000
minTurns 触发提取所需的最小对话轮次,默认:3 3

会话记忆自动整合

autoDream 会定期对自动提取的记忆进行整合、去重和过期清理。使用该功能前需先开启 autoMemory

属性 描述 示例
enabled 启用会话记忆自动整合,默认:false true
minHours 两次整合之间的最小时间间隔(小时),默认:24 24
minSessions 触发整合所需的最少新增会话数,默认:5 5

工具自动授权

启用 autoMode 后,Hawa Code 会自动判断工具是否允许执行,实现无人值守的自动授权模式。

设置环境变量 HAWA_CODE_AUTO_MODE_ACCEPTEDITS = "1" 后,Hawa Code 会自动放行 acceptEdits 允许执行的工具。该设置可减少模型请求次数,但会默认授权更多工具,请根据实际需求权衡是否开启。

属性 描述 示例
enabled 是否启用 auto 模式,默认:false true
maxConsecutiveDenials 连续拒绝多少次后回退到人工提示,默认:3 3
maxTotalDenials 总共拒绝多少次后回退到人工提示,默认:20 5