Copilot SDK

SkillAI & models

Embed the GitHub Copilot agent runtime into your own application using the Copilot SDK. USE FOR: CopilotClient/createSession setup, streaming responses, custom tools, permission handlers, hooks (pre/post-tool-use, session-start), custom agents and sub-agent delegation, MCP servers, skill and plugin directories, session persistence, fleet mode, steering/queueing, calling the SDK from skill scripts/ to run one bounded non-deterministic AI step inside an otherwise deterministic script, and choosing an auth/deployment path (CLI setup, backend services, multi-tenancy, GitHub OAuth, BYOK). Covers Node.js/TypeScript (@github/copilot-sdk), Python (github-copilot-sdk), Go (github.com/github/copilot-sdk/go), Rust (github-copilot-sdk crate), .NET (GitHub.Copilot.SDK), and Java (copilot-sdk-java). DO NOT USE FOR: authoring SKILL.md files consumed by VS Code Copilot (use create-skill instead); using the Copilot IDE extension or chat UI directly; general LLM/chat API integration unrelated to the Copilot SDK.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Copilot SDK skill

What this skill tells your AI

The instructions your AI receives, as published by netfabric/netfabric.numerics in .agents/skills/copilot-sdk/SKILL.md and read by ahel’s review.

Library for embedding the GitHub Copilot agent (via the copilot CLI over JSON-RPC) as the reasoning engine inside your own app, across six languages.

Core concepts

ConceptDescription
CopilotClientTop-level object; starts/stops the underlying CLI process
SessionOne conversation; holds model, tools, hooks, agents, MCP servers
sendAndWait / sendSend a prompt and await the final reply, or fire-and-forget with event streaming
Custom toolFunction Copilot can call mid-conversation (name, JSON-schema params, handler)
Permission handlerApproves/denies tool calls (approve-once, approve-for-session, deny, ask)
HookIntercepts lifecycle points (onPreToolUse, onPostToolUse, onSessionStart, ...)
Custom agentNamed sub-agent with its own prompt + scoped tools, auto-delegated to
MCP serverExternal tool provider (stdio subprocess or HTTP) wired into a session
Skill directoryFolder of SKILL.md files injected into session context
Plugin directoryBundle of skills/hooks/MCP servers/agents behind one manifest, loaded via --plugin-dir

Pattern: deterministic scripts, non-deterministic steps

A skill's scripts/ automation doesn't have to be 100% deterministic. Have the script call the SDK for one bounded, ambiguous sub-step (classify input, pick a strategy, summarize a diff), then resume plain code for the rest — the AI call is scoped and its output validated/parsed like any other function result, so the surrounding pipeline stays testable and reproducible. See create-skill's Scripts & Assets conventions for where this fits in a skill's folder layout.

Language support

LanguagePackageRuntimeCLI required separately?
Node.js / TS@github/copilot-sdkNode 20+No (bundled)
Pythongithub-copilot-sdkPython 3.11+No (bundled)
.NETGitHub.Copilot.SDK.NET 8+No (bundled)
Gogithub.com/github/copilot-sdk/goGo 1.24+Yes, unless app bundles it
Javacom.github:copilot-sdk-javaJava 17+Yes, unless app bundles it
Rustgithub-copilot-sdk crateRust 1.94+Yes, unless app bundles it

Verify any environment with copilot --version before writing code.

Minimal session (Node.js; other languages in language-quickstarts.md)

import { CopilotClient } from "@github/copilot-sdk";

const client = new CopilotClient();
const session = await client.createSession({ model: "auto" });
const response = await session.sendAndWait({ prompt: "What is 2 + 2?" });
console.log(response?.data.content);
await client.stop();

Workflow: build an app

  1. Pick a deployment persona (hobbyist/internal/ISV/platform) and auth method → setup-and-auth.md
  2. Install the SDK for your language, confirm copilot --versionlanguage-quickstarts.md
  3. Create client + session (model, streaming, onPermissionRequest), send prompts, subscribe to events → core-session-api.md
  4. Layer in custom tools, hooks, custom agents, MCP servers, or skill/plugin directories as needed → advanced-features.md
  5. For production, revisit auth/scaling (multi-tenancy, per-session tokens) → setup-and-auth.md

Reference Files

FileLoad When
references/setup-and-auth.mdChoosing a setup path, configuring auth (OAuth, BYOK, server-to-server), scaling/multi-tenancy
references/core-session-api.mdClient/session lifecycle, sending messages, streaming events, custom tools, permission decisions
references/advanced-features.mdHooks, custom agents, MCP servers, skill directories, plugin directories, fleet mode, persistence
references/language-quickstarts.mdPer-language install commands and hello-world snippets

Signals

GitHub stars
36
Forks
1
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
copilot-sdk-netfabric
Source
github.com/netfabric/netfabric.numerics