CLI Extensions
启用实验性 JavaScript 扩展,控制加载模式并诊断长期运行的扩展进程。
This page has not been translated into English yet. The original Chinese version is shown below.
CLI extension 是与交互会话并行运行的 JavaScript 进程,可以注册供模型调用的工具、供用户执行的斜杠命令,并监听会话事件保存状态。它与用于分发多种组件的 plugin 是不同层次的机制。
文件与发现
| 来源 | 位置 |
|---|---|
| 项目 | .github/extensions/NAME/ |
| 个人 | ~/.copilot/extensions/NAME/ |
| 插件 | 已启用插件提供的扩展目录 |
每个目录需要 extension.mjs、extension.cjs 或 extension.js 入口,目录名成为扩展名。CLI 直接用 Node.js 运行入口,当前不直接支持 TypeScript 或其他语言。
扩展代码以你的权限执行,应先检查来源。个人扩展在所有目录可用;项目扩展适合随仓库共享。
启用和加载
copilot --experimental现有交互会话可用 /experimental on。进入 /extensions manage 检查 Project / User 分组及 running 状态,/env 可查看会话加载摘要。
扩展使用 CLI 内置 @github/copilot-sdk/extension,不必单独安装 SDK 包或给示例创建 package.json。实现方式见编写扩展工具与命令。
运行模式
/extensions mode 提供三个选项:
| 模式 | 行为 |
|---|---|
| Load & Augment | 默认;运行扩展,Copilot 也能管理它们 |
| Load Only | 运行已有扩展并可调用其工具,但不给 Copilot 扩展管理工具 |
| Disabled | 停止扩展,并在后续会话保持禁用直到再次更改 |
管理能力包括列出、查看状态与日志、生成入口骨架和重新加载。Load Only 适合保持已审阅代码运行的情况,但它不会移除扩展已经提供的工具。
切到 Disabled 会立即终止当前扩展进程并撤下工具;重新启用会启动扩展。当前会话更改不影响其他已经运行的会话。
编辑、刷新和日志
保存代码后,可要求 Copilot Reload my extensions,或用 /clear 新建会话,或重启 CLI。Load Only 不提供模型管理能力,因此不要依赖模型重新加载入口完成刷新。
/clear 会替换当前会话,扩展模块内存也随重启丢失;不要把它当成不影响会话的单纯文件刷新。
扩展失败时,进入 /extensions manage 查看状态与日志路径。日志位于 ~/.copilot/logs/extensions/;先检查入口名称、JavaScript 语法、experimental 开关和加载模式,再排查具体工具或命令。