You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,15 @@ We've expanded the documentation for custom agents in Copilot CLI, adding inform
16
16
17
17
<hr>
18
18
19
+
**31 March 2026**
20
+
21
+
The documentation for Copilot CLI now includes a new reference article about the `~/.copilot` directory, and information on how a Copilot skill can run a script:
*[Creating agent skills for GitHub Copilot CLI](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/create-skills#enabling-a-skill-to-run-a-script)
25
+
26
+
<hr>
27
+
19
28
**27 March 2026**
20
29
21
30
We've introduced a new discovery landing page design for all the top-level doc sets on docs.github.com. The landing pages highlight recommended articles and give users the ability to filter articles by category with a drop down menu. Every article across the site now includes category metadata, making it easier to browse doc sets without relying solely on search. This replaces the previous product-landing layout across 35 doc sets.
Copy file name to clipboardExpand all lines: content/code-security/tutorials/manage-security-alerts/prioritizing-dependabot-alerts-using-metrics.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,7 +45,7 @@ You can customize the default funnel order on the "Alert prioritization" graph t
45
45
46
46
### 2. Focus on critical and high severity alerts
47
47
48
-
Start by identifying alerts with the highest severity by using the the `severity-critical` or `severity-high` filters. These vulnerabilities pose the greatest risk and are often prioritized by compliance standards. You can then
48
+
Start by identifying alerts with the highest severity by using the `severity-critical` or `severity-high` filters. These vulnerabilities pose the greatest risk and are often prioritized by compliance standards.
Copy file name to clipboardExpand all lines: content/contributing/style-guide-and-content-model/contents-of-a-github-docs-article.md
+6-11Lines changed: 6 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,20 +53,15 @@ Titles can be challenging. Use these general guidelines to help create clear, he
53
53
54
54
## Intro
55
55
56
-
The top of every page has an intro that provides context and sets expectations, allowing readers to quickly decide if the page is relevant to them. Intros also are displayed in search results to provide contextual information to help readers choose a result.
56
+
Every page and article has an intro which describes what they’re about. The text we use for intros is also displayed within search results, making them important for SEO.
57
57
58
58
### How to write an intro
59
59
60
-
* Article intros are one to two sentences long.
61
-
* Map topic and category intros are one sentence long.
62
-
* API reference intros are one sentence long.
63
-
* The intro for an API page should define the feature so that someone knows whether the feature meets their needs without reading the entire article.
64
-
* Intros contain a high-level summary of the page’s content, developing the idea presented in a title with more detail.
65
-
* Use approachable synonyms of words in the page’s title to help readers understand the article’s purpose differently. Avoid repeating words from the title when possible.
66
-
* Intros are relatively evergreen and high-level, so they can scale with future changes to the content on the page without needing to be frequently updated.
67
-
* For searchability, include keywords on the page's subject in the intro.
68
-
* When a term in the intro has an acronym we’ll use elsewhere in the article, indicate the acronym.
69
-
* Intros generally don't contain permissions for any tasks contained within the article.
60
+
* Intros should be concise, ideally one sentence long.
61
+
* Intros help people know if they’re in the right place for what they need. Let the user know what value is being provided to them, using words they would use and search for.
62
+
* Intros are also an invitation to continue reading. A good intro reassures the reader that their time is being well spent.
63
+
* If an important term has a related acronym that is generally used in its place, include the acronym in the intro. (Example: Search engine optimization and SEO.)
64
+
* Finally, review your intro to ensure it is search engine friendly by including relevant keywords and phrases.
Copy file name to clipboardExpand all lines: content/copilot/reference/copilot-cli-reference/cli-command-reference.md
+319-2Lines changed: 319 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -415,6 +415,323 @@ Prompt hooks auto-submit text as if the user typed it. They are only supported o
415
415
|`errorOccurred`| An error occurs during execution. | No |
416
416
|`notification`| Fires asynchronously when the CLI emits a system notification (shell completion, agent completion or idle, permission prompts, elicitation dialogs). Fire-and-forget: never blocks the session. Supports `matcher` regex on `notification_type`. | Optional — can inject `additionalContext` into the session. |
417
417
418
+
### Hook event input payloads
419
+
420
+
Each hook event delivers a JSON payload to the hook handler. Two payload formats are supported, selected by the event name used in the hook configuration:
421
+
422
+
***camelCase format** — Configure the event name in camelCase (for example, `sessionStart`). Fields use camelCase.
423
+
***{% data variables.product.prodname_vscode_shortname %} compatible format** — Configure the event name in PascalCase (for example, `SessionStart`). Fields use snake_case to match the {% data variables.product.prodname_vscode_shortname %} {% data variables.product.prodname_copilot_short %} extension format.
424
+
425
+
#### `sessionStart` / `SessionStart`
426
+
427
+
**camelCase input:**
428
+
429
+
```typescript
430
+
{
431
+
sessionId: string;
432
+
timestamp: number; // Unix timestamp in milliseconds
433
+
cwd: string;
434
+
source: "startup"|"resume"|"new";
435
+
initialPrompt?:string;
436
+
}
437
+
```
438
+
439
+
**{% data variables.product.prodname_vscode_shortname %} compatible input:**
**{% data variables.product.prodname_vscode_shortname %} compatible input:**
491
+
492
+
```typescript
493
+
{
494
+
hook_event_name: "UserPromptSubmit";
495
+
session_id: string;
496
+
timestamp: string; // ISO 8601 timestamp
497
+
cwd: string;
498
+
prompt: string;
499
+
}
500
+
```
501
+
502
+
#### `preToolUse` / `PreToolUse`
503
+
504
+
**camelCase input:**
505
+
506
+
```typescript
507
+
{
508
+
sessionId: string;
509
+
timestamp: number;
510
+
cwd: string;
511
+
toolName: string;
512
+
toolArgs: unknown;
513
+
}
514
+
```
515
+
516
+
**{% data variables.product.prodname_vscode_shortname %} compatible input:**
517
+
518
+
When configured with the PascalCase event name `PreToolUse`, the payload uses snake_case field names to match the {% data variables.product.prodname_vscode_shortname %} {% data variables.product.prodname_copilot_short %} extension format:
519
+
520
+
```typescript
521
+
{
522
+
hook_event_name: "PreToolUse";
523
+
session_id: string;
524
+
timestamp: string; // ISO 8601 timestamp
525
+
cwd: string;
526
+
tool_name: string;
527
+
tool_input: unknown; // Tool arguments (parsed from JSON string when possible)
528
+
}
529
+
```
530
+
531
+
#### `postToolUse` / `PostToolUse`
532
+
533
+
**camelCase input:**
534
+
535
+
```typescript
536
+
{
537
+
sessionId: string;
538
+
timestamp: number;
539
+
cwd: string;
540
+
toolName: string;
541
+
toolArgs: unknown;
542
+
toolResult: {
543
+
resultType: "success";
544
+
textResultForLlm: string;
545
+
}
546
+
}
547
+
```
548
+
549
+
**{% data variables.product.prodname_vscode_shortname %} compatible input:**
**{% data variables.product.prodname_vscode_shortname %} compatible input:**
722
+
723
+
```typescript
724
+
{
725
+
hook_event_name: "PreCompact";
726
+
session_id: string;
727
+
timestamp: string; // ISO 8601 timestamp
728
+
cwd: string;
729
+
transcript_path: string;
730
+
trigger: "manual"|"auto";
731
+
custom_instructions: string;
732
+
}
733
+
```
734
+
418
735
### `preToolUse` decision control
419
736
420
737
The `preToolUse` hook can control tool execution by writing a JSON object to stdout.
@@ -628,7 +945,7 @@ Custom agents are specialized AI agents defined in Markdown files. The filename
628
945
| Agent | Default model | Description |
629
946
|-------|--------------|-------------|
630
947
|`code-review`| claude-sonnet-4.5 | High signal-to-noise code review. Analyzes diffs for bugs, security issues, and logic errors. |
631
-
|`critic`| complementary model |Adversarial feedback on proposals, designs, and implementations. Identifies weak points and suggests improvements. Experimental—requires `--experimental`. |
948
+
|`critic`| complementary model |Rubber-duck adversarial feedback on proposals, designs, and implementations. Identifies weak points and suggests improvements. Available for Claude models. Experimental—requires `--experimental`. |
632
949
|`explore`| claude-haiku-4.5 | Fast codebase exploration. Searches files, reads code, and answers questions. Returns focused answers under 300 words. Safe to run in parallel. |
633
950
|`general-purpose`| claude-sonnet-4.5 | Full-capability agent for complex multi-step tasks. Runs in a separate context window. |
634
951
|`research`| claude-sonnet-4.6 | Deep research agent. Generates a report based on information in your codebase, in relevant repositories, and on the web. |
@@ -847,7 +1164,7 @@ Feature flags enable functionality that is not yet generally available. Enable f
847
1164
848
1165
| Flag | Tier | Description |
849
1166
|------|------|-------------|
850
-
|`CRITIC_AGENT`| experimental |Critic subagent for adversarial feedback on code and designs (Claude and GPT models) |
1167
+
|`RUBBER_DUCK_AGENT`| experimental |Rubber-duck subagent for adversarial feedback on code and designs (available for Claude models) |
851
1168
|`BACKGROUND_SESSIONS`| experimental | Multiple concurrent sessions with background management |
852
1169
|`MULTI_TURN_AGENTS`| experimental | Multi-turn subagent message passing via `write_agent`|
853
1170
|`EXTENSIONS`| experimental | Programmatic extensions with custom tools and hooks |
0 commit comments