Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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.'
authors:
- GitHub Copilot Learning Hub Team
lastUpdated: 2026-04-02
lastUpdated: 2026-04-17
estimatedReadingTime: '10 minutes'
tags:
- configuration
Expand Down Expand Up @@ -405,6 +405,14 @@ These files follow the same format as `config.json` and are loaded after the glo

The model picker opens in a **full-screen view** with inline reasoning effort adjustment. Use the **← / →** arrow keys to change the reasoning effort level (`low`, `medium`, `high`) directly from the picker without leaving the session. The current reasoning effort level is also displayed in the model header (e.g., `claude-sonnet-4.6 (high)`) so you always know which level is active.

You can also select **`auto`** as your model to let Copilot automatically pick the best available model for each session based on the task at hand:

```
/model auto
```

This is useful when you don't want to think about model selection and prefer Copilot to optimize for you.

### CLI Session Commands

GitHub Copilot CLI has two commands for managing session state, with distinct behaviours:
Expand Down Expand Up @@ -457,6 +465,32 @@ The `/share html` command exports the current session — including conversation

The exported file contains everything needed to view the session without a network connection and can be shared with teammates or stored for later reference. This complements `/share` (which shares via URL) for cases where an offline or attached format is preferred.

The `/ask` command lets you ask a quick question without affecting the main conversation history:

```
/ask What does the AuthMiddleware class do?
```

Use `/ask` for quick lookups and exploratory questions you don't want to leave in the permanent session history.

The `/env` command shows all loaded environment details for the current session — including which instruction files, MCP servers, skills, agents, and plugins are active:

```
/env
```

This is especially useful for debugging configuration issues and verifying that your agents, skills, and MCP servers are loading correctly.

The `/statusline` command (also available as `/footer`) lets you customize which items appear in the status bar at the bottom of the terminal UI:

```
/statusline # show current status line config
/statusline directory branch # show only directory and branch
/statusline effort context-window # show effort level and context usage
```

Available items: `directory`, `branch`, `effort`, `context-window`, `quota`. Adjust to keep the status bar focused on what matters most to your workflow.

**Keyboard shortcuts for queuing messages**: Use **Ctrl+Q** or **Ctrl+Enter** to queue a message (send it while the agent is still working). **Ctrl+D** no longer queues messages — it now has its default terminal behavior. If you have muscle memory for Ctrl+D queuing, switch to Ctrl+Q.

The `/allow-all` command (also accessible as `/yolo`) enables autopilot mode, where the agent runs all tools without asking for confirmation. It now supports `on`, `off`, and `show` subcommands:
Expand All @@ -477,6 +511,59 @@ gh copilot --effort high "Refactor the authentication module"

Accepted values are `low`, `medium`, and `high`. You can also set a default via the `effortLevel` config setting.

### Remote Control

The **remote control** feature lets you monitor and steer an active Copilot CLI session from another terminal or device. This is useful when you start a long-running agent task and want to check in on it or send additional instructions without interrupting the primary session.

Start a session with remote control enabled:

```bash
copilot --remote
```

Or enable it from within an active session:

```
/remote
```

Connect to an existing session by ID:

```bash
copilot --connect <session-id>
```

You can also connect from the `--resume` session picker, which now lists remote-controllable sessions alongside regular sessions. The **Remote** tab in the CLI shows active Copilot coding agent tasks and supports sending steering instructions to them without requiring an open pull request.

> **Note**: Remote control was previously called "steering." The `--remote` flag and `/remote` command replace the older `--steer` / `/steer` naming.

### Attaching Files to Prompts

You can attach supported document files directly to your prompts for the agent to read and reason about:

```
Summarize this document @/path/to/report.pdf
```

Attach files using the `@` mention syntax with a file path, or paste them into the prompt. Supported formats include PDFs, Word documents, and other common file types. This lets you give the agent rich external context — spec documents, runbooks, RFCs — without copying and pasting content manually.

### Usage Limit Awareness

Copilot CLI shows warnings as you approach your weekly usage limit:

- **75% warning**: A notice appears when you've used three-quarters of your weekly quota
- **90% warning**: A more prominent warning appears as you near the limit

These warnings help you pace your usage and avoid unexpected interruptions mid-session. When a session is rate-limited, queued messages are automatically paused and retried once the limit resets rather than being dropped.

### Debugging and Diagnostics

Use the `--print-debug-info` flag to display version, terminal capabilities, and environment variables — useful for troubleshooting or reporting issues:

```bash
copilot --print-debug-info
```

## Common Questions

**Q: How do I disable Copilot for specific files?**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: 'Installing and Using Plugins'
description: 'Learn how to find, install, and manage plugins that extend GitHub Copilot CLI with reusable agents, skills, hooks, and integrations.'
authors:
- GitHub Copilot Learning Hub Team
lastUpdated: 2026-04-02
lastUpdated: 2026-04-17
estimatedReadingTime: '8 minutes'
tags:
- plugins
Expand Down Expand Up @@ -175,6 +175,8 @@ Or from an interactive session:
/plugin install database-data-management@awesome-copilot
```

> **Note**: Installing plugins directly from GitHub repository URLs, raw URLs, or local paths is deprecated. Use marketplace-based installation (`plugin@marketplace`) instead. The `--plugin-dir` flag remains supported for loading local plugins during development without installing them.

### From VS Code

Browse to the plugin via `@agentPlugins` in the Extensions search view or via **Chat: Plugins** in the Command Palette, then click **Install**.
Expand All @@ -190,10 +192,15 @@ copilot plugin list
# Update a plugin to the latest version
copilot plugin update my-plugin

# Update the plugin catalog (refresh marketplace listings)
copilot plugin marketplace update

# Remove a plugin
copilot plugin uninstall my-plugin
```

The `copilot plugin marketplace update` command refreshes the plugin catalog from all registered marketplaces, ensuring you see the latest available plugins and versions when browsing or installing.

### Loading Plugins from a Local Directory

You can load plugins directly from a local directory without installing them from a marketplace, using the `--plugin-dir` flag when starting Copilot:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.'
authors:
- GitHub Copilot Learning Hub Team
lastUpdated: 2026-04-01
lastUpdated: 2026-04-17
estimatedReadingTime: '8 minutes'
tags:
- mcp
Expand Down Expand Up @@ -220,14 +220,24 @@ This enables sophisticated patterns like MCP servers that orchestrate multi-step

> **Note**: Sampling requires explicit user approval every time a server requests inference. This is a security boundary — MCP servers cannot silently consume your AI quota or exfiltrate context without your knowledge.

## Finding MCP Servers
## Finding and Installing MCP Servers

The MCP ecosystem is growing rapidly. Here are key resources:

- **[Official MCP Servers](https://github.com/modelcontextprotocol/servers)**: Reference implementations for common services (PostgreSQL, Slack, Google Drive, etc.)
- **[MCP Specification](https://spec.modelcontextprotocol.io/)**: The protocol specification for building your own servers
- **[Awesome MCP Servers](https://github.com/punkpeye/awesome-mcp-servers)**: Community-curated list of MCP servers

### Installing from the Registry

GitHub Copilot CLI can install MCP servers directly from a registry with guided configuration — no manual JSON editing required:

```
/mcp install
```

This opens an interactive picker showing available servers from the registry. Select a server, and the CLI walks you through any required configuration (API keys, connection strings) before adding it to your persistent configuration automatically. This is the recommended way to add new MCP servers, especially for servers that require input parameters.

### Building Your Own MCP Server

If your team has internal tools or proprietary APIs, you can build custom MCP servers. The protocol supports three main capability types:
Expand All @@ -247,6 +257,7 @@ MCP server SDKs are available in [Python](https://github.com/modelcontextprotoco
- **Document your servers**: Add comments or a README explaining which MCP servers your project uses and why.
- **Version control carefully**: Commit `.mcp.json` or `.vscode/mcp.json` for shared server configurations, but use `.gitignore` for any files containing credentials.
- **Test server connectivity**: Verify MCP servers start correctly before relying on them in agent workflows.
- **Use `COPILOT_AGENT_SESSION_ID`**: Shell commands and MCP server processes receive the `COPILOT_AGENT_SESSION_ID` environment variable, which uniquely identifies the current agent session. Use this in your server code to correlate logs or state across a session.
- **Use the MCP allowlist (experimental)**: In high-security environments, the `MCP_ALLOWLIST` feature flag lets you validate MCP servers against a configured registry, blocking unrecognized servers from loading. MCP servers that are blocked by the allowlist policy are **hidden from `/mcp show`** to avoid confusion — only permitted servers appear in that view. This is an experimental feature for enterprise environments requiring strict control over which MCP servers are permitted.

### Organization Policy for Third-Party MCP Servers
Expand Down