使用指定的本地 CLI
覆盖 SDK 的 CLI 路径、设置进程选项,并承担版本兼容检查。
指定本地 CLI 适合固定版本或使用不自动附带 CLI 的 SDK。SDK 仍通过 stdio 与本机 CLI 进程通信,但 CLI 与 SDK 的版本兼容由应用维护者负责。
TypeScript 配置
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient({
cliPath: "/usr/local/bin/copilot",
logLevel: "debug",
cliArgs: ["--log-dir=/tmp/copilot-logs"],
cwd: "/path/to/project",
});路径和工作目录替换为实际值。cliArgs 是传给 CLI 的额外参数,logLevel 控制日志;这里只配置连接,不会自行完成一个模型任务。
其他语言入口
官方示例提供 Python 的 cli_path、Go 的 copilot.StdioConnection{Path: ...}、.NET 的 RuntimeConnection.ForStdio(path: ...),以及 Java 的 setCliPath(...)。名称和对象形状因语言而异,不能照搬 TypeScript camelCase 到其他 SDK。
Go 未指定路径时,可使用已嵌入 CLI 或 PATH 上的 copilot;COPILOT_CLI_PATH 也是官方列出的选择。具体查找和打包策略见自动管理 runtime。
身份与恢复
本地个人方式可使用系统钥匙串中已登录的 CLI 用户,也可使用环境变量,优先顺序为 COPILOT_GITHUB_TOKEN、GH_TOKEN、GITHUB_TOKEN。更完整的认证优先级见认证。
命名会话使用 sessionId 创建,随后 resumeSession 恢复。默认状态位于 ~/.copilot/session-state/{sessionId}/。
不把个人配置直接用于共享服务
本地 CLI 教程把这种基于登录用户的配置标为单用户、不能多租户;专门的多租户章节则支持 mode: "empty" 与会话级身份的共享 runtime。两者描述的配置不同,不能据本地入门表格认定 SDK 完全不支持多用户,也不能据共享能力让所有请求沿用本机登录凭据。