Copilot SDK v0.3.0-preview.0: Multi-Language Support, Protocol v3

Copilot SDK v0.3.0-preview.0 brings protocol v3, official Java support, session filesystem, per-agent skills, OpenTelemetry, and major breaking changes across Node, Python, Go, and .NET SDKs.

Copilot SDK v0.3.0-preview.0: Multi-Language Support, Protocol v3

TL;DR

  • Protocol v3 with event-based tool/permission broadcasts replaces v2 request-response model
  • Java SDK now official; Node, Python, Go, .NET SDKs all updated with parity features
  • Session filesystem (sessionFs), per-agent skills, and OpenTelemetry support across all languages
  • Breaking: permission handler now required on session creation; CLI auto-bundled in SDKs

New

  • Protocol v3 event model — tool and permission broadcasts now use events instead of request-response, with v2 backward compatibility adapters included
  • Java SDK official support — full-featured SDK with documentation, examples, and language tabs across all guides
  • Session filesystem (sessionFs) — structured file operations within session context across all SDK languages
  • Per-agent skills — configure skills and excluded tools per custom agent for fine-grained control
  • OpenTelemetry support — built-in telemetry across Node, Python, Go, .NET with TelemetryConfig
  • Session metadata APIsession.getMetadata() exposes context, agent info, and model capabilities
  • Mid-session model switchingsession.setModel() with reasoning effort support across all SDKs
  • Commands and UI elicitation — Node SDK adds command execution and elicitation provider support
  • Blob attachment type — inline base64 data support for image inputs
  • Custom system prompt (customize mode) — fine-grained system prompt customization across all languages
  • Agent selection API — pre-select custom agents on session creation
  • onListModels handler — BYOK mode support for custom model lists

Fixed

  • JSON-RPC pipe reads >64KB — now handles short reads correctly
  • Go session event handler unsubscription — reliable cleanup on disconnect
  • Go client data races — fixed concurrent access issues
  • .NET SDK NativeAOT compatibility — works with ahead-of-time compilation
  • Windows subprocess resolution — .cmd/.bat CLI executables now resolve correctly
  • Python wheel executable permissions — CLI binary now executable in distributions
  • MCP environment variables — envValueMode now sent as direct across all SDKs
  • ObjectDisposedException — fixed when disposing session after client.StopAsync()
  • Timeout handling — CLI startup timeout now properly cleared on stop
  • E2E test flakiness — Python timeout issues and race conditions resolved

Breaking Changes

  • Permission handler requiredonPermissionRequest handler now mandatory on session creation; no default allow-all behavior
  • autoRestart removed — feature removed across all SDKs; manage session lifecycle explicitly
  • Tool execution event renamedtool.execution_endtool.execution_complete
  • Python minimum version bumped — now requires Python 3.11+ (was 3.9)
  • CopilotClient init signature (Python) — now takes config objects instead of individual parameters
  • Session.send() signature (Python) — updated to align with other SDKs
  • Deny-all permissions default — SDKs now deny all permissions by default; explicitly approve in handler
  • CLI bundling mandatory — Copilot CLI is now auto-bundled and installed; CopilotSkipCliDownload option available to skip

Update via: npm install @github/copilot-sdk@0.3.0-preview.0 (Node), pip install github-copilot==0.3.0.preview.0 (Python), go get github.com/github/copilot-sdk/go@v0.3.0-preview.0 (Go), or NuGet for .NET. See full release notes for language-specific instructions.

Source: Copilot SDK