配置文件路径
- 用户级别配置文件:
~/.hcode/settings.json - 项目级别配置文件:项目根目录下的
.hcode/settings.json
配置说明
| 属性名称 | 作用 | 是否支持热加载 |
|---|---|---|
| env | 环境变量配置,用于设置系统级别的环境变量,参考环境变量章节 | 是 |
| language | 界面语言设置,配置 Hawa Code 的默认回复语言 | 是 |
| disableSuggestion | 禁用提示词建议 | 是 |
| permissions | 权限配置,参考权限配置章节 | 是 |
| sandbox | 沙箱配置,具体参考沙箱配置章节 | 否 |
| autoCompactEnabled | 启用会话自动压缩,默认值为 true | 是 |
| sessionSummary | 会话摘要配置, 参考会话摘要章节 | 是 |
| autoMemory | 会话记忆自动提取, 参考会话记忆自动提取章节 | 是 |
| autoDream | 会话记忆自动整合, 参考会话记忆自动整合章节 | 是 |
| autoMode | 自动工具授权模式, 参考工具自动授权章节 | 是 |
配置示例
{ |
环境变量
通过 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 |
沙箱配置示例
{ |
会话摘要
当 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 |