Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Github Copilot Sdk

BSecurity

当需要在 Node.js/Python/Go/.NET 应用里通过代码驱动 GitHub Copilot(会话、自定义工具、钩子、MCP、流式、BYOK)时使用;做出可运行的 SDK 集成代码与会话配置;不适用于普通聊天补全或非 Copilot 的 LLM 接入;触发词:copilot-sdk、CopilotClient、createSession

3 stars
0 votes
0 copies
0 views
Added 9/19/2026
ai-agentstypescriptpythongoshellbashnodenodejsazuregitapi

Works with

cursorcliapimcp

Security Analysis

B84/100
mediumInstalls packages at runtime which could introduce malicious dependencies
mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned 9/19/2026

$npx -y skills add findscripter/everything-skills --skill github-copilot-sdk --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Github Copilot Sdk?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Github Copilot Sdk
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/findscripter-github-copilot-sdk/badge)](https://www.skillsdirectory.com/skills/findscripter-github-copilot-sdk)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: github-copilot-sdk
title: GitHub Copilot SDK 编程集成
description: 当需要在 Node.js/Python/Go/.NET 应用里通过代码驱动 GitHub Copilot(会话、自定义工具、钩子、MCP、流式、BYOK)时使用;做出可运行的 SDK 集成代码与会话配置;不适用于普通聊天补全或非 Copilot 的 LLM 接入;触发词:copilot-sdk、CopilotClient、createSession
domain: 智能/agents
triggers: [GitHub Copilot SDK, copilot-sdk, CopilotClient, createSession, Copilot 编程集成, sendAndWait, Copilot BYOK, Copilot 自定义工具, Copilot MCP]
tags: [github-copilot, sdk, agent, mcp, byok, streaming, tool-use, nodejs, python, go, dotnet]
level: 进阶
status: stable
agents: [claude-code, codex, cursor, gemini-cli]
tools: [copilot CLI, Node.js, Python, Go, .NET]
requires: []
related: [claude-api, vercel-ai-sdk, pydantic-ai-agents, autonomous-coding-agent-patterns]
combines_with: [agent-tool-builder, mcp-builder, langfuse-llm-observability]
license: MIT
source: sickn33/agentic-awesome-skills
source_license: MIT
---
## 何时使用

需要在自己的程序里以代码方式驱动 GitHub Copilot 时使用。SDK 通过 JSON-RPC 封装 Copilot CLI,提供会话管理、自定义工具、生命周期钩子、MCP 服务集成与流式输出,支持 Node.js / Python / Go / .NET。

典型场景:构建 Copilot 智能体应用、给 Copilot 注册业务工具、用钩子做权限管控、接入 MCP 服务、用 BYOK 接自有模型、需要会话持久化或长会话。

不该用的边界:
- 只想做普通聊天补全、或接入非 Copilot 的 LLM(直接用对应厂商 SDK)。
- 没有 Copilot CLI 或未认证、且不打算用 BYOK。
- 任务与「程序化驱动 Copilot」无关。

## 步骤

1. 装好并认证 Copilot CLI(`copilot --version` 校验),运行时满足 Node.js 18+ / Python 3.8+ / Go 1.21+ / .NET 8.0+。
2. 安装对应语言 SDK 包。
3. 按「客户端 → 会话 → 消息」三步走:建 client、建 session、发消息。
4. 按需叠加能力:流式、自定义工具、钩子、MCP、BYOK、会话持久化。
5. 用完调用 `stop()`/`destroy()` 释放进程与会话。

## 指令

安装(择一语言):

| 语言 | 包 | 安装 |
|------|----|----|
| Node.js | `@github/copilot-sdk` | `npm install @github/copilot-sdk` |
| Python | `github-copilot-sdk` | `pip install github-copilot-sdk` |
| Go | `github.com/github/copilot-sdk/go` | `go get github.com/github/copilot-sdk/go` |
| .NET | `GitHub.Copilot.SDK` | `dotnet add package GitHub.Copilot.SDK` |

认证优先级:① 构造器显式 `githubToken` → ② 环境变量 `COPILOT_GITHUB_TOKEN` → `GH_TOKEN` → `GITHUB_TOKEN` → ③ `copilot auth login` 存储的 OAuth → ④ `gh auth` 凭证。

外接独立 CLI 服务(不自动托管进程):先 `copilot --headless --port 4321`,再用 `new CopilotClient({ cliUrl: "localhost:4321" })`。

## 示例

核心三步(Node.js):

```typescript
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
const session = await client.createSession({ model: "gpt-4.1" });
const response = await session.sendAndWait({ prompt: "What is 2 + 2?" });
console.log(response?.data.content);
await client.stop();
```

Python 等价(注意需 `await client.start()`):

```python
client = CopilotClient()
await client.start()
session = await client.create_session({"model": "gpt-4.1"})
response = await session.send_and_wait({"prompt": "What is 2 + 2?"})
print(response.data.content)
await client.stop()
```

流式输出:建会话时 `streaming: true`,订阅增量事件。

```typescript
const session = await client.createSession({ model: "gpt-4.1", streaming: true });
session.on("assistant.message_delta", (e) => process.stdout.write(e.data.deltaContent));
session.on("session.idle", () => console.log());
await session.sendAndWait({ prompt: "Tell me a joke" });
```

自定义工具:

```typescript
import { defineTool } from "@github/copilot-sdk";
const getWeather = defineTool("get_weather", {
  description: "Get the current weather for a city",
  parameters: { type: "object",
    properties: { city: { type: "string", description: "The city name" } },
    required: ["city"] },
  handler: async ({ city }) => ({ city, temperature: "72°F", condition: "sunny" }),
});
const session = await client.createSession({ model: "gpt-4.1", tools: [getWeather] });
```

钩子做工具权限管控(在 `onPreToolUse` 返回 deny):

```typescript
const session = await client.createSession({
  hooks: {
    onPreToolUse: async (input) => {
      if (["shell", "bash"].includes(input.toolName)) {
        return { permissionDecision: "deny", permissionDecisionReason: "Shell access not permitted" };
      }
      return { permissionDecision: "allow" };
    },
  },
});
```

钩子触发点:`onPreToolUse`(工具前,权限/改参)、`onPostToolUse`(工具后,转换/日志)、`onUserPromptSubmitted`(用户发消息,改写/过滤)、`onSessionStart` / `onSessionEnd`、`onErrorOccurred`(自定义错误处理/重试)。`onPreToolUse` 输出字段:`permissionDecision`(allow|deny|ask)、`permissionDecisionReason`、`modifiedArgs`、`additionalContext`、`suppressOutput`。

MCP 集成(远程 HTTP 与本地 stdio):

```typescript
const session = await client.createSession({
  mcpServers: {
    github: { type: "http", url: "https://api.githubcopilot.com/mcp/" },
    filesystem: { type: "local", command: "npx",
      args: ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"], tools: ["*"] },
  },
});
```

BYOK(自带 Key,免 Copilot 订阅):

```typescript
const session = await client.createSession({
  model: "gpt-5.2-codex",
  provider: { type: "openai", baseUrl: "https://your-resource.openai.azure.com/openai/v1/",
    wireApi: "responses", apiKey: process.env.FOUNDRY_API_KEY },
});
```

会话持久化:建会话传自定义 `sessionId`,重启后 `client.resumeSession(id)` 恢复;管理用 `client.listSessions()` / `client.deleteSession(id)` / `session.destroy()`。长会话防超限:`infiniteSessions: { enabled: true, backgroundCompactionThreshold: 0.80, bufferExhaustionThreshold: 0.95 }`。

## 注意事项

- 调用顺序差异:Python/Go 需先 `start()`,Node.js/.NET 在 `createSession` 时隐式启动。
- BYOK 恢复会话时 **必须重新提供 `provider` 配置**,密钥不会持久化。
- `wireApi`:GPT-5 系列用 `"responses"`,其余用默认 `"completions"`。
- BYOK provider type 映射:OpenAI/Azure AI Foundry/Ollama → `"openai"`(Ollama 本地无需 key),Azure OpenAI 原生 → `"azure"`(baseUrl 不要带 `/openai/v1`),Anthropic/Claude → `"anthropic"`。
- 调试:`new CopilotClient({ logLevel: "debug" })`。常见报错:`CLI not found`→装 CLI 或设 `cliPath`;`Not authenticated`→`copilot auth login` 或给 `githubToken`;`Session not found`→`destroy()` 后勿再用;`Connection refused`→检查 CLI 进程、开 `autoRestart`。
- 关键 API 速查:Node `createSession/sendAndWait/stop`;Python `create_session/send_and_wait/stop`;Go `CreateSession/SendAndWait/Stop`;.NET `CreateSessionAsync/SendAndWaitAsync/DisposeAsync`。

## 互见

- GitHub Copilot SDK: https://github.com/github/copilot-sdk
- Copilot CLI 安装: https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli
- MCP 协议规范: https://modelcontextprotocol.io
- 同域可参考:claude-api(Anthropic SDK 集成对照)。

---
采编自 sickn33/antigravity-awesome-skills(MIT),原技能 `copilot-sdk`。

Attribution

findscripterfindscripter
View sourceSee grades on GitHubMore from findscripter →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698461 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →