Build a Custom Agent with the Claude Agent SDK in 10 Lines
The Claude Agent SDK (formerly Claude Code SDK) gives you the same tools and agent loop that power Claude Code, but as a library you can call from Python or TypeScript. No tool implementations needed.
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions
async def main():
async for message in query(
prompt="Find all TODO comments and create a summary",
options=ClaudeAgentOptions(
allowed_tools=["Read", "Glob", "Grep"]
),
):
if hasattr(message, "result"):
print(message.result)
asyncio.run(main())
Built-in tools include Read, Write, Edit, Bash, Glob, Grep, WebSearch, and WebFetch. You don't have to implement any of them. Just list what the agent should have access to in allowed_tools.
Install with pip install claude-agent-sdk or npm install @anthropic-ai/claude-agent-sdk, set ANTHROPIC_API_KEY, and you're running. The SDK also supports Bedrock, Vertex AI, and Azure for enterprise auth.
Sessions persist automatically. Capture session_id from the init message and pass it back with resume=session_id to continue a conversation with full context.
Same power as Claude Code, now programmable in your own applications.
Log in to leave a comment.
Set up Claude Code as an automated reviewer in your CI pipeline — on every pull request, it reads the diff, checks for bugs, security issues, missing tests, and convention violations, then posts its findings as a PR comment. Your human reviewers get a head start because the obvious issues are already flagged before they look.
Before deploying, tell Claude to read your project — migrations, environment variables, queue workers, scheduled tasks, caching, third-party integrations — and generate a deployment checklist that's specific to your app. Not a generic "did you run migrations?" list, but one that knows YOUR infrastructure and catches the things YOUR deploy can break.
Instead of writing a README from memory or copying a template, tell Claude to read your project and generate one that's actually accurate — real setup instructions from your config, real architecture from your directory structure, real API examples from your routes, and real prerequisites from your dependency files.