Help us improve
Share bugs, ideas, or general feedback.
From claude-agent-sdk
Creates and configures Claude AI agents using the Agent SDK in TypeScript. Covers initialization, system prompts, tool permissions, directory structure, and multi-provider authentication.
npx claudepluginhub thebushidocollective/han --plugin claude-agent-sdkHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-agent-sdk:agent-creationThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creating and configuring AI agents using the Claude Agent SDK with TypeScript.
Builds and troubleshoots Claude Agent SDK apps in Python and TypeScript, covering APIs, sessions, permissions, streaming, tools, plugins, and extensibility.
Builds AI agents and automates Claude Code using Agent SDK and headless CLI mode. Covers Python SDK, MCP servers, hooks, sessions, and programmatic queries.
Implements Anthropic Claude Agent SDK for autonomous agents, subagents, tool orchestration, MCP servers, and multi-step workflows. Useful for session management, permissions, and errors like CLI not found or context exceeded.
Share bugs, ideas, or general feedback.
Creating and configuring AI agents using the Claude Agent SDK with TypeScript.
import { Agent } from '@anthropic-ai/claude-agent-sdk';
const agent = new Agent({
model: 'claude-3-5-sonnet-20241022', // Latest model
systemPrompt: 'You are a helpful assistant specialized in...',
settingSources: ['project'], // Load .claude/CLAUDE.md from project
allowedTools: ['read_file', 'write_file', 'list_files'],
});
// Direct system prompt
const agent = new Agent({
systemPrompt: 'You are an expert code reviewer...',
});
// Load from CLAUDE.md
const agent = new Agent({
settingSources: ['project'], // Loads ./.claude/CLAUDE.md
});
// User-level memory
const agent = new Agent({
settingSources: ['user'], // Loads ~/.claude/CLAUDE.md
});
// Allow specific tools
const agent = new Agent({
allowedTools: [
'read_file',
'write_file',
'list_files',
'grep',
'bash',
],
});
// Block specific tools
const agent = new Agent({
disallowedTools: ['bash', 'web_search'],
});
// Permission modes
const agent = new Agent({
permissionMode: 'strict', // Require explicit approval
});
project/
├── .claude/
│ ├── CLAUDE.md # Project memory
│ ├── agents/
│ │ └── specialist.md # Subagent definitions
│ ├── skills/
│ │ └── my-skill/
│ │ └── SKILL.md # Skill definitions
└── src/
└── index.ts # Your code
# Anthropic API (primary)
export ANTHROPIC_API_KEY="sk-ant-..."
# Alternative providers
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"
# Google Vertex AI
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json"
# Azure
export AZURE_OPENAI_API_KEY="..."
export AZURE_OPENAI_ENDPOINT="..."
// Anthropic direct
const agent = new Agent({
apiKey: process.env.ANTHROPIC_API_KEY,
});
// Amazon Bedrock
const agent = new Agent({
provider: 'bedrock',
model: 'anthropic.claude-3-5-sonnet-20241022-v2:0',
});
// Good
const agent = new Agent({
model: 'claude-3-5-sonnet-20241022',
});
// Avoid: relying on default model
const agent = new Agent({});
// Good
const agent = new Agent({
settingSources: ['project'],
});
// Avoid: unclear memory source
const agent = new Agent({
systemPrompt: '...',
});
// Project-specific context
const projectAgent = new Agent({
settingSources: ['project'],
});
// User preferences
const userAgent = new Agent({
settingSources: ['user'],
});
// Bad
const agent = new Agent({
apiKey: 'sk-ant-hardcoded-key',
});
// Good
const agent = new Agent({
apiKey: process.env.ANTHROPIC_API_KEY,
});
// Bad: contradictory permissions
const agent = new Agent({
allowedTools: ['read_file', 'write_file'],
disallowedTools: ['read_file'], // Conflict!
});
// Good: clear permissions
const agent = new Agent({
allowedTools: ['read_file'],
});