接入 ZCode
ZCode 是 z.ai 推出的 AI 编程助手。
方式一 · 让 ZCode 自己配置(推荐)
把下面的提示复制给 ZCode:
text
帮我配置知言家 AI Coding 伴侣的 ZCode Hook。读 https://zyhome.run/docs/integrations/zcode.txt 按步骤执行。保留已有配置,冲突时先问我,不要整文件覆盖。完成后告诉我改了什么、是否需要重启。方式二 · 手动配置
1. 定位配置文件
ZCode 的用户级 Hook 配置在 %USERPROFILE%\.zcode\cli\config.json,目录不存在就逐级创建。
只能用用户级配置
ZCode 当前版本不执行项目级 Hook。写在 <项目>\.zcode\config.json 或 <项目>\zcode.json 里的 hooks 会被整体忽略,并在日志中记录 config_project_hooks_ignored。请只改用户级配置。
2. 合并 hooks 配置
在 config.json 中确保 hooks.enabled 为 true,并增量合并以下 6 个事件:UserPromptSubmit、PermissionRequest、PreToolUse、PostToolUse、PostToolUseFailure、Stop。
每个 handler 必须:
- 使用
"type": "command"并显式设置"shell": "powershell"(不设会走系统默认 shell,PowerShell 语法会报错); - 保留已有的其他 Hook 和字段,不要整文件覆盖。
完整配置参考(已存在其他字段时只合并 hooks 节点):
json
{
"hooks": {
"enabled": true,
"events": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"shell": "powershell",
"command": "$bridge = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $bridge -PathType Leaf) { & $bridge --source zcode --hook-event-name UserPromptSubmit }",
"timeout": 8
}
]
}
],
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"shell": "powershell",
"command": "$bridge = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $bridge -PathType Leaf) { & $bridge --source zcode --hook-event-name PermissionRequest }",
"timeout": 8
}
]
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"shell": "powershell",
"command": "$bridge = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $bridge -PathType Leaf) { & $bridge --source zcode --hook-event-name PreToolUse }",
"timeout": 8
}
]
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"shell": "powershell",
"command": "$bridge = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $bridge -PathType Leaf) { & $bridge --source zcode --hook-event-name PostToolUse }",
"timeout": 8
}
]
}
],
"PostToolUseFailure": [
{
"hooks": [
{
"type": "command",
"shell": "powershell",
"command": "$bridge = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $bridge -PathType Leaf) { & $bridge --source zcode --hook-event-name PostToolUseFailure }",
"timeout": 8
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"shell": "powershell",
"command": "$bridge = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $bridge -PathType Leaf) { & $bridge --source zcode --hook-event-name Stop }",
"timeout": 8
}
]
}
]
}
}
}3. 重启并信任
ZCode 在会话启动时快照 Hook 配置,正在运行的会话不会热加载。保存配置后,完全退出 ZCode 并重新打开。
重启后通过以下任一方式信任 Hook:
- 在设置中信任:打开 设置 → 钩子,找到知言家的 Hook 并信任。
- 在新会话中信任:新开一个会话,在弹出的 Hook 信任提示中确认信任。
验证
- 确认驱动托盘图标存在、设备已连接。
- 在 ZCode 中新开一个会话,发送一条普通消息(例如"解释一下当前项目结构")。
- 观察驱动控制台:应出现来源为 zcode 的任务,设备进入处理中灯效。
- 触发一次需要授权的操作(例如让 ZCode 写一个文件),确认设备进入等待授权灯效;允许后恢复处理中。
- 本轮完成后,任务进入完成状态,灯效收尾。
如果 ZCode 可以正常对话但设备没有反应,先检查 config.json 中 hooks.enabled 是否为 true,再确认配置写在用户级目录而非项目目录,最后新开一个会话重试。
注意事项
- 只配官方支持的事件。ZCode 的 Hook schema 很严格,写入未支持的事件名会导致整个
hooks配置被静默丢弃。ZCode 没有PermissionDenied、StopFailure、Notification事件,不要从其他工具照搬。 - 不要配置 SessionStart。它不对应知言家的任务状态事件,配了也不会点亮设备。
- 修改安装目录的情况。如果驱动没有装在默认位置,把命令中的
$env:LOCALAPPDATA替换为实际的驱动安装路径(hookbridge 在驱动目录的bin\下)。 - 排查日志。ZCode 的 Hook 执行日志在
~/.zcode/cli/log/zcode-<日期>.jsonl,hook.run.failed表示 Hook 执行失败;驱动侧日志在%LOCALAPPDATA%\zy_home_vibe_coding_driver\service.log。
