Skip to content
FunCoding

Search

Search docs, Skills and MCP

使用指定的本地 CLI

覆盖 SDK 的 CLI 路径、设置进程选项,并承担版本兼容检查。

This page has not been translated into English yet. The original Chinese version is shown below.

指定本地 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 完全不支持多用户,也不能据共享能力让所有请求沿用本机登录凭据。

共享服务按后端服务和多租户配置实现。