---
title: "Agent SDK Index"
description: "Claude Agent SDK (formerly Claude Code SDK) — build autonomous AI agents in Python and TypeScript"
tags: [index, agent-sdk, anthropic, claude]
created: 2026-04-17
updated: 2026-04-17
---

# Agent SDK

Build production AI agents using the same tools, agent loop, and context management that power Claude Code — programmable in Python and TypeScript.

## Articles

| Article | Summary | Source | Updated |
|---------|---------|--------|---------|
| [[wiki/agent-sdk/overview\|overview]] | Full SDK overview: built-in tools, features, Client SDK comparison, branding rules | raw/Agent SDK overview 1.md | 2026-04-17 |
| [[wiki/agent-sdk/python-api-reference\|python-api-reference]] | Complete Python API reference: query() vs ClaudeSDKClient, all functions, types, hooks, sandbox, built-in tool I/O shapes | raw/Agent SDK reference - Python.md | 2026-04-17 |
| [[wiki/agent-sdk/typescript-api-reference\|typescript-api-reference]] | Complete TypeScript API reference: query(), startup(), tool(), hooks, permissions, MCP, sandbox, all message and tool I/O types | raw/Agent SDK reference - TypeScript.md | 2026-04-17 |
| [[wiki/agent-sdk/agent-skills-plugins\|agent-skills-plugins]] | Loading plugins in SDK sessions: skills, agents, hooks, MCP servers, namespacing, verification | raw/Agent Skills in the SDK 1.md | 2026-04-17 |
| [[wiki/agent-sdk/skills-in-sdk\|skills-in-sdk]] | Skills as filesystem artifacts: SKILL.md discovery, setting_sources, tool restrictions, troubleshooting | raw/Agent Skills in the SDK.md | 2026-04-17 |
| [[wiki/agent-sdk/hooks-guide\|hooks-guide]] | Full hooks guide: all 25 events, matchers, exit codes, JSON output, prompt/agent/http hook types, recipes, troubleshooting | raw/Automate workflows with hooks.md | 2026-04-17 |
| [[wiki/agent-sdk/configure-permissions\|configure-permissions]] | Permission modes, allow/deny rules, evaluation order, bypassPermissions caveats, subagent inheritance | raw/Configure permissions.md | 2026-04-17 |
| [[wiki/agent-sdk/mcp-integration\|mcp-integration]] | MCP server setup: transport types (stdio/HTTP/SSE), allowedTools, auth, tool search, error handling | raw/Connect to external tools with MCP.md | 2026-04-17 |
| [[wiki/agent-sdk/structured-outputs\|structured-outputs]] | Return validated JSON from agent workflows using JSON Schema, Zod, or Pydantic; error subtypes, tips | raw/Get structured output from agents.md | 2026-04-17 |
| [[wiki/agent-sdk/custom-tools\|custom-tools]] | Define custom tools with @tool/@tool(), in-process MCP server, error handling, images, resources, annotations | raw/Give Claude custom tools.md | 2026-04-17 |
| [[wiki/agent-sdk/user-input-approvals\|user-input-approvals]] | canUseTool callback: tool approvals, AskUserQuestion clarifying questions, allow/deny/modify, Python streaming workaround | raw/Handle approvals and user input.md | 2026-04-17 |
| [[wiki/agent-sdk/hosting-production\|hosting-production]] | Production hosting: container requirements, 4 deployment patterns (ephemeral/long-running/hybrid/multi-agent), sandbox providers, ops notes | raw/Hosting the Agent SDK.md | 2026-04-17 |
| [[wiki/agent-sdk/agent-loop\|agent-loop]] | Message lifecycle, turns, tool execution, context window, compaction, sessions, result subtypes, hooks | raw/How the agent loop works.md | 2026-04-17 |
| [[wiki/agent-sdk/sdk-hooks\|sdk-hooks]] | In-process SDK hooks: PreToolUse/PostToolUse callbacks, matchers, block/modify/approve patterns, Slack notifications, troubleshooting | raw/Intercept and control agent behavior with hooks.md | 2026-04-17 |
| [[wiki/agent-sdk/migration-guide\|migration-guide]] | Migrate from claude-code-sdk to claude-agent-sdk: package rename, import updates, v0.1.0 breaking changes (system prompt, settingSources) | raw/Migrate to Claude Agent SDK.md | 2026-04-17 |
| [[wiki/agent-sdk/modifying-system-prompts\|modifying-system-prompts]] | Four methods to customize system prompts: CLAUDE.md, output styles, append preset, custom string; prompt caching with excludeDynamicSections | raw/Modifying system prompts.md, raw/Modifying system prompts 1.md | 2026-04-17 |
| [[wiki/agent-sdk/observability-opentelemetry\|observability-opentelemetry]] | Export traces, metrics, log events via OTEL to any OTLP backend; span names, sensitive data controls, flush config | raw/Observability with OpenTelemetry.md | 2026-04-17 |
| [[wiki/agent-sdk/quickstart\|quickstart]] | Minimal working agent: query(), allowed_tools, permission modes, message stream types, troubleshooting | raw/Quickstart.md | 2026-04-17 |
| [[wiki/agent-sdk/file-checkpointing\|file-checkpointing]] | Track file changes per turn, rewind files to any checkpoint UUID; patterns, limitations, troubleshooting | raw/Rewind file changes with checkpointing.md | 2026-04-17 |
| [[wiki/agent-sdk/tool-search\|tool-search]] | Scale to 10,000 tools via dynamic discovery; ENABLE_TOOL_SEARCH config, auto:N threshold, naming tips | raw/Scale to many tools with tool search.md | 2026-04-17 |
| [[wiki/agent-sdk/secure-deployment\|secure-deployment]] | Threat model, built-in security, isolation technologies (sandbox/Docker/gVisor/VM), proxy credential pattern, filesystem controls | raw/Securely deploying AI agents.md | 2026-04-17 |
| [[wiki/agent-sdk/slash-commands\|slash-commands]] | Built-in & custom slash commands via SDK: discovery, /compact, custom .claude/commands/ files, arguments, bash/file interpolation | raw/Slash Commands in the SDK.md | 2026-04-17 |
| [[wiki/agent-sdk/streaming-output\|streaming-output]] | Real-time token/tool streaming: StreamEvent structure, text_delta, input_json_delta, UI patterns, limitations | raw/Stream responses in real-time.md | 2026-04-17 |
| [[wiki/agent-sdk/streaming-input\|streaming-input]] | Two input modes: AsyncGenerator (streaming, default) vs string (single message); capabilities, limitations, session resuming | raw/Streaming Input.md | 2026-04-17 |
| [[wiki/agent-sdk/subagents\|subagents]] | Spawn subagents programmatically or via filesystem; context isolation, parallelization, tool restrictions, resuming, detection | raw/Subagents in the SDK.md | 2026-04-17 |
| [[wiki/agent-sdk/todo-tracking\|todo-tracking]] | Built-in TodoWrite tool: lifecycle states, automatic triggers, real-time progress display, activeForm field | raw/Todo Lists.md | 2026-04-17 |
| [[wiki/agent-sdk/cost-tracking\|cost-tracking]] | Token usage tracking, deduplicating parallel tool calls, per-model cost breakdown, accumulating across sessions | raw/Track cost and usage.md | 2026-04-17 |
| [[wiki/agent-sdk/typescript-v2-interface\|typescript-v2-interface]] | V2 preview: session-based send/stream pattern, no async generators, createSession/resumeSession/prompt, cleanup | raw/TypeScript SDK V2 interface (preview).md | 2026-04-17 |
| [[wiki/agent-sdk/claude-code-features-in-sdk\|claude-code-features-in-sdk]] | settingSources control, CLAUDE.md loading, skills discovery, filesystem vs programmatic hooks, multi-tenant isolation | raw/Use Claude Code features in the SDK.md | 2026-04-17 |
| [[wiki/agent-sdk/sessions\|sessions]] | Session persistence: continue/resume/fork, ClaudeSDKClient, capturing IDs, cross-host resuming, session utility functions | raw/Work with sessions.md | 2026-04-17 |
