Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@

Agents for every app.

Embed Copilot's agentic workflows in your application—now available in Technical preview as a programmable SDK for Python, TypeScript, Go, .NET, and Java.
Embed Copilot's agentic workflows in your application—now available in public preview as a programmable SDK for Python, TypeScript, Go, .NET, and Java.

The GitHub Copilot SDK exposes the same engine behind Copilot CLI: a production-tested agent runtime you can invoke programmatically. No need to build your own orchestration—you define agent behavior, Copilot handles planning, tool invocation, file edits, and more.

## Available SDKs

| SDK | Location | Cookbook | Installation |
| ------------------------ | -------------- | ------------------------------------------------- | ----------------------------------------- |
| **Node.js / TypeScript** | [`nodejs/`](./nodejs/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/nodejs/README.md) | `npm install @github/copilot-sdk` |
| **Python** | [`python/`](./python/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/python/README.md) | `pip install github-copilot-sdk` |
| **Go** | [`go/`](./go/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/go/README.md) | `go get github.com/github/copilot-sdk/go` |
| **.NET** | [`dotnet/`](./dotnet/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/dotnet/README.md) | `dotnet add package GitHub.Copilot.SDK` |
| **Java** | [`github/copilot-sdk-java`](https://github.com/github/copilot-sdk-java) | WIP | Maven coordinates<br>`com.github:copilot-sdk-java`<br>See instructions for [Maven](https://github.com/github/copilot-sdk-java?tab=readme-ov-file#maven) and [Gradle](https://github.com/github/copilot-sdk-java?tab=readme-ov-file#gradle) |
| SDK | Location | Cookbook | Installation |
| ------------------------ | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Node.js / TypeScript** | [`nodejs/`](./nodejs/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/nodejs/README.md) | `npm install @github/copilot-sdk` |
| **Python** | [`python/`](./python/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/python/README.md) | `pip install github-copilot-sdk` |
| **Go** | [`go/`](./go/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/go/README.md) | `go get github.com/github/copilot-sdk/go` |
| **.NET** | [`dotnet/`](./dotnet/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/dotnet/README.md) | `dotnet add package GitHub.Copilot.SDK` |
| **Java** | [`github/copilot-sdk-java`](https://github.com/github/copilot-sdk-java) | WIP | Maven coordinates<br>`com.github:copilot-sdk-java`<br>See instructions for [Maven](https://github.com/github/copilot-sdk-java?tab=readme-ov-file#maven) and [Gradle](https://github.com/github/copilot-sdk-java?tab=readme-ov-file#gradle) |

See the individual SDK READMEs for installation, usage examples, and API reference.

Expand Down Expand Up @@ -71,6 +71,7 @@ Yes, the GitHub Copilot SDK supports BYOK (Bring Your Own Key). You can configur
### What authentication methods are supported?

The SDK supports multiple authentication methods:

- **GitHub signed-in user** - Uses stored OAuth credentials from `copilot` CLI login
- **OAuth GitHub App** - Pass user tokens from your GitHub OAuth app
- **Environment variables** - `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`, `GITHUB_TOKEN`
Expand Down Expand Up @@ -100,14 +101,13 @@ Yes, check out the custom instructions for each SDK:
- **[Go](https://github.com/github/awesome-copilot/blob/main/instructions/copilot-sdk-go.instructions.md)**
- **[Java](https://github.com/github/copilot-sdk-java/blob/main/instructions/copilot-sdk-java.instructions.md)**


### What models are supported?

All models available via Copilot CLI are supported in the SDK. The SDK also exposes a method which will return the models available so they can be accessed at runtime.

### Is the SDK production-ready?

The GitHub Copilot SDK is currently in Technical Preview. While it is functional and can be used for development and testing, it may not yet be suitable for production use.
The GitHub Copilot SDK is currently in Public Preview. While it is functional and can be used for development and testing, it may not yet be suitable for production use.
Copy link

Copilot AI Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README uses both “public preview” (line 11) and “Public Preview” (line 110) to describe the release stage. Please standardize the capitalization/term across the document so it’s consistent and easier to search/translate (e.g., pick one form and use it everywhere).

Suggested change
The GitHub Copilot SDK is currently in Public Preview. While it is functional and can be used for development and testing, it may not yet be suitable for production use.
The GitHub Copilot SDK is currently in public preview. While it is functional and can be used for development and testing, it may not yet be suitable for production use.

Copilot uses AI. Check for mistakes.

### How do I report issues or request features?

Expand All @@ -128,11 +128,11 @@ Please use the [GitHub Issues](https://github.com/github/copilot-sdk/issues) pag

⚠️ Disclaimer: These are unofficial, community-driven SDKs and they are not supported by GitHub. Use at your own risk.

| SDK | Location |
| --------------| ----------------------------------------------------------------- |
| **Rust** | [copilot-community-sdk/copilot-sdk-rust][sdk-rust] |
| **Clojure** | [copilot-community-sdk/copilot-sdk-clojure][sdk-clojure] |
| **C++** | [0xeb/copilot-sdk-cpp][sdk-cpp] |
| SDK | Location |
| ----------- | -------------------------------------------------------- |
| **Rust** | [copilot-community-sdk/copilot-sdk-rust][sdk-rust] |
| **Clojure** | [copilot-community-sdk/copilot-sdk-clojure][sdk-clojure] |
| **C++** | [0xeb/copilot-sdk-cpp][sdk-cpp] |

[sdk-rust]: https://github.com/copilot-community-sdk/copilot-sdk-rust
[sdk-cpp]: https://github.com/0xeb/copilot-sdk-cpp
Expand Down
17 changes: 9 additions & 8 deletions dotnet/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

SDK for programmatic control of GitHub Copilot CLI.

> **Note:** This SDK is in technical preview and may change in breaking ways.
> **Note:** This SDK is in public preview and may change in breaking ways.
## Installation

Expand Down Expand Up @@ -170,6 +170,7 @@ using var subscription = client.On(SessionLifecycleEventTypes.Foreground, evt =>
```

**Lifecycle Event Types:**

- `SessionLifecycleEventTypes.Created` - A new session was created
- `SessionLifecycleEventTypes.Deleted` - A session was deleted
- `SessionLifecycleEventTypes.Updated` - A session was updated
Expand Down Expand Up @@ -766,13 +767,13 @@ var session = await client.CreateSessionAsync(new SessionConfig

### Permission Result Kinds

| Value | Meaning |
|-------|---------|
| `PermissionRequestResultKind.Approved` | Allow the tool to run |
| `PermissionRequestResultKind.DeniedInteractivelyByUser` | User explicitly denied the request |
| `PermissionRequestResultKind.DeniedCouldNotRequestFromUser` | No approval rule matched and user could not be asked |
| `PermissionRequestResultKind.DeniedByRules` | Denied by a policy rule |
| `PermissionRequestResultKind.NoResult` | Leave the permission request unanswered (the SDK returns without calling the RPC). Not allowed for protocol v2 permission requests (will be rejected). |
| Value | Meaning |
| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `PermissionRequestResultKind.Approved` | Allow the tool to run |
| `PermissionRequestResultKind.DeniedInteractivelyByUser` | User explicitly denied the request |
| `PermissionRequestResultKind.DeniedCouldNotRequestFromUser` | No approval rule matched and user could not be asked |
| `PermissionRequestResultKind.DeniedByRules` | Denied by a policy rule |
| `PermissionRequestResultKind.NoResult` | Leave the permission request unanswered (the SDK returns without calling the RPC). Not allowed for protocol v2 permission requests (will be rejected). |

### Resuming Sessions

Expand Down
22 changes: 13 additions & 9 deletions go/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

A Go SDK for programmatic access to the GitHub Copilot CLI.

> **Note:** This SDK is in technical preview and may change in breaking ways.
> **Note:** This SDK is in public preview and may change in breaking ways.

## Installation

Expand Down Expand Up @@ -180,7 +180,7 @@ Event types: `SessionLifecycleCreated`, `SessionLifecycleDeleted`, `SessionLifec
- `Abort(ctx context.Context) error` - Abort the currently processing message
- `GetMessages(ctx context.Context) ([]SessionEvent, error)` - Get message history
- `Disconnect() error` - Disconnect the session (releases in-memory resources, preserves disk state)
- `Destroy() error` - *(Deprecated)* Use `Disconnect()` instead
- `Destroy() error` - _(Deprecated)_ Use `Disconnect()` instead
- `UI() *SessionUI` - Interactive UI API for elicitation dialogs
- `Capabilities() SessionCapabilities` - Host capabilities (e.g. elicitation support)

Expand Down Expand Up @@ -230,6 +230,7 @@ session, err := client.CreateSession(ctx, &copilot.SessionConfig{
Available section constants: `SectionIdentity`, `SectionTone`, `SectionToolEfficiency`, `SectionEnvironmentContext`, `SectionCodeChangeRules`, `SectionGuidelines`, `SectionSafety`, `SectionToolInstructions`, `SectionCustomInstructions`, `SectionLastInstructions`.

Each section override supports four actions:

- **`replace`** — Replace the section content entirely
- **`remove`** — Remove the section from the prompt
- **`append`** — Add content after the existing section
Expand Down Expand Up @@ -543,7 +544,9 @@ session, err := client.CreateSession(context.Background(), &copilot.SessionConfi
},
})
```

> **Important notes:**
>
> - When using a custom provider, the `Model` parameter is **required**. The SDK will return an error if no model is specified.
> - For Azure OpenAI endpoints (`*.openai.azure.com`), you **must** use `Type: "azure"`, not `Type: "openai"`.
> - The `BaseURL` should be just the host (e.g., `https://my-resource.openai.azure.com`). Do **not** include `/openai/v1` in the URL - the SDK handles path construction automatically.
Expand Down Expand Up @@ -623,13 +626,13 @@ session, err := client.CreateSession(context.Background(), &copilot.SessionConfi

### Permission Result Kinds

| Constant | Meaning |
|----------|---------|
| `PermissionRequestResultKindApproved` | Allow the tool to run |
| `PermissionRequestResultKindDeniedInteractivelyByUser` | User explicitly denied the request |
| `PermissionRequestResultKindDeniedCouldNotRequestFromUser` | No approval rule matched and user could not be asked |
| `PermissionRequestResultKindDeniedByRules` | Denied by a policy rule |
| `PermissionRequestResultKindNoResult` | Leave the permission request unanswered (protocol v1 only; not allowed for protocol v2) |
| Constant | Meaning |
| ---------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| `PermissionRequestResultKindApproved` | Allow the tool to run |
| `PermissionRequestResultKindDeniedInteractivelyByUser` | User explicitly denied the request |
| `PermissionRequestResultKindDeniedCouldNotRequestFromUser` | No approval rule matched and user could not be asked |
| `PermissionRequestResultKindDeniedByRules` | Denied by a policy rule |
| `PermissionRequestResultKindNoResult` | Leave the permission request unanswered (protocol v1 only; not allowed for protocol v2) |

### Resuming Sessions

Expand Down Expand Up @@ -840,6 +843,7 @@ session, err := client.CreateSession(ctx, &copilot.SessionConfig{
```

When `OnElicitationRequest` is provided, the SDK automatically:

- Sends `requestElicitation: true` in the create/resume payload
- Routes `elicitation.requested` events to your handler
- Auto-cancels the request if your handler returns an error (so the server doesn't hang)
Expand Down
24 changes: 12 additions & 12 deletions java/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Java SDK for programmatic control of GitHub Copilot CLI via JSON-RPC.

> **📦 The Java SDK is maintained in a separate repository: [`github/copilot-sdk-java`](https://github.com/github/copilot-sdk-java)**
>
> **Note:** This SDK is in technical preview and may change in breaking ways.
> **Note:** This SDK is in public preview and may change in breaking ways.

[![Build](https://github.com/github/copilot-sdk-java/actions/workflows/build-test.yml/badge.svg)](https://github.com/github/copilot-sdk-java/actions/workflows/build-test.yml)
[![Maven Central](https://img.shields.io/maven-central/v/com.github/copilot-sdk-java)](https://central.sonatype.com/artifact/com.github/copilot-sdk-java)
Expand Down Expand Up @@ -61,17 +61,17 @@ jbang https://github.com/github/copilot-sdk-java/blob/main/jbang-example.java

## Documentation & Resources

| Resource | Link |
|----------|------|
| **Full Documentation** | [github.github.io/copilot-sdk-java](https://github.github.io/copilot-sdk-java/) |
| **Getting Started Guide** | [Documentation](https://github.github.io/copilot-sdk-java/latest/documentation.html) |
| **API Reference (Javadoc)** | [javadoc.io](https://javadoc.io/doc/com.github/copilot-sdk-java/latest/index.html) |
| **MCP Servers Integration** | [MCP Guide](https://github.github.io/copilot-sdk-java/latest/mcp.html) |
| **Cookbook** | [Recipes](https://github.com/github/copilot-sdk-java/tree/main/src/site/markdown/cookbook) |
| **Source Code** | [github/copilot-sdk-java](https://github.com/github/copilot-sdk-java) |
| **Issues & Feature Requests** | [GitHub Issues](https://github.com/github/copilot-sdk-java/issues) |
| **Releases** | [GitHub Releases](https://github.com/github/copilot-sdk-java/releases) |
| **Copilot Instructions** | [copilot-sdk-java.instructions.md](https://github.com/github/copilot-sdk-java/blob/main/instructions/copilot-sdk-java.instructions.md) |
| Resource | Link |
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| **Full Documentation** | [github.github.io/copilot-sdk-java](https://github.github.io/copilot-sdk-java/) |
| **Getting Started Guide** | [Documentation](https://github.github.io/copilot-sdk-java/latest/documentation.html) |
| **API Reference (Javadoc)** | [javadoc.io](https://javadoc.io/doc/com.github/copilot-sdk-java/latest/index.html) |
| **MCP Servers Integration** | [MCP Guide](https://github.github.io/copilot-sdk-java/latest/mcp.html) |
| **Cookbook** | [Recipes](https://github.com/github/copilot-sdk-java/tree/main/src/site/markdown/cookbook) |
| **Source Code** | [github/copilot-sdk-java](https://github.com/github/copilot-sdk-java) |
| **Issues & Feature Requests** | [GitHub Issues](https://github.com/github/copilot-sdk-java/issues) |
| **Releases** | [GitHub Releases](https://github.com/github/copilot-sdk-java/releases) |
| **Copilot Instructions** | [copilot-sdk-java.instructions.md](https://github.com/github/copilot-sdk-java/blob/main/instructions/copilot-sdk-java.instructions.md) |

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion nodejs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

TypeScript SDK for programmatic control of GitHub Copilot CLI via JSON-RPC.

> **Note:** This SDK is in technical preview and may change in breaking ways.
> **Note:** This SDK is in public preview and may change in breaking ways.

## Installation

Expand Down
Loading
Loading