Copilot SDK v1.0.0-beta.8: Rust SDK, Remote Sessions & API Cleanup
Copilot SDK beta.8 ships the Rust SDK, remote/cloud sessions, and a comprehensive API cleanup across all languages. GA arrives in ~one week.
TL;DR
- New Rust SDK with full feature parity — runtime bundled by default
- Remote and cloud sessions let you access Copilot from GitHub web/mobile or run entirely in the cloud
- Comprehensive API review cleaned up SDKs across all languages — breaking changes incoming
- GA drops in ~one week
New
- Rust SDK — Full Copilot support with idiomatic Rust patterns. Sessions, tools, hooks, streaming, MCP, permissions, telemetry, canvases, and remote sessions all included. Runtime bundles automatically.
- Remote sessions — Connect local Copilot sessions to GitHub backend, generating shareable URLs for web/mobile access. Toggle per-session or globally with
enableRemoteSessions. - Cloud sessions — Run sessions entirely in the cloud instead of locally. Pass repository metadata when creating a session.
- Pre-MCP tool call hook — New
preMcpToolCallhook fires before every MCP tool invocation. Inspect, modify, or block calls for authorization and logging. - Mode handler APIs —
onExitPlanModeRequestandonAutoModeSwitchRequesthandlers for plan-approval flows and automatic mode switching. - Canvas extensions — Sessions can declare interactive UI surfaces (GitHub Copilot App only, experimental).
- Provider model overrides —
ProviderConfignow supportsmodelId,wireModel,maxInputTokens, andmaxOutputTokensfor BYOK users. - Session telemetry toggle — Per-session
enableSessionTelemetryindependent of client-level config. - SDK tracing diagnostics — Built-in diagnostic tracing for SDK ↔ CLI communication troubleshooting.
Improved
- Simplified connection config — Single
connectionproperty with typed factory methods replaces scattered transport options (cliPath,cliUrl,port, etc.). send()accepts plain strings — Most common case now simpler:session.send("Hello!")instead ofsession.send({ prompt: "Hello!" }).- Permission decisions are typed factories —
PermissionDecision.ApproveOnce()instead of stringly-typed objects. getMessages()→getEvents()— Method name now accurately reflects the full event stream it returns.- .NET Framework support — C# SDK now compatible with .NET Framework (net472) alongside .NET 8+, .NET 10, and .NET Standard 2.0.
- Go discriminated unions — Generated RPC code now uses proper typed interfaces instead of flattened structs.
- Go error diagnostics — CLI stderr now captured and surfaced in error messages for easier startup troubleshooting.
Breaking Changes
- Transport config →
RuntimeConnection— All SDKs consolidate connection options into a single typed property with factory methods. copilotHome→baseDirectory— Renamed across all SDKs.getMessages()→getEvents()— Method rename reflects actual return value.- Permission results →
PermissionDecisionfactories — C#, Python, Rust now use typed factory methods instead of object literals. - Handler renames —
onExitPlanMode→onExitPlanModeRequestand similar across all SDKs. - Generated RPC type renames — Streamlined with latest schema. If you reference
rpc.*types by name, expect renames.
Migrate your app: Pass the detailed breaking changes document to GitHub Copilot and ask it to update your code. The guide includes before/after examples for every change per language.
Update: npm install @github/copilot-sdk@1.0.0-beta.8 (JavaScript/TypeScript), dotnet add package GitHub.Copilot.Sdk --version 1.0.0-beta.8 (C#), or check the release page for Python, Go, and Rust instructions.
Source: Copilot SDK