The GitHub Copilot SDK is a multi-platform software development kit that enables developers to embed GitHub Copilot's agentic workflows directly into their applications and services. Written primarily in Java, the SDK exposes the same production-tested agent runtime that powers Copilot CLI, allowing developers to invoke agentic capabilities programmatically without building their own orchestration layer. The SDK handles planning, tool invocation, file edits, and other complex operations automatically once developers define agent behavior.
The repository provides official SDKs across six major programming languages: Node.js/TypeScript, Python, Go, .NET, Java, and Rust. Each language implementation is located in its own directory within the repository and includes installation instructions, API documentation, and cookbook examples. For Node.js, Python, and .NET, the Copilot CLI is bundled automatically as a dependency, eliminating the need for separate installation. Go, Java, and Rust require manual CLI installation or ensure the CLI is available in the system PATH, though Go and Rust expose application-level CLI bundling features for more flexible deployment.
All SDKs communicate with the Copilot CLI server through JSON-RPC, with the SDK managing the CLI process lifecycle automatically. Developers can also connect to an external CLI server for more advanced deployment scenarios. The architecture is consistent across all language implementations, providing a unified approach to agent integration regardless of the chosen platform.
The SDK supports multiple authentication methods to accommodate different use cases and deployment scenarios. Standard usage requires a GitHub Copilot subscription and can authenticate through a GitHub signed-in user, OAuth GitHub App tokens, or environment variables like COPILOT_GITHUB_TOKEN. Additionally, the SDK supports Bring Your Own Key (BYOK) authentication, allowing developers to use their own API keys from supported LLM providers such as OpenAI, Azure AI Foundry, and Anthropic without requiring GitHub authentication.
By default, the SDK exposes Copilot CLI's first-party tools similar to running the CLI with the allow-all flag, though tool execution is governed by each SDK's permission handler, enabling applications to approve, deny, or customize tool calls. Developers can customize tool availability through SDK client options and can extend functionality by implementing custom agents, skills, and tools specific to their application needs.
The repository includes comprehensive documentation covering getting started guides, setup instructions, authentication configuration, feature documentation, and troubleshooting resources. Custom instructions and SDK-specific guidance are available for each language to help developers accelerate their work with Copilot. The SDK is generally available and follows semantic versioning, with release notes tracked in a CHANGELOG file. The project welcomes community contributions through its GitHub Issues page for bug reports and feature requests, and maintains a list of unofficial community-maintained SDKs for languages like Clojure and C++ that are not officially supported by GitHub.