Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/microsoft/intelligent-terminal/hooksgit clone --depth 1 https://github.com/microsoft/intelligent-terminalWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.05380 | $0.05380 |
| Opus 5 | $0.02690 | $0.02690 |
| Sonnet 5 | $0.01076 | $0.01076 |
| Haiku 4.5 | $0.00538 | $0.00538 |
Grade D, and why
intelligent-terminal hooks.instructions.md scanned grade D with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
- Settings in `~/.claude/settings.json` and `.claude/settings.json` Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
if printf '%s' "$command" | grep -qE 'rm -rf /|git reset --hard|git clean -fd|git push.*--force'; then How it starts
The opening of the file, as written. The whole thing — 598 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Hook Authoring Guidelines
Hooks are small, deterministic commands or scripts that run at specific lifecycle events. An awesome hook does one clear job, runs quickly, and makes its side effects explicit.
Folder Structure
A GitHub Copilot hook lives in .github/hooks/ inside your repository:
.github/
└── hooks/
├── block-dangerous-commands.json ← hook config (which event, which script, options)
└── scripts/
├── block-dangerous-commands.sh ← Bash implementation
└── block-dangerous-commands.ps1 ← PowerShell implementation (optional if Bash-only)
You can have multiple .json files — each one registers hooks for one or more events. The host loads all of them.
The Config File
Each .json file maps events to an array of hook entries.
- Command hooks (
type: "command"): run a local script. The host passes event JSON on stdin, your script responds through exit code and stdout.
Config example
{
"version": 1,
"hooks": {
"preToolUse": [
{
"matcher": "bash",
"type": "command",
"bash": "./.github/hooks/scripts/block-dangerous-commands.sh",
"powershell": "./.github/hooks/scripts/block-dangerous-commands.ps1",
"cwd": ".",
"timeoutSec": 5,
"env": {
"BLOCK_MODE": "deny"
}
}
]
}
}
Config fields
| Field | Required | What it does |
|---|---|---|
type |
yes | "command" for scripts |
matcher |
no | Host-level filter — hook only fires when the tool name matches this value (e.g. "bash", "powershell", "edit", "create"). Locally verified working in Copilot CLI v1.0.36; not yet used in repo hook samples. |
bash |
one or both | Command line invoked on Unix / Bash-capable hosts |
powershell |
one or both | Command line invoked on Windows / PowerShell-capable hosts |
cwd |
no | Working directory, relative to repo root |
timeoutSec |
no | Max seconds before the host kills the process (default 30) |
env |
no | Extra process environment variables passed to the script |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 598 lines · 5,380 tokens per session scan D d01563985d7a
intelligent-terminal hooks.instructions.md is an instructions file published in the GitHub repository microsoft/intelligent-terminal (1,908 stars, last pushed today), licensed MIT. It adds 5,380 tokens to every session, about $0.0269 per session on Opus 5. A static security scan graded it D with 2 findings (reads agent configuration directories, recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
coddy-agent AGENTS.md
Instructions for coddy-project/coddy-agent, covering agent notes for coddy, repository navigation, builds, pre-commit gate and documentation contract.
coddy-agent CLAUDE.md
Instructions for coddy-project/coddy-agent, a project described as: General-purpose agent in one static Go binary. ReAct loop, ACP server for IDEs, OpenAI-compatible REST API with embedded web UI, Telegram gateway, cron scheduler, long-term memory, context compaction, rules, skills, MCP. Distroless-ready, works with…
mini-swe-agent copilot-instructions.md
Copilot instructions for SWE-agent/mini-swe-agent, covering style guide, test style, bad and good.
ii-agent AGENTS.md
Instructions for Intelligent-Internet/ii-agent, covering ii-agent contributor guide, quick start, repository map, mandatory rules and architecture.
thinkrail AGENTS.md
Instructions for JetBrains/thinkrail, covering thinkrail, module structure & boundaries (top-priority requirement), engine: pi only, in-process, architecture (three rings) and repo layout.
sortie copilot-instructions.md
Instructions for sortie-ai/sortie, covering sortie coding & review standards, 1. layered imports (downward only; violation is critical), 2. concurrency safety, 3. workspace path safety (critical: security boundary) and 4. persistence (sqlite).