mirror of
https://github.com/github/awesome-copilot.git
synced 2026-08-01 23:12:29 +00:00
Update Learning Hub with Copilot CLI v1.0.76–v1.0.78 release notes
- copilot-configuration-basics: add /permissions command, browser-based OAuth login (--web-flow/--device-code), allowDevToolCaches sandbox setting, MDM enterprise sandbox enforcement, directable queue manager, /limits predict, updated auto allow-all judge model note - installing-and-using-plugins: document /plugins enable/disable controls for plugins, instructions, agents, LSP servers, and hooks (v1.0.76+) - understanding-mcp-servers: add session switching no longer restarts MCP servers (v1.0.78+) and faster MCP tool loading (v1.0.76+) - automating-with-hooks: add 10 MiB hook output limit and userPromptSubmitted field validation improvements (v1.0.76+) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
336af71f1b
commit
92c8d63c2b
@@ -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-07-13
|
lastUpdated: 2026-07-31
|
||||||
estimatedReadingTime: '8 minutes'
|
estimatedReadingTime: '8 minutes'
|
||||||
tags:
|
tags:
|
||||||
- hooks
|
- hooks
|
||||||
@@ -512,6 +512,8 @@ exit 0
|
|||||||
|
|
||||||
> **How it works**: When the hook exits with code `0` **and** writes a valid `{"response": "..."}` JSON object to stdout, the CLI delivers that text to the user and stops processing — no model call is made. If the hook exits with code `0` but writes nothing (or writes no `response` key), the CLI proceeds normally and calls the LLM.
|
> **How it works**: When the hook exits with code `0` **and** writes a valid `{"response": "..."}` JSON object to stdout, the CLI delivers that text to the user and stops processing — no model call is made. If the hook exits with code `0` but writes nothing (or writes no `response` key), the CLI proceeds normally and calls the LLM.
|
||||||
|
|
||||||
|
> **Robustness improvements** *(v1.0.76+)*: The `userPromptSubmitted` hook handler now validates all returned fields: non-string values for `modifiedPrompt`, `modifiedTransformedPrompt`, or `responseContent` are ignored with a type warning; an empty-string replacement is rejected instead of blanking model-facing content; a hook that sets `handled` without a usable `responseContent` is diagnosed instead of silently falling through; and a `null` `additionalContext` is treated as absent rather than injected as the literal text `null`.
|
||||||
|
|
||||||
> **Multiple hooks**: If several `userPromptSubmitted` hooks are configured, the first one that returns a `response` wins; subsequent hooks for that event are skipped.
|
> **Multiple hooks**: If several `userPromptSubmitted` hooks are configured, the first one that returns a `response` wins; subsequent hooks for that event are skipped.
|
||||||
|
|
||||||
### Notification on Session End
|
### Notification on Session End
|
||||||
@@ -649,6 +651,7 @@ echo "Pre-commit checks passed ✅"
|
|||||||
- **Document setup requirements**: If hooks depend on tools being installed (Prettier, ESLint), document this in the README.
|
- **Document setup requirements**: If hooks depend on tools being installed (Prettier, ESLint), document this in the README.
|
||||||
- **Test locally first**: Run hook scripts manually before relying on them in agent sessions.
|
- **Test locally first**: Run hook scripts manually before relying on them in agent sessions.
|
||||||
- **Layer hooks, don't overload**: Use multiple hook entries for independent checks rather than one monolithic script.
|
- **Layer hooks, don't overload**: Use multiple hook entries for independent checks rather than one monolithic script.
|
||||||
|
- **Mind the output size limit** *(v1.0.76+)*: Hook output is bounded at **10 MiB per invocation**. Scripts or HTTP hooks that return unbounded responses (for example, a web endpoint that streams indefinitely) are truncated at this limit, protecting sessions from memory exhaustion.
|
||||||
|
|
||||||
## Common Questions
|
## Common Questions
|
||||||
|
|
||||||
|
|||||||
@@ -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-07-28
|
lastUpdated: 2026-07-31
|
||||||
estimatedReadingTime: '10 minutes'
|
estimatedReadingTime: '10 minutes'
|
||||||
tags:
|
tags:
|
||||||
- configuration
|
- configuration
|
||||||
@@ -428,7 +428,8 @@ CLI settings use **camelCase** naming. Key settings added in recent releases:
|
|||||||
| `continueOnAutoMode` | Automatically switch to the auto model on rate limit instead of pausing |
|
| `continueOnAutoMode` | Automatically switch to the auto model on rate limit instead of pausing |
|
||||||
| `proxy` | HTTP(S) proxy URL for all outbound CLI requests (e.g., `http://proxy.example.com:8080`) (v1.0.64+) |
|
| `proxy` | HTTP(S) proxy URL for all outbound CLI requests (e.g., `http://proxy.example.com:8080`) (v1.0.64+) |
|
||||||
| `sessionLimits` | Restrict credit or turn usage for a session; limits apply across the current conversation and reset on `/clear` (v1.0.66+) |
|
| `sessionLimits` | Restrict credit or turn usage for a session; limits apply across the current conversation and reset on `/clear` (v1.0.66+) |
|
||||||
| `stayInAutopilot` | Keep the CLI in autopilot mode after an autopilot task completes, instead of returning to interactive mode (v1.0.69+) |
|
| `stayInAutopilot` | Keep the CLI in autopilot mode after an autopilot task completes, instead of returning to interactive mode (v1.0.69+). Defaults to `true` as of v1.0.76. |
|
||||||
|
| `allowDevToolCaches` | Grant sandboxed builds access to toolchain caches, registries, and package manager installs so builds work without extra setup (v1.0.78+, on by default). Set to `false` to opt out. |
|
||||||
|
|
||||||
> **Note**: Older snake_case names (e.g., `include_gitignored`, `auto_updates_channel`) are still accepted for backward compatibility, but camelCase is now the preferred format.
|
> **Note**: Older snake_case names (e.g., `include_gitignored`, `auto_updates_channel`) are still accepted for backward compatibility, but camelCase is now the preferred format.
|
||||||
|
|
||||||
@@ -637,6 +638,8 @@ Use `/diagnose` when a session is behaving unexpectedly — it inspects session
|
|||||||
|
|
||||||
**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.
|
**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.
|
||||||
|
|
||||||
|
**Directable queue manager** *(v1.0.76+)*: Open the queue manager to reorder, edit, remove, repeat, or immediately send queued messages. This is useful for adjusting pending follow-up prompts mid-task without cancelling your queue entirely.
|
||||||
|
|
||||||
**Background running tasks**: Press **Ctrl+X → B** to move the current running task or shell command to the background. The task continues executing while you can type a new message or review earlier output. This is useful for long-running commands where you want to interact with the agent while waiting for the result.
|
**Background running tasks**: Press **Ctrl+X → B** to move the current running task or shell command to the background. The task continues executing while you can type a new message or review earlier output. This is useful for long-running commands where you want to interact with the agent while waiting for the result.
|
||||||
|
|
||||||
**Shell command history in normal mode** (v1.0.65+): The **↑/↓** arrow keys and **Ctrl+R** reverse search now include past shell commands (commands run with `!`) while you are in normal (non-shell) input mode. Previously you had to type `!` to enter shell mode before history worked. Now you can recall and re-run a shell command without switching modes first — useful for quickly repeating a build, test, or diagnostic command from earlier in the session.
|
**Shell command history in normal mode** (v1.0.65+): The **↑/↓** arrow keys and **Ctrl+R** reverse search now include past shell commands (commands run with `!`) while you are in normal (non-shell) input mode. Previously you had to type `!` to enter shell mode before history worked. Now you can recall and re-run a shell command without switching modes first — useful for quickly repeating a build, test, or diagnostic command from earlier in the session.
|
||||||
@@ -675,6 +678,12 @@ The `/usage` command displays session metrics such as the number of tokens consu
|
|||||||
/usage
|
/usage
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The `/limits predict` command *(v1.0.76+)* suggests an AI-credit limit for the current session based on similar past sessions. Use it to set a `sessionLimits` value that prevents runaway credit usage without cutting off work mid-task:
|
||||||
|
|
||||||
|
```
|
||||||
|
/limits predict
|
||||||
|
```
|
||||||
|
|
||||||
The `/compact` command summarizes the conversation history to free up context window space while preserving the thread of the conversation. Use it when your context is getting full but you do not want to start a fresh session:
|
The `/compact` command summarizes the conversation history to free up context window space while preserving the thread of the conversation. Use it when your context is getting full but you do not want to start a fresh session:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -721,9 +730,17 @@ The `/autopilot` command (v1.0.45+) is a quick in-session toggle that switches b
|
|||||||
|
|
||||||
Use `/autopilot` when you want to flip between supervised and unsupervised operation mid-session without typing out the full `/allow-all on` or `/allow-all off` commands.
|
Use `/autopilot` when you want to flip between supervised and unsupervised operation mid-session without typing out the full `/allow-all on` or `/allow-all off` commands.
|
||||||
|
|
||||||
|
The `/permissions` command *(v1.0.78+)* lets you switch between approval modes mid-session — a convenient shorthand for cycling through interactive, autopilot, and auto-judge modes without remembering the full `/allow-all` syntax:
|
||||||
|
|
||||||
|
```
|
||||||
|
/permissions # open the approval mode picker
|
||||||
|
```
|
||||||
|
|
||||||
|
This is useful when you want to quickly escalate or de-escalate the level of autonomous operation during a session.
|
||||||
|
|
||||||
> **Enhanced autopilot (v1.0.64+)**: When autopilot mode is active — including when launched with `--autopilot` at startup or during automatic continuation turns — the agent automatically handles elicitation dialogs, `ask_user` prompts, sampling requests, and permission prompts without surfacing them as interactive dialogs. This means long-running automated sessions can proceed end-to-end without manual confirmation steps.
|
> **Enhanced autopilot (v1.0.64+)**: When autopilot mode is active — including when launched with `--autopilot` at startup or during automatic continuation turns — the agent automatically handles elicitation dialogs, `ask_user` prompts, sampling requests, and permission prompts without surfacing them as interactive dialogs. This means long-running automated sessions can proceed end-to-end without manual confirmation steps.
|
||||||
|
|
||||||
> **Auto allow-all mode (v1.0.69+)**: In addition to the standard allow-all mode (which approves everything), the CLI now supports an **auto allow-all** mode that uses an LLM judge to evaluate each tool request. When enabled, the judge automatically approves requests it evaluates as acceptable, and asks you for manual confirmation only for requests it considers risky. This gives you a middle ground between full autopilot and fully supervised operation — most routine actions proceed automatically while unusual or potentially dangerous actions still surface for your review. As of v1.0.69-3, this mode requires experimental features to be enabled — use `/experimental on` or start the CLI with `--experimental` — then activate it with `/allow-all auto`. The previous `AUTO_APPROVAL` environment variable approach has been removed in favour of experimental mode.
|
> **Auto allow-all mode (v1.0.69+)**: In addition to the standard allow-all mode (which approves everything), the CLI now supports an **auto allow-all** mode that uses an LLM judge to evaluate each tool request. When enabled, the judge automatically approves requests it evaluates as acceptable, and asks you for manual confirmation only for requests it considers risky. This gives you a middle ground between full autopilot and fully supervised operation — most routine actions proceed automatically while unusual or potentially dangerous actions still surface for your review. Activate it with `/allow-all auto` or use `/permissions` to switch modes interactively. Note: The judge model used for auto mode is now **selected automatically** by the system (v1.0.78+) and is no longer user-configurable.
|
||||||
|
|
||||||
> **Read-only `gh` CLI commands (v1.0.46+)**: Read-only `gh` commands — such as `gh issue list`, `gh pr view`, `gh run status`, and other commands that don't write to GitHub — are **automatically approved** without a permission prompt. Only commands that write to GitHub (like creating issues, merging PRs) still require explicit approval. This reduces friction during exploratory sessions where you frequently check issue or PR status.
|
> **Read-only `gh` CLI commands (v1.0.46+)**: Read-only `gh` commands — such as `gh issue list`, `gh pr view`, `gh run status`, and other commands that don't write to GitHub — are **automatically approved** without a permission prompt. Only commands that write to GitHub (like creating issues, merging PRs) still require explicit approval. This reduces friction during exploratory sessions where you frequently check issue or PR status.
|
||||||
|
|
||||||
@@ -771,6 +788,18 @@ copilot --no-sandbox -p "Set up development environment with system tools"
|
|||||||
|
|
||||||
These flags apply only to the current invocation — your persisted sandbox preference remains unchanged.
|
These flags apply only to the current invocation — your persisted sandbox preference remains unchanged.
|
||||||
|
|
||||||
|
The `--web-flow` and `--device-code` flags *(v1.0.77+)* control the OAuth login method used when running `copilot login`. By default, local interactive terminals use the **browser-based (web) flow**, which opens your default browser to complete authentication — no copying device codes required. Remote or headless terminals fall back to the **device code flow** automatically:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
copilot login # uses web flow on local terminals by default
|
||||||
|
copilot login --web-flow # force browser-based login
|
||||||
|
copilot login --device-code # force device code flow (useful for SSH sessions)
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also choose a login method interactively from within a session using the `/login` command.
|
||||||
|
|
||||||
|
> **Enterprise MDM enforcement** *(v1.0.77+)*: On macOS and Windows, organizations can enforce a restrictive sandbox policy floor via native MDM (Mobile Device Management) settings. Managed settings tighten — but never loosen — the user's sandbox policy. When MDM settings are active, the `/sandbox` dialog surfaces the org-configured values with locked fields so administrators can confirm what is enforced. This enables IT to set a minimum sandbox baseline across all managed machines without requiring per-user configuration.
|
||||||
|
|
||||||
The `--attachment` flag (available in prompt mode, `-p`) lets you attach files — images or native documents — to the initial prompt in non-interactive mode:
|
The `--attachment` flag (available in prompt mode, `-p`) lets you attach files — images or native documents — to the initial prompt in non-interactive mode:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -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.'
|
description: 'Learn how to find, install, and manage plugins that extend GitHub Copilot CLI with reusable agents, skills, hooks, and integrations.'
|
||||||
authors:
|
authors:
|
||||||
- GitHub Copilot Learning Hub Team
|
- GitHub Copilot Learning Hub Team
|
||||||
lastUpdated: 2026-07-28
|
lastUpdated: 2026-07-31
|
||||||
estimatedReadingTime: '8 minutes'
|
estimatedReadingTime: '8 minutes'
|
||||||
tags:
|
tags:
|
||||||
- plugins
|
- plugins
|
||||||
@@ -222,6 +222,16 @@ copilot plugin marketplace update
|
|||||||
copilot plugin uninstall my-plugin
|
copilot plugin uninstall my-plugin
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Enabling and Disabling Plugin Components
|
||||||
|
|
||||||
|
*(v1.0.76+)* The `/plugins` command in an interactive session lets you selectively **enable or disable** individual plugin components — including plugins, instructions, agents, LSP servers, and hooks — without uninstalling them. This is useful for temporarily turning off a component that's interfering with your current work:
|
||||||
|
|
||||||
|
```
|
||||||
|
/plugins # open the plugin manager
|
||||||
|
```
|
||||||
|
|
||||||
|
From the `/plugins` manager, select any component and toggle it on or off. Disabled components are preserved in your installed-plugins directory but excluded from the active session. Changes take effect immediately.
|
||||||
|
|
||||||
### Loading Plugins from a Local Directory
|
### 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:
|
You can load plugins directly from a local directory without installing them from a marketplace, using the `--plugin-dir` flag when starting Copilot:
|
||||||
|
|||||||
@@ -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-07-13
|
lastUpdated: 2026-07-31
|
||||||
estimatedReadingTime: '8 minutes'
|
estimatedReadingTime: '8 minutes'
|
||||||
tags:
|
tags:
|
||||||
- mcp
|
- mcp
|
||||||
@@ -317,6 +317,10 @@ You can also open the `/mcp` manager while the agent is working to toggle server
|
|||||||
|
|
||||||
**Toggling servers on and off** (v1.0.66+): From the `/mcp` list view, you can **enable or disable individual MCP servers** without editing your config file. Select a server in the list and toggle it — disabled servers won't start in future sessions and their tools won't be available to agents. This is useful for temporarily disabling a server that's causing slowdowns or errors without removing it from your configuration entirely.
|
**Toggling servers on and off** (v1.0.66+): From the `/mcp` list view, you can **enable or disable individual MCP servers** without editing your config file. Select a server in the list and toggle it — disabled servers won't start in future sessions and their tools won't be available to agents. This is useful for temporarily disabling a server that's causing slowdowns or errors without removing it from your configuration entirely.
|
||||||
|
|
||||||
|
**Session switching preserves MCP servers** *(v1.0.78+)*: Switching between sessions no longer restarts MCP servers or rebuilds hook state. Previously, switching to a different session could interrupt a turn running in another session with a stale-hook error. Now MCP servers remain active across session switches, making multi-session workflows more reliable.
|
||||||
|
|
||||||
|
**Faster MCP tool loading** *(v1.0.76+)*: MCP tools now load from definition-scoped snapshots, with process-wide and per-server cache opt-outs available. This significantly reduces startup latency for sessions with many MCP servers configured.
|
||||||
|
|
||||||
**Common causes and fixes**:
|
**Common causes and fixes**:
|
||||||
|
|
||||||
| Symptom | Likely Cause | Fix |
|
| Symptom | Likely Cause | Fix |
|
||||||
|
|||||||
Reference in New Issue
Block a user