mirror of
https://github.com/github/awesome-copilot.git
synced 2026-08-01 23:12:29 +00:00
docs: update Learning Hub for CLI v1.0.71-1.0.72 features
- automating-with-hooks.md: document stop_hook_active flag for agentStop hooks (v1.0.72) and the 8-consecutive-block limit to prevent infinite loops - working-with-canvas-extensions.md: add canvas support in CLI (v1.0.71), update prerequisites to include CLI users - installing-and-using-plugins.md: document direct skill installation via copilot plugins install --skill (v1.0.72) with project scope support Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
ecf0f5a9f4
commit
1cb3e5a62a
@@ -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-21
|
||||||
estimatedReadingTime: '8 minutes'
|
estimatedReadingTime: '8 minutes'
|
||||||
tags:
|
tags:
|
||||||
- hooks
|
- hooks
|
||||||
@@ -369,6 +369,25 @@ Run ESLint after the agent finishes responding and block if there are errors:
|
|||||||
|
|
||||||
If the lint command exits with a non-zero status, the action is blocked.
|
If the lint command exits with a non-zero status, the action is blocked.
|
||||||
|
|
||||||
|
#### Preventing agentStop loops (v1.0.72+)
|
||||||
|
|
||||||
|
An `agentStop` hook that **always blocks** would previously cause the CLI to loop indefinitely. Starting with v1.0.72, the CLI automatically ends the turn after **8 consecutive blocks** and passes a `stop_hook_active` flag to the hook input, so your script can detect a forced continuation and self-limit.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# scripts/lint-and-stop.sh
|
||||||
|
INPUT=$(cat)
|
||||||
|
|
||||||
|
# Detect forced continuation — skip the blocking check to avoid looping
|
||||||
|
if echo "$INPUT" | jq -e '.stop_hook_active == true' > /dev/null 2>&1; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
npx eslint . --max-warnings 0
|
||||||
|
```
|
||||||
|
|
||||||
|
This pattern lets your `agentStop` hook enforce quality checks without locking the agent in an infinite retry loop.
|
||||||
|
|
||||||
### Security Gating with preToolUse
|
### Security Gating with preToolUse
|
||||||
|
|
||||||
Block dangerous commands before they execute. Use the `matcher` field to target only the `bash` tool, so the hook doesn't fire for file edits or other tools:
|
Block dangerous commands before they execute. Use the `matcher` field to target only the `bash` tool, so the hook doesn't fire for file edits or other tools:
|
||||||
|
|||||||
@@ -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-13
|
lastUpdated: 2026-07-21
|
||||||
estimatedReadingTime: '8 minutes'
|
estimatedReadingTime: '8 minutes'
|
||||||
tags:
|
tags:
|
||||||
- plugins
|
- plugins
|
||||||
@@ -182,6 +182,31 @@ Pinning to a SHA guarantees that everyone on the team installs plugins from exac
|
|||||||
- **Change control** — review and approve plugin updates before rolling them out team-wide
|
- **Change control** — review and approve plugin updates before rolling them out team-wide
|
||||||
- **Stability** — prevent breaking changes in upstream marketplaces from impacting your team without notice
|
- **Stability** — prevent breaking changes in upstream marketplaces from impacting your team without notice
|
||||||
|
|
||||||
|
## Installing Skills Directly (v1.0.72+)
|
||||||
|
|
||||||
|
As of v1.0.72, you can install individual skills without creating or installing a full plugin. This is useful when you find a single useful skill and don't want to install an entire plugin:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install a skill from a local directory
|
||||||
|
copilot plugins install --skill ./path/to/my-skill/
|
||||||
|
|
||||||
|
# Install a skill from a URL
|
||||||
|
copilot plugins install --skill https://raw.githubusercontent.com/owner/repo/main/skills/my-skill/SKILL.md
|
||||||
|
|
||||||
|
# Install a skill into the current project (repository scope)
|
||||||
|
copilot plugins install --skill ./path/to/my-skill/ --scope project
|
||||||
|
```
|
||||||
|
|
||||||
|
Or from within an interactive session:
|
||||||
|
|
||||||
|
```
|
||||||
|
/plugins install --skill https://example.com/skills/my-skill/SKILL.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Skills installed this way are available immediately and appear in `copilot skill list`. Use `copilot plugins remove --skill <name>` to uninstall them.
|
||||||
|
|
||||||
|
> **Tip**: Skills from this repository can be installed individually this way. Browse the [Skills Directory](../../skills/) for available skills and use the raw GitHub URL of a skill's `SKILL.md` to install it directly.
|
||||||
|
|
||||||
## Installing Plugins
|
## Installing Plugins
|
||||||
|
|
||||||
### From Copilot CLI
|
### From Copilot CLI
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ title: 'Working with Canvas Extensions'
|
|||||||
description: 'Create and iterate on GitHub Copilot app canvases using /create-canvas, then shape them into reusable project or personal extensions.'
|
description: 'Create and iterate on GitHub Copilot app canvases using /create-canvas, then shape them into reusable project or personal extensions.'
|
||||||
authors:
|
authors:
|
||||||
- GitHub Copilot Learning Hub Team
|
- GitHub Copilot Learning Hub Team
|
||||||
lastUpdated: 2026-06-17
|
lastUpdated: 2026-07-21
|
||||||
estimatedReadingTime: '8 minutes'
|
estimatedReadingTime: '8 minutes'
|
||||||
tags:
|
tags:
|
||||||
- copilot-app
|
- copilot-app
|
||||||
@@ -14,14 +14,16 @@ relatedArticles:
|
|||||||
- ./agents-and-subagents.md
|
- ./agents-and-subagents.md
|
||||||
- ./using-copilot-coding-agent.md
|
- ./using-copilot-coding-agent.md
|
||||||
prerequisites:
|
prerequisites:
|
||||||
- Access to the GitHub Copilot app
|
- Access to the GitHub Copilot app or GitHub Copilot CLI (v1.0.71+)
|
||||||
- Basic familiarity with GitHub Copilot agent sessions
|
- Basic familiarity with GitHub Copilot agent sessions
|
||||||
---
|
---
|
||||||
|
|
||||||
Canvas extensions give you shared, interactive work surfaces inside the GitHub Copilot app. Instead of keeping all progress in chat, you can move work into a visible artifact (such as a board, document, checklist, or browser-oriented surface) that both people and agents can update.
|
Canvas extensions give you shared, interactive work surfaces inside the GitHub Copilot app and GitHub Copilot CLI. Instead of keeping all progress in chat, you can move work into a visible artifact (such as a board, document, checklist, or browser-oriented surface) that both people and agents can update.
|
||||||
|
|
||||||
This guide explains what canvases can do, how to create one with `/create-canvas`, and how to use patterns from this repository as reference implementations.
|
This guide explains what canvases can do, how to create one with `/create-canvas`, and how to use patterns from this repository as reference implementations.
|
||||||
|
|
||||||
|
> **CLI support (v1.0.71+)**: Canvas extensions are now available in the GitHub Copilot CLI in addition to the Copilot app. Create and interact with canvases directly from terminal sessions — the same `/create-canvas` skill and extension structure work across both surfaces.
|
||||||
|
|
||||||
## What canvases can do
|
## What canvases can do
|
||||||
|
|
||||||
A canvas is a bidirectional surface:
|
A canvas is a bidirectional surface:
|
||||||
|
|||||||
Reference in New Issue
Block a user