{"meta":{"title":"Setup guides","intro":"These guides walk you through configuring the Copilot SDK for your specific use case—from personal side projects to production platforms serving thousands of users.","product":"GitHub Copilot","breadcrumbs":[{"href":"/en/copilot","title":"GitHub Copilot"},{"href":"/en/copilot/how-tos","title":"How-tos"},{"href":"/en/copilot/how-tos/copilot-sdk","title":"Copilot SDK"},{"href":"/en/copilot/how-tos/copilot-sdk/setup","title":"Set up Copilot SDK"},{"href":"/en/copilot/how-tos/copilot-sdk/setup/choosing-a-setup-path","title":"Choosing A Setup Path"}],"documentType":"article"},"body":"# Setup guides\n\nThese guides walk you through configuring the Copilot SDK for your specific use case—from personal side projects to production platforms serving thousands of users.\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\n## Architecture at a glance\n\nEvery Copilot SDK integration follows the same core pattern: your application talks to the SDK, which communicates with the Copilot CLI over JSON-RPC. What changes across setups is **where the CLI runs**, **how users authenticate**, and **how sessions are managed**.\n\n![Diagram: Flowchart showing the described process.](/assets/images/help/copilot/copilot-sdk/setup-choosing-a-setup-path-diagram-0.png)\n\nThe setup guides below help you configure each layer for your scenario.\n\n## Who are you?\n\n### 🧑‍💻 Hobbyist\n\nYou're building a personal assistant, side project, or experimental app. You want the simplest path to getting Copilot in your code.\n\n**Start with:**\n\n1. **[Default setup (bundled CLI)](/en/copilot/how-tos/copilot-sdk/setup/bundled-cli)**—The SDK includes the CLI automatically—just install and go\n2. **[Local CLI setup](/en/copilot/how-tos/copilot-sdk/setup/local-cli)**—Use your own CLI binary or running instance (advanced)\n\n### 🏢 Internal app developer\n\nYou're building tools for your team or company. Users are employees who need to authenticate with their enterprise GitHub accounts or org memberships.\n\n**Start with:**\n\n1. **[GitHub OAuth setup](/en/copilot/how-tos/copilot-sdk/setup/github-oauth)**—Let employees sign in with their GitHub accounts\n2. **[Backend services setup](/en/copilot/how-tos/copilot-sdk/setup/backend-services)**—Run the SDK in your internal services\n\n**If scaling beyond a single server:**\n\n1. **[Multi-tenancy and server deployments](/en/copilot/how-tos/copilot-sdk/setup/multi-tenancy)**—Configure SDK options for multi-user server mode\n2. **[Scaling and multi-tenancy](/en/copilot/how-tos/copilot-sdk/setup/scaling)**—Handle multiple users and services\n\n### 🚀 App developer (ISV)\n\nYou're building a product for customers. You need to handle authentication for your users—either through GitHub or by managing identity yourself.\n\n**Start with:**\n\n1. **[GitHub OAuth setup](/en/copilot/how-tos/copilot-sdk/setup/github-oauth)**—Let customers sign in with GitHub\n2. **[BYOK (bring your own key)](/en/copilot/how-tos/copilot-sdk/auth/byok)**—Manage identity yourself with your own model keys\n3. **[Backend services setup](/en/copilot/how-tos/copilot-sdk/setup/backend-services)**—Power your product from server-side code\n\n**For production:**\n\n1. **[Multi-tenancy and server deployments](/en/copilot/how-tos/copilot-sdk/setup/multi-tenancy)**—Use `mode: \"empty\"`, per-session tokens, and isolated runtime state\n2. **[Scaling and multi-tenancy](/en/copilot/how-tos/copilot-sdk/setup/scaling)**—Serve many customers reliably\n\n### 🏗️ Platform developer\n\nYou're embedding Copilot into a platform—APIs, developer tools, or infrastructure that other developers build on. You need fine-grained control over sessions, scaling, and multi-tenancy.\n\n**Start with:**\n\n1. **[Backend services setup](/en/copilot/how-tos/copilot-sdk/setup/backend-services)**—Core server-side integration\n2. **[Multi-tenancy and server deployments](/en/copilot/how-tos/copilot-sdk/setup/multi-tenancy)**—SDK-level isolation, per-session auth, and shared runtime options\n3. **[Scaling and multi-tenancy](/en/copilot/how-tos/copilot-sdk/setup/scaling)**—Session isolation, horizontal scaling, persistence\n\n**Depending on your auth model:**\n\n1. **[GitHub OAuth setup](/en/copilot/how-tos/copilot-sdk/setup/github-oauth)**—For GitHub-authenticated users\n2. **[BYOK (bring your own key)](/en/copilot/how-tos/copilot-sdk/auth/byok)**—For self-managed identity and model access\n\n## Decision matrix\n\nUse this table to find the right guides based on what you need to do:\n\n| What you need                                     | Guide                                                                                            |\n| ------------------------------------------------- | ------------------------------------------------------------------------------------------------ |\n| Getting started quickly                           | [Default setup (bundled CLI)](/en/copilot/how-tos/copilot-sdk/setup/bundled-cli)                 |\n| Use your own CLI binary or server                 | [Local CLI setup](/en/copilot/how-tos/copilot-sdk/setup/local-cli)                               |\n| Users sign in with GitHub                         | [GitHub OAuth setup](/en/copilot/how-tos/copilot-sdk/setup/github-oauth)                         |\n| Use your own model keys (OpenAI, Azure, and more) | [BYOK (bring your own key)](/en/copilot/how-tos/copilot-sdk/auth/byok)                           |\n| Azure BYOK with Managed Identity (no API keys)    | [Azure managed identity with BYOK](/en/copilot/how-tos/copilot-sdk/setup/azure-managed-identity) |\n| Run the SDK on a server                           | [Backend services setup](/en/copilot/how-tos/copilot-sdk/setup/backend-services)                 |\n| Configure SDK options for concurrent users        | [Multi-tenancy and server deployments](/en/copilot/how-tos/copilot-sdk/setup/multi-tenancy)      |\n| Serve multiple users / scale horizontally         | [Scaling and multi-tenancy](/en/copilot/how-tos/copilot-sdk/setup/scaling)                       |\n\n## Configuration comparison\n\n![Diagram: Flowchart showing the described process.](/assets/images/help/copilot/copilot-sdk/setup-choosing-a-setup-path-diagram-1.png)\n\n## Prerequisites\n\nAll guides assume you have:\n\n* **One of the SDKs** installed (Node.js, Python, and .NET SDKs include the CLI automatically):\n  * Node.js: `npm install @github/copilot-sdk`\n  * Python: `pip install github-copilot-sdk`\n  * Go: `go get github.com/github/copilot-sdk/go` (requires separate CLI installation)\n  * .NET: `dotnet add package GitHub.Copilot.SDK`\n\nIf you're brand new, start with the **[Build your first Copilot-powered app](/en/copilot/how-tos/copilot-sdk/getting-started)** first, then come back here for production configuration.\n\n## Next steps\n\nPick the guide that matches your situation from the [decision matrix](#decision-matrix) above, or start with the persona description closest to your role."}