client-config-copilotcli
Manage GitHub Copilot CLI configuration files including settings.json, config.json, permissions-config.json, mcp-config.json, lsp-config.json, hooks, skills, custom agents, plugins, and custom instruc
SKILL.mdskills/client-config-copilotcli/SKILL.md
GitHubCopilot Configuration Manager
You help the user manage all GitHub Copilot CLI configuration files.
Config file map
| What | File | Scope |
|---|---|---|
| User settings (model, theme, URLs, hooks, ...) | ~/.copilot/settings.json |
Global |
| Repository settings (limited keys) | .github/copilot/settings.json |
Project (committed) |
| Local settings (limited keys) | .github/copilot/settings.local.json |
Project (gitignored) |
| Trusted folders, auth state | ~/.copilot/config.json (trustedFolders) |
Global |
| Saved tool/directory approvals | ~/.copilot/permissions-config.json |
Global, per location |
| MCP servers | ~/.copilot/mcp-config.json |
Global |
| MCP servers | .mcp.json or .github/mcp.json |
Project |
| LSP servers | ~/.copilot/lsp-config.json / .github/lsp.json |
Global / Project |
| BYOK providers | ~/.copilot/providers.json |
Global |
| Hooks | ~/.copilot/hooks/<name>.json or hooks in settings.json |
Global |
| Hooks | .github/hooks/<name>.json or hooks in repo settings |
Project |
| Skills | ~/.copilot/skills/<name>/SKILL.md (or ~/.agents/skills/) |
Global personal |
| Skills | .github/skills/, .agents/skills/, .claude/skills/ |
Project |
| Custom agents | ~/.copilot/agents/<name>.agent.md |
Global personal |
| Custom agents | .github/agents/ or .claude/agents/ |
Project |
| Plugins | ~/.copilot/installed-plugins/ (manage via copilot plugin) |
Global |
| Custom instructions | ~/.copilot/copilot-instructions.md, ~/.copilot/instructions/**/*.instructions.md |
Global personal |
| Custom instructions | .github/copilot-instructions.md, AGENTS.md, CLAUDE.md, GEMINI.md |
Project |
| Path-specific instructions | .github/instructions/**/*.instructions.md |
Project (applyTo glob) |
| Model allowlist | .github/allowed_models.txt |
Project |
Config directory override: set COPILOT_HOME to replace ~/.copilot entirely
(--config-dir is deprecated). User preferences belong in settings.json; user-setting keys left
in config.json are ignored, and config.json keeps only internal state such as trusted folders.
Workflow
- Identify the task → use the task-to-reference map below to load only what you need
- Read the target file first before making any changes
- Edit safely → use the Edit tool for targeted changes; validate JSON after editing
- Confirm → show the user exactly what changed
Task → Reference map (load only what's needed)
| Task | Reference file |
|---|---|
settings.json keys (user, repo, local), config directory layout |
references/config-schema.md |
Trusted folders, config.json |
references/config-schema.md §config.json |
| Environment variables | references/config-schema.md §Environment variables |
OpenTelemetry export, managed telemetry |
references/config-schema.md §OpenTelemetry monitoring |
| Authentication, tokens | references/config-schema.md §Auth |
| BYOK models / custom providers, model selection | references/config-schema.md §BYOK, §Model usage |
Tool/path/URL permissions, permissions-config.json, sandbox, plan-mode and shell safety checks |
references/permissions.md |
CLI flags, slash commands, supported model IDs, sessions (--name, --resume), debug logs |
references/cli-commands.md |
| MCP servers, LSP servers | references/mcp.md |
| Hooks, including agent-scoped hooks in custom agent frontmatter | references/hooks.md |
| Skills | references/skills.md |
| Custom agents, subagents, plugins, marketplaces | references/agents-plugins.md |
| Custom instructions | references/instructions.md |
Common quick operations (no reference needed)
# Trust a folder permanently: add its path to "trustedFolders" in ~/.copilot/config.json
# Change a setting (inside a session)
/settings # editor; /settings KEY VALUE sets inline
/settings show model
# Read or change a setting from the terminal (user file by default; --repo / --local available)
copilot config theme
copilot config footer.showQuota off
copilot config --list
# Check auth
/user show # inside a session; copilot login to sign in
# MCP servers
copilot mcp list # terminal; /mcp list inside a session
# Skills
copilot skill list # terminal; /skills list inside a session
# Model
/model # inside a session; or copilot --model=auto
# Permissions for this session
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'
/allow-all # alias for /permissions allow-all
# Sandbox shell commands (macOS, Linux, Windows)
copilot --sandbox # this session only; /sandbox enable saves the setting
# Offline mode (BYOK only, no GitHub contact)
export COPILOT_OFFLINE=true
# Name and resume sessions
copilot --name my-feature-work
copilot --resume=my-feature-work
/session delete [ID] # or /session delete-all
# Prevent system sleep during long sessions
/keep-alive on # on | off | busy | DURATION
# Remote control (--no-remote is removed and --remote no longer works for interactive or -p startup; it remains only for legacy --server/--headless; remoteSessions: true makes it the default)
/remote on
/remote off
# Session-history syncing and client telemetry, one run only
copilot --sync-session=off
copilot --disable-client-telemetry
# What's loaded right now (instructions, MCP, skills, agents, hooks, plugins)
/env
Scripts
scripts/show-config.py— display all config files with annotationsscripts/update-references.py— fetch latest upstream docs
Run with: python scripts/<script>.py
Self-update procedure
When the user asks to update, refresh, or sync this skill:
- Run
python scripts/update-references.py --all→ fetches each configured reference source to_fetched/ - If the script exits nonzero, resolve the reported failures and rerun it; do not use a partial
_fetched/set as source material - Read each
_fetched/file alongside its correspondingreferences/file - Update
references/files to reflect documentation changes - Delete
_fetched/and report what changed
Source URLs are in sources.json.
Safety rules
- Always read the file before editing
- Never remove
trustedFoldersentries without confirming with the user - Hooks and skills live in project directories — confirm scope (global vs project) before creating
- Don't edit
permissions-config.jsonwhile a Copilot CLI session is running - JSON files: validate well-formed after any edit (
settings.jsonalso accepts JSONC comments) - Hook, instruction, and custom-agent changes apply only after restarting (or resuming) the CLI; skills, MCP, and LSP can use
/skills reload,/mcp reload,/lsp reload - Markdown files: preserve frontmatter structure