# Claude Code: features, protocols, quickstart

## TL;DR

Claude Code is Anthropic's agentic coding tool for the terminal, IDEs, a desktop app and the browser. It edits files, runs commands and connects to MCP servers, and can split work across subagents, background sessions, dynamic workflows and experimental agent teams. It suits developers with a paid Claude plan or API access.

## Key facts

| Field | Value |
| --- | --- |
| Type | Harness |
| Languages / SDKs | TypeScript, Python |
| License | unknown |
| Pricing model | [Hosted, paid](https://claude.com/pricing) |
| Orchestration pattern | Supervisor |
| GitHub stars | 148,653 (as of 2026-09-30) |
| GitHub forks | 25,101 |
| Last push | 2026-09-30 |
| Latest release | v2.1.285 |
| Repository | [anthropics/claude-code](https://github.com/anthropics/claude-code) |
| Website | [code.claude.com](https://code.claude.com/docs/en/overview) |
| Documentation | [code.claude.com](https://code.claude.com/docs/en/overview) |
| Last verified | 2026-09-30 |

## Key features

- The docs list five ways to run work in parallel: subagents, agent view, agent teams, dynamic workflows and cloud projects. ([source](https://code.claude.com/docs/en/agents))
- Custom subagents are Markdown files in .claude/agents/ or ~/.claude/agents/ with their own prompt, tool list, model and permissions; each runs in its own context and returns a summary. ([source](https://code.claude.com/docs/en/sub-agents))
- Subagents can spawn their own subagents up to three layers deep by default, with 20 running at once before new spawns fail. ([source](https://code.claude.com/docs/en/sub-agents))
- Agent teams (experimental, off by default) run a lead session plus teammates in separate context windows that message each other and share a task list. ([source](https://code.claude.com/docs/en/agent-teams))
- Dynamic workflows: Claude writes a JavaScript script that runs many subagents in the background and cross-checks their results. ([source](https://code.claude.com/docs/en/workflows))
- MCP client for stdio and HTTP servers (claude mcp add), and claude mcp serve exposes Claude Code's tools to other MCP clients. ([source](https://code.claude.com/docs/en/mcp))
- Git worktrees isolate parallel sessions and subagents so their edits do not collide. ([source](https://code.claude.com/docs/en/worktrees))
- Runs non-interactively with claude -p and from Python or TypeScript through the Agent SDK. ([source](https://code.claude.com/docs/en/headless))

## Architecture and orchestration pattern

Pattern: Supervisor.

Each Claude Code session is a single agent loop with its own context window, tools and permission mode. Parallelism is layered on top of that loop. Subagents run inside one session: Claude calls the Agent tool with a subagent type, the subagent works in a fresh context with its own tool allowlist and model, and only its summary returns. Subagents may nest up to three layers by default and can run in the foreground or background.

Beyond one session, agent view (`claude agents`, a research preview) dispatches and monitors background sessions, and cross-session messaging lets sessions pass findings. Agent teams, enabled with `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`, make the main session a fixed lead that spawns teammates as separate Claude Code instances; teammates message each other and share a task list, and cannot form nested teams. Dynamic workflows move the plan into a JavaScript script that fans out subagents and checks their results against each other.

Persistent knowledge lives in files: CLAUDE.md (or a repository's AGENTS.md) holds instructions, and auto memory stores notes Claude writes from your corrections. Worktrees give parallel sessions separate git checkouts; agent team members do not get worktrees automatically, so the docs advise partitioning files between them.

### Human in the loop

Permission modes decide what needs approval: `default` (Manual) prompts on first use of each tool, `acceptEdits` auto-accepts file edits, `plan` explores without editing, `auto` sends actions to a safety classifier, `dontAsk` denies anything that would prompt, and `bypassPermissions` skips prompts except for a documented set of protected actions. Allow and deny rules and managed policies refine this per tool, and hooks can run checks before or after tool calls. `/tasks` lists background work, including subagents, and lets you attach to or stop an item; `claude agents` shows which background sessions need input. In agent teams you can message any teammate directly and change an individual teammate's permission mode after it spawns.

## Protocols

| Protocol | Support | Evidence | Note |
| --- | --- | --- | --- |
| MCP | Yes (checked 2026-09-30) | [link](https://code.claude.com/docs/en/mcp) | Client for stdio and HTTP MCP servers added with claude mcp add, and server mode via claude mcp serve that exposes Claude Code's tools to other MCP clients. |
| A2A | Unknown (checked 2026-09-30) | — | No A2A mention in the docs llms.txt index, the agents, sub-agents, agent-teams or MCP pages, or the README; GitHub code and issue title searches in anthropics/claude-code found nothing. |
| AG-UI | Unknown (checked 2026-09-30) | — | No AG-UI mention in the docs index, README or repository issues; the AG-UI README lists Anthropic's Claude Agent SDK (via an adapter in the AG-UI repo), not Claude Code itself. |

## Best for

- Coding work in an existing repository from the terminal, an IDE or the desktop app, with subagents keeping searches and logs out of the main context. ([shortlist](https://multiagentguide.top/best/coding-agents.md))
- Large refactors, migrations or audits split across parallel subagents, worktrees or dynamic workflows. ([shortlist](https://multiagentguide.top/best/coding-agents.md))
- Organisations that need managed settings, permission policies and team spend limits for developers on Team or Enterprise plans. ([shortlist](https://multiagentguide.top/best/enterprise-governance.md))
- Research and review tasks where agent-team members investigate competing hypotheses and challenge each other's findings. ([shortlist](https://multiagentguide.top/best/research-agents.md))

## Not for

- Anyone needing an open-source license: the repository's LICENSE.md reserves all rights under Anthropic's Commercial Terms.
- Users on the free claude.ai plan, which does not include Claude Code.
- Teams wanting stable multi-agent coordination today: agent teams are experimental, off by default, and cannot be resumed with in-process teammates.

## Quickstart

```sh
curl -fsSL https://claude.ai/install.sh | bash
```

Install verified 2026-09-30 (temp dir, Node v22.22.3, macOS arm64: local `npm i @anthropic-ai/claude-code` (no -g) ok, `npx --no-install claude --version` ok, @anthropic-ai/claude-code 2.1.285. This is the npm method documented on the setup page; the default installer script (`curl ... | bash`) was not run. Packages came from the registry.npmmirror.com mirror, so the version is the one that mirror served on this date. Install and import check only; not a functional test.).

```bash
curl -fsSL https://claude.ai/install.sh | bash

# a project subagent with a narrow tool list and a cheaper model
mkdir -p .claude/agents
cat > .claude/agents/test-runner.md <<'EOF'
---
name: test-runner
description: Runs the test suite and reports failures. Use after code changes.
tools: Bash, Read, Grep
model: haiku
---
Run the tests and list each failing case with file and line.
EOF

claude mcp add --transport http notion https://mcp.notion.com/mcp
claude -p "Fix the date parser bug, then have the test-runner subagent verify" --allowedTools "Read,Edit,Bash"

# opt in to experimental agent teams, then start an interactive session
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 claude
```

### Common pitfalls

- Requires a Pro, Max, Team, Enterprise or Console account (or a third-party provider such as Amazon Bedrock); the free claude.ai plan does not include Claude Code.
- The README marks npm installation as deprecated; if you still use `npm install -g @anthropic-ai/claude-code`, it needs Node.js 22+ (from v2.1.198), optional dependencies enabled, and never `sudo`.
- System requirements: macOS 13+, Windows 10 1809+, Ubuntu 20.04+, Debian 10+ or Alpine 3.19+, 4 GB RAM, internet access.
- In `-p` (print) mode the session starts in Manual permission mode, so pass `--allowedTools` or a permission mode for unattended edits.
- Enabling agent teams changes ordinary delegation: subagents that Claude names launch as teammates.
- Running several sessions, subagents or teammates multiplies token usage.

Official quickstart: https://code.claude.com/docs/en/setup

## Pros

- Several documented parallel modes, from in-session subagents to background sessions, scripted workflows and agent teams. ([source](https://code.claude.com/docs/en/agents))
- Subagents are plain Markdown files that can be checked into a repo, with per-agent tool restrictions and model choice. ([source](https://code.claude.com/docs/en/sub-agents))
- Works as both an MCP client and an MCP server. ([source](https://code.claude.com/docs/en/mcp))
- Six permission modes plus allow/deny rules, managed policies and hooks give fine control over what runs without asking. ([source](https://code.claude.com/docs/en/permissions))
- Reads a repository's AGENTS.md as well as CLAUDE.md, and keeps auto memory across sessions. ([source](https://code.claude.com/docs/en/memory))

## Cons

- Not open source: LICENSE.md states all rights are reserved by Anthropic PBC and use is subject to the Commercial Terms of Service. ([source](https://github.com/anthropics/claude-code/blob/main/LICENSE.md))
- Needs a paid Claude plan or Console/API billing; the free claude.ai plan is excluded. ([source](https://code.claude.com/docs/en/setup))
- Agent teams are experimental and off by default, with documented limits: no resume of in-process teammates, lagging task status, one team per session and no nested teams. ([source](https://code.claude.com/docs/en/agent-teams))
- Parallel sessions and subagents multiply token usage, and agent teams cost more than a single session. ([source](https://code.claude.com/docs/en/agents))
- Anthropic collects feedback data from use, including code acceptance or rejection and associated conversation data, per the README. ([source](https://github.com/anthropics/claude-code))

## Alternatives

- [Codex CLI](https://multiagentguide.top/tools/codex.md)
- [OpenCode](https://multiagentguide.top/tools/opencode.md)
- [Gemini CLI](https://multiagentguide.top/tools/gemini-cli.md)
- [Cline](https://multiagentguide.top/tools/cline.md)
- [Aider](https://multiagentguide.top/tools/aider.md)

## FAQ

### Does Claude Code support MCP?

Yes. It connects to stdio and HTTP MCP servers added with claude mcp add, and claude mcp serve runs it as an MCP server for other clients. A2A and AG-UI support are not documented.

### Is Claude Code free?

No. It requires a Pro, Max, Team, Enterprise or Console account, or a third-party provider such as Amazon Bedrock; plan prices are on claude.com/pricing. The repository's LICENSE.md reserves all rights under Anthropic's Commercial Terms.

### What is the difference between subagents and agent teams in Claude Code?

Subagents run inside one session and report a summary back to the caller. Agent teams are separate Claude Code instances led by the main session that message each other and share a task list; they are experimental and must be enabled with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1.

### Can Claude Code run without a human in the loop?

Yes: claude -p runs a task non-interactively, with --allowedTools or a permission mode deciding what may run without prompts; the Agent SDK does the same from Python or TypeScript.

### How is Claude Code different from OpenCode?

Claude Code is proprietary and needs a paid Anthropic plan, Console billing or a supported cloud provider; OpenCode is MIT-licensed and works with many model providers. Both support subagents and MCP.

## Sources

- [anthropics/claude-code repository (README)](https://github.com/anthropics/claude-code)
- [LICENSE.md](https://github.com/anthropics/claude-code/blob/main/LICENSE.md)
- [Anthropic Commercial Terms of Service](https://www.anthropic.com/legal/commercial-terms)
- [Claude pricing](https://claude.com/pricing)
- [Claude Code overview](https://code.claude.com/docs/en/overview)
- [Advanced setup](https://code.claude.com/docs/en/setup)
- [Run agents in parallel](https://code.claude.com/docs/en/agents)
- [Create custom subagents](https://code.claude.com/docs/en/sub-agents)
- [Orchestrate teams of Claude Code sessions (agent teams)](https://code.claude.com/docs/en/agent-teams)
- [Agent view](https://code.claude.com/docs/en/agent-view)
- [Dynamic workflows](https://code.claude.com/docs/en/workflows)
- [Worktrees](https://code.claude.com/docs/en/worktrees)
- [MCP](https://code.claude.com/docs/en/mcp)
- [Run Claude Code programmatically](https://code.claude.com/docs/en/headless)
- [Configure permissions](https://code.claude.com/docs/en/permissions)
- [Permission modes](https://code.claude.com/docs/en/permission-modes)
- [Hooks guide](https://code.claude.com/docs/en/hooks-guide)
- [Memory (CLAUDE.md, AGENTS.md, auto memory)](https://code.claude.com/docs/en/memory)
- [Manage costs](https://code.claude.com/docs/en/costs)
- [AG-UI README integration list](https://github.com/ag-ui-protocol/ag-ui)

## Unknown fields

license: GitHub reports no license, so the field is 'unknown'. The repository's LICENSE.md (https://github.com/anthropics/claude-code/blob/main/LICENSE.md) reads: '© Anthropic PBC. All rights reserved. Use is subject to Anthropic's Commercial Terms of Service', i.e. proprietary, not an open-source license. languages lists the Agent SDK languages (Python, TypeScript) stated in the docs; the implementation language of the CLI binary is not stated in the docs. protocols.a2a and protocols.agui: searched the docs llms.txt index and the agents, sub-agents, agent-teams and MCP pages, the README, GitHub code search and issue search in anthropics/claude-code, and the AG-UI README; nothing found.

Corrections or removal requests: support@multiagentguide.top

---

Data as of 2026-09-30. Not affiliated with listed projects. HTML version: https://multiagentguide.top/tools/claude-code
