Phase 1/13 — Discovery

Phase 1: Discovery

Discovery complete — 297 source files in 5 languages (TypeScript 29%)

Project Identity

Property Value
Project Name copilot-sdk
Canonical Packages @github/copilot-sdk (npm), github-copilot-sdk (PyPI), GitHub.Copilot.SDK (NuGet), github.com/github/copilot-sdk/go (Go)
Repository https://github.com/github/copilot-sdk.git
Branch main
SDK Protocol Version 3 (sdk-protocol-version.json)
License MIT
Status Technical Preview

What Is This?

GitHub Copilot CLI SDKs — programmable SDKs for Python, TypeScript, Go, and .NET that embed Copilot's agentic workflows (planning, tool invocation, file edits) into applications via JSON-RPC communication with the Copilot CLI in server mode.

Architecture
flowchart LR
  A[App] --> B[SDK Client]
  B --> C["JSON-RPC / stdio"]
  C --> D["Copilot CLI\nserver mode"]
  D --> E[LLM]
          

File Counts

788
Total Files (filtered)
297
Source Code Files
~611
Test Files
~246
Configuration Files
~124
Documentation Files
2
Binary/Asset Files

Language Breakdown

Language Files Percentage Location
TypeScript (.ts) 86 29.0% nodejs/, scripts/, test/harness/
Go (.go) 75 25.3% go/
Python (.py) 69 23.2% python/
C# (.cs) 62 20.9% dotnet/
JavaScript (.js, .mjs) 5 1.7% nodejs/ (scripts)
Total 297 100%
TypeScript
86 files
Go
75 files
Python
69 files
C#
62 files
JavaScript
5 files

Primary Language: TypeScript (29%) — but this is fundamentally a 4-language polyglot repo with near-equal distribution.

Sampling Strategy

Tier 1: Exhaustive (< 500 source files — we have 297)

All source files will be analyzed completely. No sampling needed.

Monorepo Check

Indicator Found?
lerna.json No
pnpm-workspace.yaml No
packages/ No
apps/ No
workspaces in root package.json No root package.json
Result

NOT a traditional monorepo. This is a multi-SDK polyglot repository organized by language directories with independent package managers per language. Build orchestration via root justfile.

Git Repository

Property Value
.git/ present Yes
Remote https://github.com/github/copilot-sdk.git
Branch main

Key Root Files

File Purpose
justfile Cross-language build orchestration (test, lint, codegen, publish)
sdk-protocol-version.json Single source of truth for JSON-RPC protocol version (3)
README.md Project overview, installation, architecture
CONTRIBUTING.md Contribution guidelines
CHANGELOG.md Version history
CODE_OF_CONDUCT.md Community standards
SECURITY.md Security policy
SUPPORT.md Support channels
LICENSE MIT License

Top-Level Directory Purposes

Directory Purpose
nodejs/ TypeScript/Node.js SDK implementation
python/ Python SDK implementation
go/ Go SDK implementation
dotnet/ .NET/C# SDK implementation
docs/ Comprehensive documentation (31 markdown files)
scripts/ Cross-language codegen + docs validation tools
test/ Shared test harness, 30 scenario templates, 126 YAML snapshots
assets/ Repository images (2 PNG files)
.github/ CI/CD workflows, agents, dependabot, copilot instructions
.devcontainer/ Dev container configuration
.vscode/ VS Code settings + MCP config