
GitHub Copilot SDK
github.com/github/copilot-sdk- Category
- Developer Tools
- Rank
- No. 84Tools index
- Type
- APP
- Builder
- github
- GitHub
- 10.5k stars
- Latest release
- v1.0.14-preview.1
- Date
About
A multi-platform SDK for embedding the GitHub Copilot agent into your own apps and services.
What it does
It gives application code direct control over Copilot CLI’s agent runtime. Your program creates sessions while the runtime plans work, invokes tools, edits files, streams events, and preserves session state. A language-specific client communicates with the CLI server over JSON-RPC and manages its process lifecycle.
Why it's ranked here
The case is strong for teams that want a complete agent loop instead of assembling orchestration themselves. Six language implementations, custom tools, hooks, MCP connections, persistent sessions, and several authentication paths cover both prototypes and serious services. The CLI-centered architecture and operational responsibilities prevent it from being a universal fit.
What's good
The SDK exposes unusually practical control points. Hooks can filter prompts, approve or deny tool use, redact results, and handle failures. Applications can add custom agents, reusable skills, local or remote MCP servers, streaming responses, session budgets, citations, and persistence. Bring-your-own-key support also separates agent orchestration from GitHub authentication and billing.
Tradeoffs
Every client talks to a Copilot CLI server, so this is not a self-contained model library. Node.js, Python, and .NET bundle the CLI, while Go, Java, and Rust require separate installation unless application-level bundling is configured. Standard use requires a Copilot subscription, prompts consume its allowance, and shared sessions need application-provided locking.
How to use it well
It suits platform teams and SaaS builders adding tool-using assistants, code workflows, or persistent agent sessions to existing products. Start with one isolated session, restrict tools through permissions and hooks, then choose per-user or shared CLI deployment based on isolation needs. It does not provide shared-session locking or design your tenant boundaries for you.
Technical notes+
README.md defines six SDK implementations and a JSON-RPC boundary to Copilot CLI in server mode. docs/getting-started.md shows session creation, synchronous replies, streaming events, and custom tools across the supported languages. docs/features/hooks.md documents lifecycle, prompt, tool, result, failure, and error interception. docs/features/mcp.md supports local stdio and remote HTTP/SSE servers with per-server tool filters. docs/auth/byok.md describes OpenAI-compatible, Azure, and Anthropic provider configurations. docs/setup/scaling.md makes isolation and locking application concerns, including dedicated CLI instances, shared servers, persistent storage, and horizontal scaling patterns.
Observed
- Language SDKs
- TypeScript, Python, Go, .NET, Java, and Rust
- Package distribution
- Published through npm, PyPI, Go modules, NuGet, crates.io, and Maven Central
- Runtime interface
- Language libraries communicate with Copilot CLI server mode over JSON-RPC
- CLI packaging
- Bundled for Node.js, Python, and .NET; external by default for Go, Java, and Rust
- MCP support
- Local stdio subprocesses and remote HTTP/SSE servers
- Authentication surface
- GitHub user credentials, GitHub App OAuth tokens, environment tokens, and bring-your-own-key providers
Read from README.md, docs/README.md, docs/getting-started.md, docs/auth/byok.md, docs/auth/README.md, docs/features/mcp.md, docs/hooks/README.md, docs/setup/README.md, docs/setup/scaling.md, docs/features/hooks.md, docs/features/README.md, docs/features/skills.md.
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.