Agent features
Subagents, custom agents, parallel agents and hooks
Coding agents now split work across several agents. A subagent gets its own context and returns a summary; custom agents are subagents you define in a file with their own prompt and tools; parallel agents run side by side, often in separate git worktrees; hooks run your own scripts at points in the agent loop.
Reviewed Oct 7, 2026. A tick links to the vendor page that documents it. A question mark means we could not find it in the docs.
| Coding agent | Subagents | Custom agents | Parallel agents | Hooks | How subagents work |
|---|---|---|---|---|---|
| Amp | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | Built-in Search, Oracle, Librarian and Read Thread subagents; custom subagents via plugins |
| Claude Code | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | .claude/agents/*.md and ~/.claude/agents/*.md files; built-in Explore, Plan and general-purpose agents |
| Codex | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | Spawns subagents in parallel; built-in default, worker and explorer agents; custom agents as TOML in .codex/agents/ or ~/.codex/agents/ |
| Cursor | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | .cursor/agents/ (also reads .claude/agents/) files; built-in Explore, Bash and Browser subagents; foreground or background |
| Factory Droid | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | Custom droids in .factory/droids/ or ~/.factory/droids/, invoked via the Task tool |
| Gemini CLI | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | .gemini/agents/*.md and ~/.gemini/agents/*.md files; built-in Codebase Investigator, CLI Help, Generalist and Browser agents |
| GitHub Copilot | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | VS Code agent delegates to subagents via the subagent tool; custom .agent.md agents can be used as subagents |
| goose | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | Spawned via natural language; recipes (YAML) define specialized subagents |
| Junie | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | Junie CLI custom subagents as Markdown in .junie/agents/, .agents/ or ~/.junie/agents/ |
| Kiro | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | Main agent delegates to built-in or custom sub-agents with their own context |
| Mistral Vibe | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | task tool delegates to subagents; built-in explore subagent; custom ones via agent_type = "subagent" in TOML |
| OpenCode | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | Built-in General, Explore and Scout subagents; custom agents as .opencode/agents/*.md or ~/.config/opencode/agents/*.md; invoke with @mention |
| OpenHands | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | SDK task tool set and delegate tool spawn sub-agents with their own context |
| Qwen Code | Subagents: supported | Custom agents: supported | Parallel agents: supported | Hooks: supported | .qwen/agents/*.md and ~/.qwen/agents/*.md files; fork subagents |
| Cline | Subagents: supported | ?Custom agents: not yet verified | Parallel agents: supported | Hooks: supported | use_subagents tool launches read-only research subagents with separate context |
| Zed | Subagents: supported | Custom agents: supported | Parallel agents: supported | ?Hooks: not yet verified | Zed Agent spawn_agent tool runs a subagent with its own context window |
| pi | Subagents: not supported | ?Custom agents: not yet verified | ?Parallel agents: not yet verified | Hooks: supported | README says Pi skips sub-agents by design; can be added via extensions or packages |
| Aider | ?Subagents: not yet verified | ?Custom agents: not yet verified | ?Parallel agents: not yet verified | ?Hooks: not yet verified | No subagent feature documented |
When to use which
- Use a subagent for research or review that would flood the main context: it reads a lot and returns a short answer.
- Define a custom agent when you repeat the same role (reviewer, test writer, migration helper) and want fixed tools and instructions.
- Run agents in parallel for independent tasks; give each its own worktree or branch so they do not overwrite each other.
- Use hooks for rules that must always run, such as formatting after edits or blocking writes to protected files.
- For tasks that should finish while you are away, use a cloud coding agent. To build your own multi-agent system, see orchestration frameworks.
Setup guides
Notes on parallel support: Amp: Subagents work in parallel across code areas; multiple orbs (cloud threads) run at once; Claude Code: Background subagents run concurrently; parallel sessions in git worktrees; Codex: Subagents run in parallel, capped by agents.max_concurrent_threads_per_session; Cursor: Run several agents on one repo in isolated git worktrees; background subagents; Factory Droid: Multiple Task calls per turn or run_in_background subagents; Gemini CLI: Parallel sessions via git worktrees (experimental). AGENTS.md works across most of them.
Get the weekly agent stack update
New official MCP servers, spec changes and harness releases, checked against the source. One email a week, no fluff.