接入 GitHub Copilot
GitHub Copilot CLI 是 GitHub 推出的 AI 编程命令行工具。
方式一 · 让 Copilot 自己配置(推荐)
把下面的提示复制给 Copilot CLI:
text
帮我配置知言家 AI Coding 伴侣的 GitHub Copilot Hook。读 https://zyhome.run/docs/integrations/copilot.txt 按步骤执行。保留已有配置,冲突时先问我,不要整文件覆盖。完成后告诉我改了什么、是否需要重启。方式二 · 手动配置
Copilot CLI 通过用户级 Hook 同步任务状态。
1. 定位配置文件
Copilot CLI 的用户级配置在 ~/.copilot/settings.json(Windows 上为 %USERPROFILE%\.copilot\settings.json),目录不存在就逐级创建。
2. 合并 hooks 配置
在 settings.json 中增量合并以下 6 个事件:UserPromptSubmit、PermissionRequest、PreToolUse、PostToolUse、PostToolUseFailure、Stop。
每个 handler 必须:
- 使用
"type": "command",同时提供"powershell"和"bash"命令以支持跨平台; - 事件名用 PascalCase(如
UserPromptSubmit),这样 stdin payload 使用 snake_case 字段,与 Claude Code 格式一致; - 保留已有的其他 Hook 和字段,不要整文件覆盖。
完整配置参考(已存在其他字段时只合并 hooks 节点):
json
{
"version": 1,
"hooks": {
"UserPromptSubmit": [
{
"type": "command",
"powershell": "$b = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $b -PathType Leaf) { & $b --source copilot --hook-event-name UserPromptSubmit }",
"bash": "if command -v zy_home_vibe_coding_driver_hookbridge >/dev/null 2>&1; then zy_home_vibe_coding_driver_hookbridge --source copilot --hook-event-name UserPromptSubmit; fi",
"timeoutSec": 8
}
],
"PermissionRequest": [
{
"type": "command",
"powershell": "$b = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $b -PathType Leaf) { & $b --source copilot --hook-event-name PermissionRequest }",
"bash": "if command -v zy_home_vibe_coding_driver_hookbridge >/dev/null 2>&1; then zy_home_vibe_coding_driver_hookbridge --source copilot --hook-event-name PermissionRequest; fi",
"timeoutSec": 8
}
],
"PreToolUse": [
{
"type": "command",
"powershell": "$b = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $b -PathType Leaf) { & $b --source copilot --hook-event-name PreToolUse }",
"bash": "if command -v zy_home_vibe_coding_driver_hookbridge >/dev/null 2>&1; then zy_home_vibe_coding_driver_hookbridge --source copilot --hook-event-name PreToolUse; fi",
"timeoutSec": 8
}
],
"PostToolUse": [
{
"type": "command",
"powershell": "$b = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $b -PathType Leaf) { & $b --source copilot --hook-event-name PostToolUse }",
"bash": "if command -v zy_home_vibe_coding_driver_hookbridge >/dev/null 2>&1; then zy_home_vibe_coding_driver_hookbridge --source copilot --hook-event-name PostToolUse; fi",
"timeoutSec": 8
}
],
"PostToolUseFailure": [
{
"type": "command",
"powershell": "$b = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $b -PathType Leaf) { & $b --source copilot --hook-event-name PostToolUseFailure }",
"bash": "if command -v zy_home_vibe_coding_driver_hookbridge >/dev/null 2>&1; then zy_home_vibe_coding_driver_hookbridge --source copilot --hook-event-name PostToolUseFailure; fi",
"timeoutSec": 8
}
],
"Stop": [
{
"type": "command",
"powershell": "$b = Join-Path $env:LOCALAPPDATA 'zy_home_vibe_coding_driver\\bin\\zy_home_vibe_coding_driver_hookbridge.exe'; if (Test-Path -LiteralPath $b -PathType Leaf) { & $b --source copilot --hook-event-name Stop }",
"bash": "if command -v zy_home_vibe_coding_driver_hookbridge >/dev/null 2>&1; then zy_home_vibe_coding_driver_hookbridge --source copilot --hook-event-name Stop; fi",
"timeoutSec": 8
}
]
}
}preToolUse 失败语义
Copilot 的 preToolUse hook 是 fail-closed 的:命令返回非零 exit code(除超时外)会阻止工具执行。上述命令在 hookbridge 不存在时静默跳过,不会返回错误;但如果你自行修改命令,确保它始终以 0 退出。
3. 重启
Copilot CLI 在会话启动时读取配置,正在运行的会话不会热加载。保存配置后,运行 /new 开新会话,或完全退出 Copilot CLI 后重新打开。
验证
- 确认驱动托盘图标存在、设备已连接。
- 在 Copilot CLI 中新开一个会话,发送一条普通消息。
- 观察驱动控制台:应出现来源为 copilot 的任务,设备进入处理中灯效。
- 触发一次需要授权的操作,确认设备进入等待授权灯效;允许后恢复处理中。
- 本轮完成后,任务进入完成状态,灯效收尾。
如果 Copilot 可以正常对话但设备没有反应,先确认 settings.json 格式正确(version 字段为 1)、hookbridge 文件存在,再新开一个会话重试。
注意事项
- 只配官方支持的事件。不要配置
SubagentStart、SubagentStop(子代理事件不应触发主灯语)、SessionStart、SessionEnd(不对应任务状态)、Notification(授权请求已由PermissionRequest覆盖)。 - 事件名用 PascalCase。配置中写
UserPromptSubmit而非userPromptSubmitted,这样 stdin payload 使用 snake_case 字段(hook_event_name、session_id),与 hookbridge 兼容。 - 配置结构是扁平的。Copilot 的 hook entry 直接包含
type、bash、powershell、timeoutSec,不是 Claude Code 那种{ "hooks": [{ ... }] }嵌套结构,不要照搬。 - 超时字段是
timeoutSec,不是timeout。 - 修改安装目录的情况。Windows 上把 PowerShell 命令中的
$env:LOCALAPPDATA替换为实际的驱动安装路径(hookbridge 在驱动目录的bin\下)。 - 排查日志。Copilot CLI 的 Hook 执行日志可通过
/hooks面板查看;驱动侧日志在%LOCALAPPDATA%\zy_home_vibe_coding_driver\service.log。
速查
| 项目 | 路径或动作 |
|---|---|
| 桥接程序 | 驱动目录下的 bin\zy_home_vibe_coding_driver_hookbridge.exe |
| 配置文件 | %USERPROFILE%\.copilot\settings.json |
| 支持事件 | UserPromptSubmit、PermissionRequest、PreToolUse、PostToolUse、PostToolUseFailure、Stop |
| 完成后 | 运行 /new 开新会话,或重开 Copilot CLI(不支持热加载) |
