The Claude Code SDK has been renamed to the Claude Agent SDK. If you're migrating from the old SDK, see the Migration Guide.
Build AI agents that autonomously read files, run commands, search the web, edit code, and more. The Agent SDK gives you the same tools, agent loop, and context management that power Claude Code, programmable in Python and TypeScript.
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions
async def main():
async for message in query(
prompt="Find and fix the bug in auth.py",
options=ClaudeAgentOptions(allowed_tools=["Read", "Edit", "Bash"])
):
print(message) # Claude reads the file, finds the bug, edits it
asyncio.run(main())The Agent SDK includes built-in tools for reading files, running commands, and editing code, so your agent can start working immediately without you implementing tool execution. Dive into the quickstart or explore real agents built with the SDK:
Everything that makes Claude Code powerful is available in the SDK:
The SDK also supports Claude Code's filesystem-based configuration. To use these features, set setting_sources=["project"] (Python) or settingSources: ['project'] (TypeScript) in your options.
| Feature | Description | Location |
|---|---|---|
| Skills | Specialized capabilities defined in Markdown | .claude/skills/SKILL.md |
| Slash commands | Custom commands for common tasks | .claude/commands/*.md |
| Memory | Project context and instructions | CLAUDE.md or .claude/CLAUDE.md |
| Plugins | Extend with custom commands, agents, and MCP servers | Programmatic via plugins option |
Ready to build? Follow the Quickstart to create an agent that finds and fixes bugs in minutes.
The Claude platform offers multiple ways to build with Claude. Here's how the Agent SDK fits in:
View the full changelog for SDK updates, bug fixes, and new features:
If you encounter bugs or issues with the Agent SDK:
For partners integrating the Claude Agent SDK, use of Claude branding is optional. When referencing Claude in your product:
Allowed:
Not permitted:
Your product should maintain its own branding and not appear to be Claude Code or any Anthropic product. For questions about branding compliance, contact our sales team.
Use of the Claude Agent SDK is governed by Anthropic's Commercial Terms of Service, including when you use it to power products and services that you make available to your own customers and end users, except to the extent a specific component or dependency is covered by a different license as indicated in that component's LICENSE file.
Email assistant, research agent, and more
Install Claude Code
Install the SDK
Set your API key
export ANTHROPIC_API_KEY=your-api-keyGet your key from the Console.
The SDK also supports authentication via third-party API providers:
CLAUDE_CODE_USE_BEDROCK=1 environment variable and configure AWS credentialsCLAUDE_CODE_USE_VERTEX=1 environment variable and configure Google Cloud credentialsCLAUDE_CODE_USE_FOUNDRY=1 environment variable and configure Azure credentialsUnless previously approved, we do not allow third party developers to offer Claude.ai login or rate limits for their products, including agents built on the Claude Agent SDK. Please use the API key authentication methods described in this document instead.
Run your first agent
This example creates an agent that lists files in your current directory using built-in tools.
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions
async def main():
async for message in query(
prompt="What files are in this directory?",
options=ClaudeAgentOptions(allowed_tools=["Bash", "Glob"])
):
if hasattr(message, "result"):
print(message.result)
asyncio.run(main())Email assistant, research agent, and more