Skip to content
FunCoding

Search

Search docs, Skills and MCP

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 开关和加载模式,再排查具体工具或命令。