copilot-spaces skill
✓ VerifiedProvide project-specific context to conversations by loading shared knowledge bases, documentation, code, and instructions from GitHub Copilot Spaces.
- GitHub stars
- 41,038
- Files
- 1
- Last commit
- Nov 11, 2026
- License
- MIT
- Allowed tools
- —
What does the copilot-spaces skill do?
copilot-spaces provides project-specific context to conversations by loading shared knowledge bases, documentation, code, and instructions from GitHub Copilot Spaces.
Summary generated from the skill's SKILL.md.
About the copilot-spaces skill
Developers who need to ground AI conversations in specific project knowledge can use this skill to load shared context from GitHub Copilot Spaces. It allows an agent to access curated collections of repositories, documentation, and custom instructions that represent a team's actual code and standards. By loading a space, an agent can answer questions about architecture, follow specific coding conventions, or execute structured workflows defined by the team.
An agent should load this skill when a user asks to find or load a specific Copilot space. The skill provides read-only access through the mcp__github__list_copilot_spaces and mcp__github__get_copilot_space tools. While the MCP tools handle discovery and reading, full CRUD operations like creating, updating, or deleting spaces must be performed via the gh api. This ensures the agent can retrieve deep context from attached files and issues to provide highly relevant, project-specific responses.
What an agent can do with it
- 1Discover available project spacesAn agent can identify which shared knowledge bases are accessible to a user by listing all available spaces.
- 2Load specific project contextA developer can pull in all documentation and code instructions from a named space to ground an AI conversation.
- 3Execute structured team workflowsAn agent can follow step-by-step processes or templates defined within a space to produce standardized outputs.
- 4Manage space configurations via APIUsers can programmatically update the instructions or metadata of a space using GitHub CLI commands.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the copilot-spaces skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the copilot-spaces skill in Claude Code
~/.claude/skills/copilot-spaces/SKILL.md
$ npx degit github/awesome-copilot/skills/copilot-spaces ~/.claude/skills/copilot-spacesInstall the copilot-spaces skill in Claude Code (project)
.claude/skills/copilot-spaces/SKILL.md
$ npx degit github/awesome-copilot/skills/copilot-spaces .claude/skills/copilot-spacesInstall the copilot-spaces skill in Codex
~/.agents/skills/copilot-spaces/SKILL.md
$ npx degit github/awesome-copilot/skills/copilot-spaces ~/.agents/skills/copilot-spacesInstall the copilot-spaces skill in Gemini CLI
~/.gemini/skills/copilot-spaces/SKILL.md
$ npx degit github/awesome-copilot/skills/copilot-spaces ~/.gemini/skills/copilot-spacesInstall the copilot-spaces skill in Claude.ai
npx degit github/awesome-copilot/skills/copilot-spaces copilot-spaces && zip -r copilot-spaces.zip copilot-spaces # claude.ai → Customize → Skills → + → Create skill → Upload a skill → copilot-spaces.zip
Automated checks
Ran Nov 13, 2026Full report →Passed our automated checks. That is not a security audit: read the scripts before you let an agent run them. How checks work
- Source repository linked and reachablegithub/awesome-copilot/skills/copilot-spaces is public and reachablegithub.com/github/awesome-copilot/tree/HEAD/skills/copilot-s ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit 2026-11-11github.com/github/awesome-copilot/commits ↗Pass
- No download-and-run or credential theft in scriptsNo scripts in the skill folderPass
- No hidden instructions in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/github/awesome-copilot/blob/HEAD/skills/copilot-s ↗Pass
- Pre-approved tools are scopedNo pre-approved tools; the agent asks before using onegithub.com/github/awesome-copilot/blob/HEAD/skills/copilot-s ↗Pass
SKILL.md
View on GitHubCopilot Spaces
Use Copilot Spaces to bring curated, project-specific context into conversations. A Space is a shared collection of repositories, files, documentation, and instructions that grounds Copilot responses in your team's actual code and knowledge.
Available Tools
MCP Tools (Read-only)
| Tool | Purpose |
|---|---|
mcp__github__list_copilot_spaces |
List all spaces accessible to the current user |
mcp__github__get_copilot_space |
Load a space's full context by owner and name |
REST API via gh api (Full CRUD)
The Spaces REST API supports creating, updating, deleting spaces, and managing collaborators. The MCP server only exposes read operations, so use gh api for writes.
User Spaces:
| Method | Endpoint | Purpose |
|---|---|---|
POST |
/users/{username}/copilot-spaces |
Create a space |
GET |
/users/{username}/copilot-spaces |
List spaces |
GET |
/users/{username}/copilot-spaces/{number} |
Get a space |
PUT |
/users/{username}/copilot-spaces/{number} |
Update a space |
DELETE |
/users/{username}/copilot-spaces/{number} |
Delete a space |
Organization Spaces: Same pattern under /orgs/{org}/copilot-spaces/...
Collaborators: Add, list, update, and remove collaborators at .../collaborators
Scope requirements: PAT needs read:user for reads, user for writes. Add with gh auth refresh -h github.com -s user.
Note: This API is functional but not yet in the public REST API docs. It may require the copilot_spaces_api feature flag.
When to Use Spaces
- User mentions "Copilot space" or asks to "load a space"
- User wants answers grounded in specific project docs, code, or standards
- User asks "what spaces are available?" or "find a space for X"
- User needs onboarding context, architecture docs, or team-specific guidance
- User wants to follow a structured workflow defined in a Space (templates, checklists, multi-step processes)
Workflow
1. Discover Spaces
When a user asks what spaces are available or you need to find the right space:
Call mcp__github__list_copilot_spaces
This returns all spaces the user can access, each with a name and owner_login. Present relevant matches to the user.
To filter for a specific user's spaces, match owner_login against the username (e.g., "show me my spaces").
2. Load a Space
When a user names a specific space or you've identified the right one:
Call mcp__github__get_copilot_space with:
owner: "org-or-user" (the owner_login from the list)
name: "Space Name" (exact space name, case-sensitive)
This returns the space's full content: attached documentation, code context, custom instructions, and any other curated materials. Use this context to inform your responses.
3. Follow the Breadcrumbs
Space content often references external resources: GitHub issues, dashboards, repos, discussions, or other tools. Proactively fetch these using other MCP tools to gather complete context. For example:
- A space references an initiative tracking issue. Use
issue_readto get the latest comments. - A space links to a project board. Use project tools to check current status.
- A space mentions a repo's masterplan. Use
get_file_contentsto read it.
4. Answer or Execute
Once loaded, use the space content based on what it contains:
If the space contains reference material (docs, code, standards):
- Answer questions about the project's architecture, patterns, or standards
- Generate code that follows the team's conventions
- Debug issues using project-specific knowledge
If the space contains workflow instructions (templates, step-by-step processes):
- Follow the workflow as defined, step by step
- Gather data from the sources the workflow specifies
- Produce output in the format the workflow defines
- Show progress after each step so the user can steer
5. Manage Spaces (via gh api)
When a user wants to create, update, or delete a space, use gh api. First, find the space number from the list endpoint.
Update a space's instructions:
gh api users/{username}/copilot-spaces/{number} \
-X PUT \
-f general_instructions="New instructions here"
Update name, description, or instructions together:
gh api users/{username}/copilot-spaces/{number} \
-X PUT \
-f name="Updated Name" \
-f description="Updated description" \
-f general_instructions="Updated instructions"
Create a new space:
gh api users/{username}/copilot-spaces \
-X POST \
-f name="My New Space" \
-f general_instructions="Help me with..." \
-f visibility="private"
Attach resources (replaces entire resource list):
{
"resources_attributes": [
{ "resource_type": "free_text", "metadata": { "name": "Notes", "text": "Content here" } },
{ "resource_type": "github_issue", "metadata": { "repository_id": 12345, "number": 42 } },
{ "resource_type": "github_file", "metadata": { "repository_id": 12345, "file_path": "docs/guide.md" } }
]
}
Delete a space:
gh api users/{username}/copilot-spaces/{number} -X DELETE
Updatable fields: name, description, general_instructions, icon_type, icon_color, visibility ("private"/"public"), base_role ("no_access"/"reader"), resources_attributes
Examples
Example 1: User Asks for a Space
User: "Load the Accessibility copilot space"
Action:
- Call
mcp__github__get_copilot_spacewith owner"github", name"Accessibility" - Use the returned context to answer questions about accessibility standards, MAS grades, compliance processes, etc.
Example 2: User Wants to Find Spaces
User: "What copilot spaces are available for our team?"
Action:
- Call
mcp__github__list_copilot_spaces - Filter/present spaces relevant to the user's org or interests
- Offer to load any space they're interested in
Example 3: Context-Grounded Question
User: "Using the security space, what's our policy on secret scanning?"
Action:
- Call
mcp__github__get_copilot_spacewith the appropriate owner and name - Find the relevant policy in the space content
- Answer based on the actual internal documentation
Example 4: Space as a Workflow Engine
User: "Write my weekly update using the PM Weekly Updates space"
Action:
- Call
mcp__github__get_copilot_spaceto load the space. It contains a template format and step-by-step instructions. - Follow the space's workflow: pull data from attached initiative issues, gather metrics, draft each section.
- Fetch external resources referenced by the space (tracking issues, dashboards) using other MCP tools.
- Show the draft after each section so the user can review and fill in gaps.
- Produce the final output in the format the space defines.
Example 5: Update Space Instructions Programmatically
User: "Update my PM Weekly Updates space to include a new writing guideline"
Action:
- Call
mcp__github__list_copilot_spacesand find the space number (e.g., 19). - Call
mcp__github__get_copilot_spaceto read current instructions. - Modify the instructions text as requested.
- Push the update:
gh api users/labudis/copilot-spaces/19 -X PUT -f general_instructions="updated instructions..."
Tips
- Space names are case-sensitive. Use the exact name from
list_copilot_spaces. - Spaces can be owned by users or organizations. Always provide both
ownerandname. - Space content can be large (20KB+). If returned as a temp file, use grep or view_range to find relevant sections rather than reading everything at once.
- If a space isn't found, suggest listing available spaces to find the right name.
- Spaces auto-update as underlying repos change, so the context is always current.
- Some spaces contain custom instructions that should guide your behavior (coding standards, preferred patterns, workflows). Treat these as directives, not suggestions.
- Write operations (
gh apifor create/update/delete) require theuserPAT scope. If you get a 404 on write operations, rungh auth refresh -h github.com -s user. - Resource updates replace the entire array. To add a resource, include all existing resources plus the new one. To remove one, include
{ "id": 123, "_destroy": true }in the array.
Files in this skill
1copilot-spaces skill questions
How do I install the copilot-spaces skill in Claude Code?
Run npx degit github/awesome-copilot/skills/copilot-spaces ~/.claude/skills/copilot-spaces. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the copilot-spaces skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
Can I create or delete Copilot spaces using MCP tools?
No, the MCP server only provides read-only operations. To create, update, or delete spaces, you must use the GitHub CLI via the REST API.
What information is contained within a Copilot Space?
A Space contains a shared collection of repositories, files, documentation, and custom instructions to ground responses in project knowledge.
What permissions are required to write to the Spaces API?
You need a Personal Access Token (PAT) with the 'user' scope for write operations.