Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

GitHub Copilot

Config name: copilot

Skills

ScopePath
Project.agents/skills/<name>/SKILL.md
Global(none)

Copilot has no global skills path.

Hooks

Symposium creates a symposium.json file in the project hooks directory, and merges entries into the hooks key of the global settings.

ScopeFile
Project.github/hooks/symposium.json
Global~/.copilot/settings.json ($COPILOT_HOME/settings.json when set)

Events registered: preToolUse, postToolUse, userPromptSubmitted, sessionStart (camelCase).

Output format: JSON. Uses "bash" key instead of "command" for platform-specific dispatch. Any non-zero exit code denies (not just exit 2).

Caveat: Copilot loads a project’s hooks only once you trust the folder (it asks the first time you open it).

Caveat: Copilot also runs the hooks in .claude/settings.json. In a project where Claude Code is configured too, each Copilot event runs cargo agents hook twice, once as each agent.

MCP servers

ScopeFileKey
Global~/.copilot/mcp-config.json ($COPILOT_HOME/mcp-config.json when set)mcpServers.<name>

Copilot reads no project-level MCP file, so a project-scoped registration goes to the global file.