mirror of
https://github.com/github/awesome-copilot.git
synced 2026-06-24 16:37:36 +00:00
chore: publish from staged
This commit is contained in:
@@ -3,7 +3,7 @@ title: 'Agents and Subagents'
|
|||||||
description: 'Learn how delegated subagents differ from primary agents, when to use them, and how to launch them in VS Code and Copilot CLI.'
|
description: 'Learn how delegated subagents differ from primary agents, when to use them, and how to launch them in VS Code and Copilot CLI.'
|
||||||
authors:
|
authors:
|
||||||
- GitHub Copilot Learning Hub Team
|
- GitHub Copilot Learning Hub Team
|
||||||
lastUpdated: 2026-05-07
|
lastUpdated: 2026-06-23
|
||||||
estimatedReadingTime: '9 minutes'
|
estimatedReadingTime: '9 minutes'
|
||||||
tags:
|
tags:
|
||||||
- agents
|
- agents
|
||||||
@@ -134,17 +134,25 @@ The important behavior is different from a single chat turn:
|
|||||||
|
|
||||||
That makes `/fleet` a practical way to launch subagents even if you are not authoring custom agent files yourself.
|
That makes `/fleet` a practical way to launch subagents even if you are not authoring custom agent files yourself.
|
||||||
|
|
||||||
### Rubber-duck agent (experimental)
|
### Rubber-duck agent
|
||||||
|
|
||||||
Available in `/experimental` (v1.0.42+), the **rubber-duck agent** applies a novel multi-model pattern: when you're working in a GPT-powered session, the rubber-duck agent internally routes certain requests through Claude to provide a second perspective. The idea is similar to rubber-duck debugging — talking through a problem with a different "listener" often surfaces assumptions or blind spots you didn't notice.
|
Available in `/experimental` (v1.0.42+), the **rubber-duck agent** applies a novel multi-model pattern: when you're working in a GPT-powered session, the rubber-duck agent internally routes certain requests through Claude to provide a second perspective. The idea is similar to rubber-duck debugging — talking through a problem with a different "listener" often surfaces assumptions or blind spots you didn't notice.
|
||||||
|
|
||||||
To try it, enable experimental features and then select the rubber-duck agent from the agent picker:
|
In v1.0.64+, you can configure the rubber-duck agent (including its complementary model strategy) directly from `/subagents`:
|
||||||
|
|
||||||
|
```
|
||||||
|
/subagents # open the subagents configuration panel
|
||||||
|
```
|
||||||
|
|
||||||
|
Or you can still enable experimental features and select it from the agent picker:
|
||||||
|
|
||||||
```
|
```
|
||||||
/experimental # toggle experimental features
|
/experimental # toggle experimental features
|
||||||
/agent # open the agent picker and select rubber-duck
|
/agent # open the agent picker and select rubber-duck
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The **complementary model strategy** lets you specify that the rubber-duck agent should automatically pick a model from a different family than your primary model (e.g., if you're on Claude, it selects a GPT model, and vice versa). This maximises the diversity of perspectives.
|
||||||
|
|
||||||
Because it runs as a sub-agent layer rather than replacing your primary model, you keep your current session model and context while the rubber-duck analysis runs in the background.
|
Because it runs as a sub-agent layer rather than replacing your primary model, you keep your current session model and context while the rubber-duck analysis runs in the background.
|
||||||
|
|
||||||
> **Note**: This is an experimental feature and may change. Provide feedback via `/feedback` if you find it useful.
|
> **Note**: This is an experimental feature and may change. Provide feedback via `/feedback` if you find it useful.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ title: 'Automating with Hooks'
|
|||||||
description: 'Learn how to use hooks to automate lifecycle events like formatting, linting, and governance checks during Copilot agent sessions.'
|
description: 'Learn how to use hooks to automate lifecycle events like formatting, linting, and governance checks during Copilot agent sessions.'
|
||||||
authors:
|
authors:
|
||||||
- GitHub Copilot Learning Hub Team
|
- GitHub Copilot Learning Hub Team
|
||||||
lastUpdated: 2026-05-08
|
lastUpdated: 2026-06-23
|
||||||
estimatedReadingTime: '8 minutes'
|
estimatedReadingTime: '8 minutes'
|
||||||
tags:
|
tags:
|
||||||
- hooks
|
- hooks
|
||||||
@@ -184,6 +184,8 @@ Hooks support two types: `"command"` for running local shell scripts, and `"http
|
|||||||
|
|
||||||
> **Important (v1.0.36+)**: Prior to v1.0.36, the `matcher` field was silently ignored — hooks with a `matcher` fired for all tool calls regardless of the regex. After upgrading to v1.0.36 or later, only tool calls whose name fully matches the `matcher` regex will trigger the hook. Review any existing `preToolUse`/`postToolUse` hooks that use `matcher` to ensure they still fire as expected.
|
> **Important (v1.0.36+)**: Prior to v1.0.36, the `matcher` field was silently ignored — hooks with a `matcher` fired for all tool calls regardless of the regex. After upgrading to v1.0.36 or later, only tool calls whose name fully matches the `matcher` regex will trigger the hook. Review any existing `preToolUse`/`postToolUse` hooks that use `matcher` to ensure they still fire as expected.
|
||||||
|
|
||||||
|
> **Fix (v1.0.63+)**: A bug caused `postToolUse` matchers using pipe-separated patterns (e.g., `"matcher": "Edit|Write"`) to be silently dropped, so hooks targeting multiple tools were incorrectly firing for all tool calls. This is fixed in v1.0.63 — `postToolUse` matchers now work correctly. If you rely on a formatter or linter that runs after specific tools, upgrade to v1.0.63 or later to ensure it fires only when intended.
|
||||||
|
|
||||||
**cwd**: Working directory for the command (relative to repository root).
|
**cwd**: Working directory for the command (relative to repository root).
|
||||||
|
|
||||||
**timeoutSec**: Maximum execution time in seconds (default: 30). The hook is killed if it exceeds this limit.
|
**timeoutSec**: Maximum execution time in seconds (default: 30). The hook is killed if it exceeds this limit.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ title: 'Copilot Configuration Basics'
|
|||||||
description: 'Learn how to configure GitHub Copilot at user, workspace, and repository levels to optimize your AI-assisted development experience.'
|
description: 'Learn how to configure GitHub Copilot at user, workspace, and repository levels to optimize your AI-assisted development experience.'
|
||||||
authors:
|
authors:
|
||||||
- GitHub Copilot Learning Hub Team
|
- GitHub Copilot Learning Hub Team
|
||||||
lastUpdated: 2026-05-13
|
lastUpdated: 2026-06-23
|
||||||
estimatedReadingTime: '10 minutes'
|
estimatedReadingTime: '10 minutes'
|
||||||
tags:
|
tags:
|
||||||
- configuration
|
- configuration
|
||||||
@@ -410,6 +410,8 @@ The model picker opens in a **full-screen view** with inline reasoning effort ad
|
|||||||
|
|
||||||
**Auto mode and server-side model routing** (v1.0.43+): When you select **Auto** as your model, the CLI uses server-side model routing for real-time model selection. Instead of locking in a single model at session start, Auto mode evaluates each request and routes it to the most appropriate model dynamically. This means straightforward questions can be handled by a faster model while complex reasoning tasks are automatically escalated — without you needing to switch models manually.
|
**Auto mode and server-side model routing** (v1.0.43+): When you select **Auto** as your model, the CLI uses server-side model routing for real-time model selection. Instead of locking in a single model at session start, Auto mode evaluates each request and routes it to the most appropriate model dynamically. This means straightforward questions can be handled by a faster model while complex reasoning tasks are automatically escalated — without you needing to switch models manually.
|
||||||
|
|
||||||
|
**Model family aliases** (v1.0.64+): Instead of typing a full model name, you can use short family aliases in the model setting: `opus`, `sonnet`, `haiku` (Anthropic), and `gpt`, `gemini` (Google/OpenAI). The CLI resolves the alias to the latest available model in that family. This is especially useful in scripts or configuration files where you want to track the best model in a family without hardcoding a version string.
|
||||||
|
|
||||||
### CLI Session Commands
|
### CLI Session Commands
|
||||||
|
|
||||||
GitHub Copilot CLI has two commands for managing session state, with distinct behaviours:
|
GitHub Copilot CLI has two commands for managing session state, with distinct behaviours:
|
||||||
@@ -465,11 +467,12 @@ The `/undo` command reverts the last turn—including any file changes the agent
|
|||||||
|
|
||||||
Use `/undo` when the agent's last response went in an unwanted direction and you want to try a different approach from that point.
|
Use `/undo` when the agent's last response went in an unwanted direction and you want to try a different approach from that point.
|
||||||
|
|
||||||
The `/fork` command (v1.0.45+) copies the current session into a **new independent session** that starts from the same conversation state. The original session continues unchanged — you can switch back to it at any time. This is useful when you want to explore two different approaches to a problem simultaneously:
|
The `/fork` command (v1.0.45+) copies the current session into a **new independent session** that starts from the same conversation state. The original session continues unchanged — you can switch back to it at any time. This is useful when you want to explore two different approaches to a problem simultaneously. In v1.0.64+, `/branch` is available as an alias for `/fork` (matching Claude Code's command naming):
|
||||||
|
|
||||||
```
|
```
|
||||||
/fork # fork with an auto-generated name
|
/fork # fork with an auto-generated name
|
||||||
/fork "my-experiment" # fork with a custom name (v1.0.47+)
|
/fork "my-experiment" # fork with a custom name (v1.0.47+)
|
||||||
|
/branch # alias for /fork (v1.0.64+)
|
||||||
```
|
```
|
||||||
|
|
||||||
After forking, the new session is immediately active. Both sessions share the same history up to the fork point but accumulate changes independently from that moment forward. Use `/fork` to experiment with a risky refactor without abandoning your current working session. Since v1.0.47, forked sessions display their **origin session** name in the sessions dialog, making it easy to trace which session a fork came from.
|
After forking, the new session is immediately active. Both sessions share the same history up to the fork point but accumulate changes independently from that moment forward. Use `/fork` to experiment with a risky refactor without abandoning your current working session. Since v1.0.47, forked sessions display their **origin session** name in the sessions dialog, making it easy to trace which session a fork came from.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ title: 'Creating Effective Skills'
|
|||||||
description: 'Master the art of writing reusable, shareable skill folders that deliver consistent results across your team.'
|
description: 'Master the art of writing reusable, shareable skill folders that deliver consistent results across your team.'
|
||||||
authors:
|
authors:
|
||||||
- GitHub Copilot Learning Hub Team
|
- GitHub Copilot Learning Hub Team
|
||||||
lastUpdated: 2026-05-08
|
lastUpdated: 2026-06-23
|
||||||
estimatedReadingTime: '9 minutes'
|
estimatedReadingTime: '9 minutes'
|
||||||
tags:
|
tags:
|
||||||
- skills
|
- skills
|
||||||
@@ -136,6 +136,24 @@ The `description` field is critical for agent discovery. Write it so that agents
|
|||||||
|
|
||||||
Include trigger keywords and contextual cues that help agents match the skill to user intent.
|
Include trigger keywords and contextual cues that help agents match the skill to user intent.
|
||||||
|
|
||||||
|
### Optional Fields
|
||||||
|
|
||||||
|
**argument-hint** *(v1.0.64+)*: A short label that appears in the slash-command input placeholder to guide the user on what argument to provide. For example, a `generate-tests` skill might set:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
argument-hint: 'Enter function or file to test'
|
||||||
|
```
|
||||||
|
|
||||||
|
When the user types `/generate-tests` in VS Code Chat, the hint appears as placeholder text in the input box, making the expected input immediately obvious.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: generate-tests
|
||||||
|
description: 'Generate comprehensive unit tests for the selected code, covering happy path, edge cases, and error conditions'
|
||||||
|
argument-hint: 'Enter function, class, or file to test'
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
## Real Examples from the Repository
|
## Real Examples from the Repository
|
||||||
|
|
||||||
The awesome-copilot repository includes skill folders demonstrating production patterns.
|
The awesome-copilot repository includes skill folders demonstrating production patterns.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ title: 'Understanding MCP Servers'
|
|||||||
description: 'Learn how Model Context Protocol servers extend GitHub Copilot with access to external tools, databases, and APIs.'
|
description: 'Learn how Model Context Protocol servers extend GitHub Copilot with access to external tools, databases, and APIs.'
|
||||||
authors:
|
authors:
|
||||||
- GitHub Copilot Learning Hub Team
|
- GitHub Copilot Learning Hub Team
|
||||||
lastUpdated: 2026-05-07
|
lastUpdated: 2026-06-23
|
||||||
estimatedReadingTime: '8 minutes'
|
estimatedReadingTime: '8 minutes'
|
||||||
tags:
|
tags:
|
||||||
- mcp
|
- mcp
|
||||||
@@ -93,15 +93,15 @@ Example `.mcp.json` or `.vscode/mcp.json`:
|
|||||||
|
|
||||||
### Installing MCP Servers from the Registry
|
### Installing MCP Servers from the Registry
|
||||||
|
|
||||||
GitHub Copilot CLI can install MCP servers directly from the official registry with guided configuration — no manual JSON editing required. During an interactive session, run:
|
GitHub Copilot CLI provides a registry-based install flow that lets you browse and install MCP servers with guided configuration — no manual JSON editing required. In v1.0.64+, use the `/mcp registry` sub-command to browse available servers:
|
||||||
|
|
||||||
```
|
```
|
||||||
/mcp install
|
/mcp registry
|
||||||
```
|
```
|
||||||
|
|
||||||
A picker will list available servers from the registry. After selecting one, the CLI prompts for any required configuration values (connection strings, API keys, etc.) and writes the completed entry to your persistent MCP config automatically.
|
A picker will list available servers from the registry. After selecting one, the CLI prompts for any required configuration values (connection strings, API keys, etc.) and writes the completed entry to your persistent MCP config automatically.
|
||||||
|
|
||||||
You can also install a specific server by name without the picker:
|
You can also install a specific server by name directly:
|
||||||
|
|
||||||
```
|
```
|
||||||
/mcp install @modelcontextprotocol/server-postgres
|
/mcp install @modelcontextprotocol/server-postgres
|
||||||
@@ -119,6 +119,8 @@ This guided flow is the recommended way to add new MCP servers, especially for s
|
|||||||
|
|
||||||
**type** (remote servers): The transport type for remote MCP servers (`http` or `sse`). This field can now be omitted — the CLI defaults to `http` when no type is specified, simplifying remote server configuration.
|
**type** (remote servers): The transport type for remote MCP servers (`http` or `sse`). This field can now be omitted — the CLI defaults to `http` when no type is specified, simplifying remote server configuration.
|
||||||
|
|
||||||
|
**deferTools** *(optional, v1.0.63+)*: When set to `false`, the server's tools are always available even when tool search is enabled. By default, tool search can hide rarely-used MCP tools to reduce context noise; setting `deferTools: false` on a server prevents its tools from being deferred, keeping them permanently in the tool list.
|
||||||
|
|
||||||
### Managing Persistent MCP Configuration via Server RPCs
|
### Managing Persistent MCP Configuration via Server RPCs
|
||||||
|
|
||||||
In addition to file-based configuration, GitHub Copilot CLI exposes **server RPCs** that let MCP servers and tooling scripts manage the persistent MCP server registry at runtime. This enables programmatic setup — for example, an installer script that registers a server without requiring you to hand-edit a JSON file.
|
In addition to file-based configuration, GitHub Copilot CLI exposes **server RPCs** that let MCP servers and tooling scripts manage the persistent MCP server registry at runtime. This enables programmatic setup — for example, an installer script that registers a server without requiring you to hand-edit a JSON file.
|
||||||
|
|||||||
Reference in New Issue
Block a user