hooks
Hooks & Lifecycle
Agent extensibility via lifecycle hooks — intercept, observe, and control agent behavior at key points in the workflow
Session lifecycle management Widely
Hooks for session start and end — initialize environment, load context, clean up resources, or log session activity Generic tool use hooks Widely
Pre and post hooks around any tool execution — inspect, modify, block, or log tool calls Control shell commands Widely
Dedicated hooks for intercepting shell/terminal command execution — block dangerous commands, audit, or inject env vars Control file access Widely
Dedicated hooks for file read and write operations — enforce access policies, trigger linting, or audit file changes Control MCP tool use Widely
Dedicated hooks for MCP server tool invocations — audit, restrict, or modify MCP tool calls independently from built-in tools Observe compaction window Newly
Hooks that fire before and after context window compaction — preserve critical state, log what gets summarized, or block compaction Permission request hook Limited
Runs when the agent is about to ask you to approve a tool call — approve or deny it automatically instead of showing the prompt Subagent lifecycle Limited
Hooks for when subagents are spawned and when they complete — observe delegation, aggregate results, enforce policies Validate prompts before submission Limited
Intercept user prompts before they reach the model — block, rewrite, redact, annotate, or inject context Agent complete (stop) Limited
Hook that fires when the agent finishes a turn — implement quality gates, force continuation, or trigger follow-up workflows Interrupt hook Limited
Runs when you interrupt the agent mid-turn (Esc or Ctrl-C) — clean up, log, or notify when a turn is cut short Agent response tracking Limited
Observe and react to the agent's responses — log output, track thinking, or trigger side effects after each message instructions
Instructions
How you tell the agent what to do and what it may do: guidance files, scoping, approvals, and cross-agent compatibility
Project-level instructions Widely
Repo-specific guidance files checked into version control (e.g. CLAUDE.md, .cursorrules, copilot-instructions.md) User-level instructions Widely
Global personal preferences that apply across all projects for the current user Tool approval prompts Widely
The agent stops and asks you to approve or deny a tool call (a shell command, an edit) before running it AGENTS.md compatibility Newly
The agent reads the cross-agent AGENTS.md format used by multiple coding tools Org/managed instructions Limited
Organization-wide instructions enforced via managed policy or team admin settings Path-scoped rules Limited
Instructions that only apply when the agent works with files matching a glob pattern Instruction file imports Limited
Instruction files can reference or import other files to compose guidance from multiple sources mcp
Model Context Protocol
MCP client support — transports, server primitives, client features, and configuration
stdio transport Widely
Connect to MCP servers via local processes using stdin/stdout SSE transport Widely
Connect to MCP servers via Server-Sent Events over HTTP Streamable HTTP transport Widely
Connect to MCP servers via the newer streamable HTTP transport Tool discovery & execution Widely
Discover and invoke tools exposed by MCP servers OAuth authentication Widely
OAuth 2.0 authentication for connecting to remote MCP servers Project-level MCP config Widely
Configure MCP servers per-project, shareable via version control User-level MCP config Widely
Configure MCP servers globally for the current user across all projects Resource support Limited
Read structured data and context exposed by MCP servers as resources Prompt template support Limited
Use templated messages and workflows provided by MCP servers Sampling Limited
Allow MCP servers to request LLM completions through the client Roots support Limited
Expose filesystem or URI boundaries to MCP servers Elicitation Limited
Allow MCP servers to request additional input from the user mid-operation memory
Memory
How the agent persists its own knowledge and sessions, and manages the constraint of limited context
Conversation resume Widely
Resume a past conversation with its full context intact Persistent auto memory Limited
The agent automatically saves notes and learnings across sessions without manual effort Local session transcripts Limited
The harness keeps a readable record of each session on your machine (files on disk, or an export) Context compaction Limited
Gracefully handles long conversations by summarizing or compacting context when approaching window limits tools
Built-in Tools
Native tools and capabilities the agent ships with out of the box
File read Widely
Read file contents from the local filesystem File edit / write Widely
Create, modify, and overwrite files Code search Widely
Search file contents by pattern, regex, or filename glob Shell execution Widely
Execute shell commands in the user's environment Image input Widely
Read and understand images and screenshots (multimodal input) Subagent spawning Widely
Spawn sub-agents with their own context window to handle tasks in parallel Task management Widely
Track work progress with task lists and checklists within a session Notebook editing Limited
Read and edit Jupyter notebook (.ipynb) cells Background monitor Limited
Run a process in the background and react to its output (tail logs, poll status) Scheduled tasks Limited
Schedule recurring or one-shot prompts within a session (cron-like) Web search Limited
Search the web for information Web fetch Limited
Fetch and read the contents of a URL Image generation Limited
Generate images from text descriptions Browser control Limited
Programmatic browser interaction: take screenshots, navigate pages, click elements LSP integration Limited
Language server features: go-to-definition, find references, type errors, symbol search Semantic search Limited
Search codebase by meaning using embeddings or indexing, not just exact matches Token usage reporting Limited
Reports a session's token usage (input, output, and cache where the model provides it)