Copilot SDK v0.3.0-preview.1: Multi-Language Support, Hooks, OpenTelemetry

Copilot SDK v0.3.0-preview.1 brings public preview status with full multi-language support, OpenTelemetry observability, hooks system for permissions and auditing, and session filesystem abstraction. Breaking changes require permission handlers and update Python to 3.11+.

Copilot SDK v0.3.0-preview.1: Multi-Language Support, Hooks, OpenTelemetry

TL;DR

  • Public preview release with Node.js, Python, Go, and .NET SDKs at feature parity
  • New hooks system for permissions, auditing, and notifications across all languages
  • OpenTelemetry support, session filesystem abstraction, and per-agent skills configuration
  • Breaking change: permission handler now required on session creation

New

  • OpenTelemetry support — Comprehensive observability across all SDK languages with TelemetryConfig
  • Hooks system — onPermissionRequest, onElicitationRequest, and postToolUse handlers for all SDKs
  • Session filesystem abstraction — SessionFs for workspace-aware file operations across languages
  • Per-agent skills — Configure defaultAgent.excludedTools and skillDirectories per agent
  • Commands and UI elicitation — Node.js support for command execution and user input dialogs
  • Blob attachment type — Inline base64 data support for image inputs
  • Agent selection API — session.setModel() with mid-session model switching and reasoningEffort parameter
  • Session metadata — session.getMetadata() exposes context, filtering, and context_changed events
  • Custom system prompts — Fine-grained customize mode for system prompt overrides
  • Per-session GitHub auth — GitHubToken option for session-level authentication

Fixed

  • JSON-RPC pipe reads >64KB — Now handles short reads correctly across all SDKs
  • Go session event handler unsubscription — Reliable cleanup and data race fixes
  • Windows subprocess resolution — .cmd/.bat CLI executables now resolve properly
  • Python E2E test flakiness — Added pytest-timeout and fixed race conditions
  • .NET SDK package — Ensured no auto-update behavior
  • MCP environment variables — Send envValueMode direct across all SDKs
  • CallToolResult handling — Structured tool results now passed via RPC instead of stringified
  • ObjectDisposedException — Fixed when disposing session after client.StopAsync()
  • CLI console window — Hidden on Windows across all SDKs
  • Timeout issues — Fixed CLI download and startup timeout handling

Breaking Changes

  • Permission handler required — PermissionHandler must be provided on session creation; deny all permissions by default
  • Tool execution event renamed — tool.execution_end renamed to tool.execution_complete
  • Python minimum version bumped — Now requires Python 3.11+ (was 3.9+)
  • autoRestart feature removed — Removed across all SDKs
  • Python CopilotClient signature changed — __init__ now takes config objects instead of individual parameters
  • Python session methods updated — send() and send_and_wait() signatures changed; create_session() and resume_session() now take parameters
  • Go interface{} to any — Modernized Go type syntax
  • Literal model type removed — Python SessionConfig now uses string instead of Literal
  • copilot.types removed — Python no longer exports copilot.types module

Update via: npm install @github/copilot-sdk@0.3.0-preview.1 (Node.js), pip install github-copilot-sdk==0.3.0.preview1 (Python), go get github.com/github/copilot-sdk-go@v0.3.0-preview.1 (Go), or dotnet add package GitHub.Copilot --version 0.3.0-preview.1 (.NET)

Source: Copilot SDK