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.

Copilot SDK v1.0.0-beta.8: Rust SDK, Remote Sessions & API Cleanup

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 preMcpToolCall hook fires before every MCP tool invocation. Inspect, modify, or block calls for authorization and logging.
  • Mode handler APIsonExitPlanModeRequest and onAutoModeSwitchRequest handlers for plan-approval flows and automatic mode switching.
  • Canvas extensions — Sessions can declare interactive UI surfaces (GitHub Copilot App only, experimental).
  • Provider model overridesProviderConfig now supports modelId, wireModel, maxInputTokens, and maxOutputTokens for BYOK users.
  • Session telemetry toggle — Per-session enableSessionTelemetry independent of client-level config.
  • SDK tracing diagnostics — Built-in diagnostic tracing for SDK ↔ CLI communication troubleshooting.

Improved

  • Simplified connection config — Single connection property 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 of session.send({ prompt: "Hello!" }).
  • Permission decisions are typed factoriesPermissionDecision.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.
  • copilotHomebaseDirectory — Renamed across all SDKs.
  • getMessages()getEvents() — Method rename reflects actual return value.
  • Permission results → PermissionDecision factories — C#, Python, Rust now use typed factory methods instead of object literals.
  • Handler renamesonExitPlanModeonExitPlanModeRequest and 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