skills/copilot-cli-byok/SKILL.md
Configure and switch between BYOK (Bring Your Own Key) LLM providers for GitHub Copilot CLI. Use when setting up OpenAI, Azure OpenAI, Anthropic, Ollama, Moonshot, or other OpenAI-compatible endpoints; creating or switching reusable provider profiles; calculating max prompt or output token overrides; configuring wire API and reasoning effort; or troubleshooting COPILOT_PROVIDER_BASE_URL, COPILOT_PROVIDER_TYPE, COPILOT_PROVIDER_API_KEY, COPILOT_MODEL, COPILOT_PROVIDER_WIRE_API, COPILOT_PROVIDER_MAX_PROMPT_TOKENS, COPILOT_PROVIDER_MAX_OUTPUT_TOKENS, and COPILOT_OFFLINE.
npx skillsauth add arisng/github-copilot-fc copilot-cli-byokInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to configure Copilot CLI against non-GitHub-hosted model providers and to manage repeatable provider profiles.
scripts/byok-profile.ps1 for repeated use or when the user wants to switch providers quickly.${ENV_VAR} placeholders and user-scoped environment variables.scripts/byok-profile.ps1.references/providers.md.references/api-key-storage.md.references/providers.md first, then calculate conservative prompt and output limits.references/providers.md, then apply --reasoning-effort per invocation.Use scripts/byok-profile.ps1 when the user wants repeatable setup, named profiles, or quick switching.
Run the following commands from the installed copilot-cli-byok skill folder (the folder that contains this SKILL.md).
Common commands:
# List profiles
.\scripts\byok-profile.ps1 list
# Add a profile interactively
.\scripts\byok-profile.ps1 add
# Inspect a stored profile
.\scripts\byok-profile.ps1 show openai
# Run Copilot CLI with a profile for one session
.\scripts\byok-profile.ps1 run ollama
# Apply a profile to the current shell
. .\scripts\byok-profile.ps1 set-env openai
Pass extra Copilot CLI arguments through run (do not pass --model; model is sourced from the profile):
.\scripts\byok-profile.ps1 run openai --help
Profiles are stored in ~/.copilot/byok-profiles.json or $env:COPILOT_HOME\byok-profiles.json.
references/providers.md
references/api-key-storage.md
${ENV_VAR} placeholder guidance.${ENV_VAR} placeholders over raw API keys in JSON.openai as the default provider type for OpenAI-compatible endpoints such as Ollama, vLLM, Foundry Local, and Moonshot.COPILOT_PROVIDER_TYPE=azure only for Azure OpenAI and anthropic only for Anthropic.COPILOT_PROVIDER_WIRE_API=responses.COPILOT_OFFLINE=true only when the user explicitly wants Copilot CLI isolated from GitHub services; note that full isolation still depends on the provider endpoint being local or private.Use Copilot CLI's --reasoning-effort option for model reasoning level control.
none, low, medium, high, xhigh, max..\scripts\byok-profile.ps1 run dprocess-openai-gpt-54 --reasoning-effort medium
For OpenAI models, you may also enable summaries:
.\scripts\byok-profile.ps1 run dprocess-openai-gpt-54 --reasoning-effort high --enable-reasoning-summaries
Do not claim a dedicated COPILOT_* environment variable exists for reasoning effort unless copilot help environment in the user's installed CLI version explicitly lists one.
When answering questions in this domain, always separate grounded facts from inference:
copilot --help, copilot help environment, provider model docs).Grounding status: evidence-backed when all key claims are directly supported.Grounding status: mixed (evidence + inference) when any recommendation is inferred.Do not present inferred workarounds (for example wrapper aliases for sticky defaults) as first-class documented product features.
When the user asks for COPILOT_PROVIDER_MAX_PROMPT_TOKENS or COPILOT_PROVIDER_MAX_OUTPUT_TOKENS:
maxPromptTokens = contextWindow - plannedMaxOutput - safetyBuffer
Prefer stable values over theoretical maximums. If the user reports context-limit failures, reduce prompt tokens by 5-10% and retry.
show or list to verify the saved values.${ENV_VAR} placeholders are used, confirm the environment variable actually exists.Kimi Code (https://api.kimi.com/coding/v1) is currently useful only as a placeholder profile for Copilot CLI because that backend enforces an allowlist and may return 403 Forbidden for unsupported clients. Use Moonshot Open Platform endpoints for working OpenAI-compatible Kimi-family access unless the provider explicitly adds Copilot CLI support.
For MCP server configuration rather than model-provider configuration, read ../copilot-cli-mcp-config/SKILL.md.
devops
Programmatically create tldraw whiteboards and visualize them with a self-hosted tldraw instance. Create boards with shapes, text, and connectors, then deploy to a self-hosted server for collaborative editing and gallery management.
tools
Execute Google Cloud Platform operations using the gcloud CLI (and gsutil/bq where applicable). Use when the user wants to: authenticate with GCP, manage GCP resources, deploy applications, configure projects or IAM, view logs, run SQL/BigQuery, or interact with any GCP service from the command line. Triggers on phrases like "gcloud", "Google Cloud CLI", "deploy to GCP", "create a VM", "Cloud Run", "GKE cluster", "Cloud Storage bucket", "set GCP project", "service account", "Cloud Functions", "App Engine deploy", or any request to manage Google Cloud resources via command line.
testing
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
development
Session-scoped git commit orchestrator that commits only current-session changes and leaves unrelated dirty worktree edits untouched. Inherits git-atomic-commit for atomic grouping and commit message execution, and git-commit-scope-constitution for scope governance and validation. Use when asked to commit this session only or isolate commits from mixed worktree state.