Dev & Engineering ✓ Microsoft · Official github-copilotcopilot-sdkjson-rpcmcpstreamingsession-persistencecustom-tools

GitHub Copilot SDK Builder

Build programmable GitHub Copilot applications and agent workflows through one multi-language SDK.

FollowSkills review · FSRS-2.0
Not recommended
49/ 100 5-point scale 2.5 / 5
Trust13 / 25 · 2.6/5

The document discloses stdio/TCP, MCP, model providers, tokens, session persistence, and tool execution, and includes permission-hook examples, a denial example, session deletion, and cleanup guidance. However, the remote MCP example uses bearer credentials with tools:["*"], persistence stores full conversations and tool results, and user confirmation, least privilege, sensitive-data boundaries, and rollback are incomplete, so points are deducted.

Reliability8 / 20 · 2.0/5

The skill provides multi-language core flows, timeout and retry behavior, error hooks, and abnormal-case guidance; the repository also contains related tests and evaluation workflows. Static review cannot verify dependency versions, API correctness, cross-language key paths, or runtime failure behavior, and the supplied skill text is truncated at Client Configuration, so the score remains below the static ceiling.

Adaptability8 / 15 · 2.7/5

Audience, supported languages, prerequisites, core scenarios, and deployment modes are reasonably clear. Non-fit boundaries, trigger precision, version compatibility, and Chinese-language guidance are limited; core use depends on GitHub Copilot CLI, subscriptions, or remote endpoints, with no mainland-China reachability guidance, so points are deducted.

Convention8 / 15 · 2.7/5

Information is organized progressively across prerequisites, installation, architecture, examples, permissions, security, persistence, and deployment. MIT licensing, official provenance, a README catalog, and security-reporting guidance are present. However, the repository declares work-in-progress status, while skill versioning, changelog, maintenance ownership, update path, FAQ coverage, and complete documentation boundaries are weak; the SKILL.md also appears incomplete.

Effectiveness7 / 15 · 2.3/5

The skill covers clients, sessions, streaming, tools, hooks, MCP, BYOK, persistence, agents, and deployment, with directly reusable examples in four languages. Correctness, current SDK compatibility, complete outputs, and comparative benefit are not statically demonstrated, so effectiveness is capped at 7.

Verifiability5 / 10 · 2.5/5

The evidence includes the selected skill, MIT license, README, CI evaluation workflows, test code, and error-classification tests, providing some auditability. There are no executed results, coverage reports, or third-party corroboration for this skill, and no reproduction was performed, so the static ceiling of 5 applies.

Evidence confidence:Low Reviewed Jul 20, 2026 Reviewed revision 9ccaf7c3704a
Before you use it
  • Before using remote MCP, shell access, or persistent sessions, restrict tool sets, isolate working directories, review token propagation, and obtain per-action user confirmation; do not use tools:["*"] or environment-token examples directly in production.
  • The examples depend on GitHub Copilot CLI, a subscription, or external model endpoints; verify current SDK versions, regional network reachability, authentication permissions, and language-specific API compatibility first.
  • The repository is marked work in progress, and the supplied SKILL.md is incomplete at Client Configuration; documentation and CI presence should not be treated as proof of production readiness.
See the full review method →

What it does & when to use it

This skill helps developers build applications that interact programmatically with GitHub Copilot through the Copilot SDK and CLI. It covers Node.js/TypeScript, Python, Go, and .NET, including sessions, streaming, custom tools, hooks, MCP, BYOK, persistence, custom agents, and deployment. It is suited to teams embedding Copilot capabilities into backend services, desktop applications, or automated workflows. A GitHub Copilot CLI installation and authentication are normally required, along with a Copilot subscription unless BYOK is used.

Provides installation and client/session examples for four languages; explains stdio and TCP communication with the Copilot CLI; configures streaming events, custom tools, permission handlers, lifecycle hooks, and error handling; connects local or HTTP MCP servers; configures GitHub credentials or BYOK providers including OpenAI, Azure, Anthropic, and Ollama; creates, resumes, lists, and deletes sessions; and covers custom agents, skill directories, infinite sessions, and Docker Compose deployment.

  1. A Node.js, Python, Go, or .NET team adding programmable Copilot sessions to a backend service.
  2. An interactive application that needs to display model output incrementally as it arrives.
  3. A development team exposing business APIs, weather data, or other functions as custom tools for Copilot.
  4. An application that must approve tool calls, modify arguments, redact results, or record session metrics.
  5. An agent application that needs local or remote MCP server integrations.
  6. A multi-user service that must isolate sessions or resume conversations after an application restart.

Pros & cons

Pros
  • Supports Node.js/TypeScript, Python, Go, and .NET.
  • Covers sessions, streaming, custom tools, hooks, MCP, BYOK, and deployment patterns in one guide.
  • Documents both local stdio and TCP CLI connectivity.
  • Includes practical guidance for persistence, permissions, error handling, and production deployment.
Limitations
  • Requires the GitHub Copilot CLI; an Individual, Business, or Enterprise subscription is normally also required.
  • BYOK tokens do not refresh automatically, and provider configuration must be supplied again when resuming a session.
  • The SDK does not provide interactive CLI UI, slash commands, login/logout flows, session export, or several other CLI-only features.
  • The source does not provide an independent test suite for this skill or verification results for each runtime platform.

How to install

Install the repository's skill collection in Copilot CLI with npx skills add microsoft/skills. Select the required skill in the wizard; for GitHub Copilot, it is installed under the selected agent directory, such as .github/skills/. Install the SDK package for your language with npm install @github/copilot-sdk, pip install github-copilot-sdk, go get github.com/github/copilot-sdk/go, or dotnet add package GitHub.Copilot.SDK. The Copilot CLI must also be installed and authenticated before using the SDK.

How to use

In an Agent Skills-compatible coding agent, trigger the skill for a task such as: “Build a resumable Python Copilot SDK session with one custom tool.” Create a CopilotClient, create a session, call send or sendAndWait, and configure streaming, tools, hooks, mcpServers, provider, or sessionId as needed. Stop the client when finished. Use the language-specific examples in the skill for exact API shapes.

Compared to similar skills

Compared with using the Copilot CLI directly, this skill focuses on embedding Copilot into applications through programmatic session, message, tool, event, and deployment APIs. The CLI still provides interactive UI, slash commands, authentication flows, and session export that are not available in the SDK.

FAQ

Is a GitHub Copilot subscription required?
A subscription is normally required for GitHub Copilot service access: Individual, Business, or Enterprise. BYOK does not require a Copilot subscription, but it requires credentials for a supported model provider.
How does the SDK connect to Copilot?
The SDK communicates with the Copilot CLI over JSON-RPC. By default it runs the CLI as a subprocess over stdio, or it can connect to an external CLI server over TCP.
Can sessions survive an application restart?
Yes. Create a session with a custom sessionId and later call resumeSession. Conversation history, tool results, planning state, and session artifacts are persisted; API keys and in-memory tool state are not.
How can an application control tool permissions?
Use onPreToolUse or onPermissionRequest to inspect tool names and arguments and return an allow, deny, or ask decision. Permission requests are denied by default unless a handler is provided.

More skills from this repository

All from microsoft/agent-skills

Dev & Engineering ✓ Microsoft · Official

Azure Identity for Python

A practical skill for securing Python Azure applications with Microsoft Entra ID credentials.

Dev & Engineering ✓ Microsoft · Official

Azure Event Hubs Java Skill

Build production-oriented Java event streaming applications on Azure Event Hubs.

Dev & Engineering ✓ Microsoft · Official

Azure Tables for Python

A practical guide to building authenticated Azure Tables applications with Python entity CRUD, queries, and partition-scoped batch operations.

Dev & Engineering ✓ Microsoft · Official

Azure Identity for TypeScript

Configure secure, flexible Microsoft Entra ID authentication for TypeScript Azure applications.

Automation & Ops ✓ Microsoft · Official

Azure Reliability Advisor

Assess and improve reliability for Azure Functions and App Service.

Dev & Engineering ✓ Microsoft · Official

Azure Cloud Architect

Guides coding agents through production-grade Azure architecture design and review using Azure Architecture Center practices.

Dev & Engineering ✓ Microsoft · Official

Azure AI Text Analytics for Python

Guides Python developers through Azure-powered text analysis and NLP workflows.

Automation & Ops ✓ Microsoft · Official

Azure Resource Architecture Visualizer

Analyze Azure resource groups and turn their dependencies into detailed Mermaid architecture diagrams.

Dev & Engineering ✓ Microsoft · Official

Azure Maps for .NET

Build .NET location features for search, routing, maps, geolocation, and weather.

Dev & Engineering ✓ Microsoft · Official

Azure AI Vision Image Analysis

Guides Python coding agents in implementing Azure AI Vision image understanding.

Dev & Engineering ✓ Microsoft · Official

Azure Blob Storage for Python

Guides secure, production-minded Blob Storage operations in Python.

Dev & Engineering ✓ Microsoft · Official

Azure Queue Storage for Python

Gives coding agents reliable Python patterns for secure Azure Queue Storage messaging and asynchronous task processing.

Automation & Ops ✓ Microsoft · Official

Azure AI Gateway Governance

Use Azure API Management to govern traffic across AI models, MCP tools, and agents.

Automation & Ops ✓ Microsoft · Official

AKS Automatic Readiness

Assess Kubernetes workloads for AKS Automatic compatibility and identify migration blockers before you switch.

Dev & Engineering ✓ Microsoft · Official

Azure Cosmos DB ARM for .NET

Provision and manage Azure Cosmos DB resources from .NET through ARM.

Dev & Engineering ✓ Microsoft · Official

Azure Playwright Workspace Manager

Provision and manage Microsoft Playwright Testing workspaces with .NET and Azure Resource Manager.

Dev & Engineering ✓ Microsoft · Official

Azure Cosmos DB for Python

A practical guide for building reliable Python applications on Azure Cosmos DB’s NoSQL API.

Dev & Engineering ✓ Microsoft · Official

Azure Key Vault SDK for Python

Gives Python coding agents practical guidance for securely managing Azure Key Vault secrets, keys, and certificates.

Dev & Engineering ✓ Microsoft · Official

Azure API Management for Python

Gives coding agents practical Python SDK patterns for managing Azure API Management services, APIs, products, subscriptions, and policies.

Dev & Engineering ✓ Microsoft · Official

Azure Monitor Query for Python

Generate Python code for querying Azure Monitor logs and metrics.

Related skills