docs: update Learning Hub for Copilot CLI v1.0.33–v1.0.36

- automating-with-hooks.md: add HTTP hook support (type:"http"),
  document preToolUse matcher enforcement fix (v1.0.36 behaviour change)
- copilot-configuration-basics.md: update CLI settings file path to
  ~/.copilot/settings.json, add ~/.claude/ deprecation warning, add
  continueOnAutoMode setting, auto model selection, session --name flag
  and /session delete subcommands
- using-copilot-coding-agent.md: document /remote on|off|status
  toggle commands
- installing-and-using-plugins.md: note plugins take effect immediately
  after install (no restart required)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2026-04-25 19:39:47 +00:00
committed by GitHub
parent 0e422e6dff
commit 210e539081
4 changed files with 78 additions and 9 deletions

View File

@@ -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-04-16 lastUpdated: 2026-04-25
estimatedReadingTime: '8 minutes' estimatedReadingTime: '8 minutes'
tags: tags:
- hooks - hooks
@@ -171,7 +171,7 @@ Each hook entry supports these fields:
} }
``` ```
**type**: Always `"command"` for shell-based hooks. **type**: `"command"` for shell-based hooks, or `"http"` for HTTP-based hooks (see below).
**bash**: The command or script to execute on Unix systems. Can be inline or reference a script file. **bash**: The command or script to execute on Unix systems. Can be inline or reference a script file.
@@ -183,6 +183,57 @@ Each hook entry supports these fields:
**env**: Additional environment variables merged with the existing environment. **env**: Additional environment variables merged with the existing environment.
### HTTP Hooks
In addition to running shell commands, hooks can **POST JSON payloads to a URL**. This is useful for integrating with webhook-driven systems — log aggregators, notification services, compliance endpoints, or custom automation platforms — without running a local script.
```json
{
"version": 1,
"hooks": {
"sessionStart": [
{
"type": "http",
"url": "https://hooks.example.com/copilot/session-start",
"headers": {
"Authorization": "Bearer ${env:HOOK_TOKEN}",
"Content-Type": "application/json"
},
"timeoutSec": 10
}
]
}
}
```
The hook event payload (the same JSON that would be piped to a shell command's stdin) is sent as the POST body. HTTP hooks support the same `timeoutSec` field as command hooks — if the request does not complete within the timeout, it is cancelled and the agent continues.
**When to use HTTP hooks vs command hooks**:
- **HTTP hooks**: Best when the logic lives in a remote service, you want to avoid running arbitrary code locally, or when integrating with existing webhook endpoints.
- **Command hooks**: Best for local scripts, file system operations, or when you need to modify tool arguments or inject context.
### preToolUse Matcher
The `preToolUse` event supports an optional **`matcher`** field that restricts the hook to specific tool names using a regex pattern. Only tool calls whose name **fully matches** the regex will trigger the hook:
```json
{
"version": 1,
"hooks": {
"preToolUse": [
{
"matcher": "^bash$",
"type": "command",
"bash": "./scripts/security-check.sh",
"timeoutSec": 15
}
]
}
}
```
> **Important (v1.0.36+)**: The `matcher` field is now correctly enforced. In earlier versions, `matcher` was silently ignored and the hook ran for all tool calls. After upgrading, hooks with a `matcher` will only fire for tool names that fully match the regex — verify your hook configurations if you relied on the previous (broken) behaviour.
### README.md ### README.md
The README provides metadata and documentation for the Awesome Copilot repository. While not required in your own implementation, it serves as a useful way to document them for your team. The README provides metadata and documentation for the Awesome Copilot repository. While not required in your own implementation, it serves as a useful way to document them for your team.

View File

@@ -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-04-16 lastUpdated: 2026-04-25
estimatedReadingTime: '10 minutes' estimatedReadingTime: '10 minutes'
tags: tags:
- configuration - configuration
@@ -372,7 +372,7 @@ Settings: File → Settings → Tools → GitHub Copilot
### GitHub Copilot CLI ### GitHub Copilot CLI
Configuration file: `~/.copilot-cli/config.json` User settings file: `~/.copilot/settings.json`
```json ```json
{ {
@@ -381,6 +381,10 @@ Configuration file: `~/.copilot-cli/config.json`
} }
``` ```
> **Note**: In v1.0.35, user settings were moved from `config.json` to `~/.copilot/settings.json`. The old config file is still supported for backward compatibility, but `settings.json` is the authoritative location for new settings.
> **Note (v1.0.36+)**: Custom agents, skills, and commands from `~/.claude/` are **no longer loaded** by GitHub Copilot CLI. Move any personal agents or skills to `~/.agents/` (e.g. `~/.agents/skills/`) or to a repository's `.github/` directory.
CLI settings use **camelCase** naming. Key settings added in recent releases: CLI settings use **camelCase** naming. Key settings added in recent releases:
| Setting | Description | | Setting | Description |
@@ -391,6 +395,7 @@ CLI settings use **camelCase** naming. Key settings added in recent releases:
| `statusLine` | Show status line in the terminal UI | | `statusLine` | Show status line in the terminal UI |
| `include_gitignored` | Include gitignored files in `@` file search | | `include_gitignored` | Include gitignored files in `@` file search |
| `extension_mode` | Control extensibility (agent tools and plugins) | | `extension_mode` | Control extensibility (agent tools and plugins) |
| `continueOnAutoMode` | Automatically switch to `auto` model on rate limit instead of pausing |
> **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.
@@ -405,6 +410,8 @@ 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. 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.
Select **`auto`** as your model to let Copilot automatically choose the best available model for each session. In auto mode, Copilot picks based on your current usage and rate limits, so you stay productive without manually switching models. You can also set `continueOnAutoMode: true` in your settings to automatically switch to `auto` when you hit a rate limit instead of pausing.
### 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:
@@ -425,6 +432,15 @@ The `/session rename` command renames the current session. When called **without
Auto-generated names help you find sessions quickly when switching between multiple backgrounded sessions. Auto-generated names help you find sessions quickly when switching between multiple backgrounded sessions.
You can also **name a session at startup** with `--name`, then resume it by name later:
```bash
copilot --name "auth-refactor" # start a named session
copilot --resume auth-refactor # resume by name
```
Session deletion is available via `/session delete`, `/session delete <id>`, and `/session delete-all` for removing individual sessions or clearing all history.
The `/rewind` command opens a timeline picker that lets you roll back the conversation to any earlier point in history, reverting both the conversation and any file changes made after that point. You can also trigger it by pressing **double-Esc**: The `/rewind` command opens a timeline picker that lets you roll back the conversation to any earlier point in history, reverting both the conversation and any file changes made after that point. You can also trigger it by pressing **double-Esc**:
``` ```

View File

@@ -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-04-16 lastUpdated: 2026-04-25
estimatedReadingTime: '8 minutes' estimatedReadingTime: '8 minutes'
tags: tags:
- plugins - plugins
@@ -216,7 +216,7 @@ Plugins loaded this way appear in `/plugin list` under a separate **External Plu
## How Plugins Work at Runtime ## How Plugins Work at Runtime
When you install a plugin, its components become available to Copilot CLI automatically: When you install a plugin, its components become available to Copilot CLI **immediately** — no restart required:
- **Agents** appear in your agent selection (use with `/agent` or the agents dropdown) - **Agents** appear in your agent selection (use with `/agent` or the agents dropdown)
- **Skills** are loaded automatically when relevant to your current task - **Skills** are loaded automatically when relevant to your current task

View File

@@ -3,7 +3,7 @@ title: 'Using the Copilot Coding Agent'
description: 'Learn how to use GitHub Copilot coding agent to autonomously work on issues, generate pull requests, and automate development tasks.' description: 'Learn how to use GitHub Copilot coding agent to autonomously work on issues, generate pull requests, and automate development tasks.'
authors: authors:
- GitHub Copilot Learning Hub Team - GitHub Copilot Learning Hub Team
lastUpdated: 2026-04-16 lastUpdated: 2026-04-25
estimatedReadingTime: '12 minutes' estimatedReadingTime: '12 minutes'
tags: tags:
- coding-agent - coding-agent
@@ -346,10 +346,12 @@ Launch a session that registers with GitHub for remote access:
copilot --remote copilot --remote
``` ```
Or open a remote control tab from inside an existing session: Or toggle remote control on/off from inside an existing session:
``` ```
/remote /remote on # enable remote control and register with GitHub
/remote off # disable remote control for this session
/remote # show current remote control status
``` ```
The **Remote** tab in the CLI shows all active coding agent tasks from the repository. Select a task to connect and begin sending steering messages. The **Remote** tab in the CLI shows all active coding agent tasks from the repository. Select a task to connect and begin sending steering messages.