claude-code-sdk


Nameclaude-code-sdk JSON
Version 0.0.17 PyPI version JSON
download
home_pageNone
SummaryPython SDK for Claude Code
upload_time2025-07-24 05:51:36
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords ai anthropic claude sdk
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Claude Code SDK for Python

Python SDK for Claude Code. See the [Claude Code SDK documentation](https://docs.anthropic.com/en/docs/claude-code/sdk) for more information.

## Installation

```bash
pip install claude-code-sdk
```

**Prerequisites:**
- Python 3.10+
- Node.js 
- Claude Code: `npm install -g @anthropic-ai/claude-code`

## Quick Start

```python
import anyio
from claude_code_sdk import query

async def main():
    async for message in query(prompt="What is 2 + 2?"):
        print(message)

anyio.run(main)
```

## Usage

### Basic Query

```python
from claude_code_sdk import query, ClaudeCodeOptions, AssistantMessage, TextBlock

# Simple query
async for message in query(prompt="Hello Claude"):
    if isinstance(message, AssistantMessage):
        for block in message.content:
            if isinstance(block, TextBlock):
                print(block.text)

# With options
options = ClaudeCodeOptions(
    system_prompt="You are a helpful assistant",
    max_turns=1
)

async for message in query(prompt="Tell me a joke", options=options):
    print(message)
```

### Using Tools

```python
options = ClaudeCodeOptions(
    allowed_tools=["Read", "Write", "Bash"],
    permission_mode='acceptEdits'  # auto-accept file edits
)

async for message in query(
    prompt="Create a hello.py file", 
    options=options
):
    # Process tool use and results
    pass
```

### Working Directory

```python
from pathlib import Path

options = ClaudeCodeOptions(
    cwd="/path/to/project"  # or Path("/path/to/project")
)
```

## API Reference

### `query(prompt, options=None)`

Main async function for querying Claude.

**Parameters:**
- `prompt` (str): The prompt to send to Claude
- `options` (ClaudeCodeOptions): Optional configuration

**Returns:** AsyncIterator[Message] - Stream of response messages

### Types

See [src/claude_code_sdk/types.py](src/claude_code_sdk/types.py) for complete type definitions:
- `ClaudeCodeOptions` - Configuration options
- `AssistantMessage`, `UserMessage`, `SystemMessage`, `ResultMessage` - Message types
- `TextBlock`, `ToolUseBlock`, `ToolResultBlock` - Content blocks

## Error Handling

```python
from claude_code_sdk import (
    ClaudeSDKError,      # Base error
    CLINotFoundError,    # Claude Code not installed
    CLIConnectionError,  # Connection issues
    ProcessError,        # Process failed
    CLIJSONDecodeError,  # JSON parsing issues
)

try:
    async for message in query(prompt="Hello"):
        pass
except CLINotFoundError:
    print("Please install Claude Code")
except ProcessError as e:
    print(f"Process failed with exit code: {e.exit_code}")
except CLIJSONDecodeError as e:
    print(f"Failed to parse response: {e}")
```

See [src/claude_code_sdk/_errors.py](src/claude_code_sdk/_errors.py) for all error types.

## Available Tools

See the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/settings#tools-available-to-claude) for a complete list of available tools.

## Examples

See [examples/quick_start.py](examples/quick_start.py) for a complete working example.

## License

MIT

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "claude-code-sdk",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "ai, anthropic, claude, sdk",
    "author": null,
    "author_email": "Anthropic <support@anthropic.com>",
    "download_url": "https://files.pythonhosted.org/packages/f0/9f/e275408829ae6c4dcbaf8fc6a57096aa5ec85575772c18c3862052b305ef/claude_code_sdk-0.0.17.tar.gz",
    "platform": null,
    "description": "# Claude Code SDK for Python\n\nPython SDK for Claude Code. See the [Claude Code SDK documentation](https://docs.anthropic.com/en/docs/claude-code/sdk) for more information.\n\n## Installation\n\n```bash\npip install claude-code-sdk\n```\n\n**Prerequisites:**\n- Python 3.10+\n- Node.js \n- Claude Code: `npm install -g @anthropic-ai/claude-code`\n\n## Quick Start\n\n```python\nimport anyio\nfrom claude_code_sdk import query\n\nasync def main():\n    async for message in query(prompt=\"What is 2 + 2?\"):\n        print(message)\n\nanyio.run(main)\n```\n\n## Usage\n\n### Basic Query\n\n```python\nfrom claude_code_sdk import query, ClaudeCodeOptions, AssistantMessage, TextBlock\n\n# Simple query\nasync for message in query(prompt=\"Hello Claude\"):\n    if isinstance(message, AssistantMessage):\n        for block in message.content:\n            if isinstance(block, TextBlock):\n                print(block.text)\n\n# With options\noptions = ClaudeCodeOptions(\n    system_prompt=\"You are a helpful assistant\",\n    max_turns=1\n)\n\nasync for message in query(prompt=\"Tell me a joke\", options=options):\n    print(message)\n```\n\n### Using Tools\n\n```python\noptions = ClaudeCodeOptions(\n    allowed_tools=[\"Read\", \"Write\", \"Bash\"],\n    permission_mode='acceptEdits'  # auto-accept file edits\n)\n\nasync for message in query(\n    prompt=\"Create a hello.py file\", \n    options=options\n):\n    # Process tool use and results\n    pass\n```\n\n### Working Directory\n\n```python\nfrom pathlib import Path\n\noptions = ClaudeCodeOptions(\n    cwd=\"/path/to/project\"  # or Path(\"/path/to/project\")\n)\n```\n\n## API Reference\n\n### `query(prompt, options=None)`\n\nMain async function for querying Claude.\n\n**Parameters:**\n- `prompt` (str): The prompt to send to Claude\n- `options` (ClaudeCodeOptions): Optional configuration\n\n**Returns:** AsyncIterator[Message] - Stream of response messages\n\n### Types\n\nSee [src/claude_code_sdk/types.py](src/claude_code_sdk/types.py) for complete type definitions:\n- `ClaudeCodeOptions` - Configuration options\n- `AssistantMessage`, `UserMessage`, `SystemMessage`, `ResultMessage` - Message types\n- `TextBlock`, `ToolUseBlock`, `ToolResultBlock` - Content blocks\n\n## Error Handling\n\n```python\nfrom claude_code_sdk import (\n    ClaudeSDKError,      # Base error\n    CLINotFoundError,    # Claude Code not installed\n    CLIConnectionError,  # Connection issues\n    ProcessError,        # Process failed\n    CLIJSONDecodeError,  # JSON parsing issues\n)\n\ntry:\n    async for message in query(prompt=\"Hello\"):\n        pass\nexcept CLINotFoundError:\n    print(\"Please install Claude Code\")\nexcept ProcessError as e:\n    print(f\"Process failed with exit code: {e.exit_code}\")\nexcept CLIJSONDecodeError as e:\n    print(f\"Failed to parse response: {e}\")\n```\n\nSee [src/claude_code_sdk/_errors.py](src/claude_code_sdk/_errors.py) for all error types.\n\n## Available Tools\n\nSee the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/settings#tools-available-to-claude) for a complete list of available tools.\n\n## Examples\n\nSee [examples/quick_start.py](examples/quick_start.py) for a complete working example.\n\n## License\n\nMIT\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python SDK for Claude Code",
    "version": "0.0.17",
    "project_urls": {
        "Documentation": "https://docs.anthropic.com/en/docs/claude-code/sdk",
        "Homepage": "https://github.com/anthropics/claude-code-sdk-python",
        "Issues": "https://github.com/anthropics/claude-code-sdk-python/issues"
    },
    "split_keywords": [
        "ai",
        " anthropic",
        " claude",
        " sdk"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6fe05b11418532548f1d6943752ed5a83c88fabc0c2b0c46365cbb027249a632",
                "md5": "b72b04426e5d56cf1b1ceb727c89f983",
                "sha256": "52d44fcd04919283c12e422b95f03ffd2354bf65c8b1f16c289ce1245dac285f"
            },
            "downloads": -1,
            "filename": "claude_code_sdk-0.0.17-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b72b04426e5d56cf1b1ceb727c89f983",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 16932,
            "upload_time": "2025-07-24T05:51:34",
            "upload_time_iso_8601": "2025-07-24T05:51:34.596933Z",
            "url": "https://files.pythonhosted.org/packages/6f/e0/5b11418532548f1d6943752ed5a83c88fabc0c2b0c46365cbb027249a632/claude_code_sdk-0.0.17-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f09fe275408829ae6c4dcbaf8fc6a57096aa5ec85575772c18c3862052b305ef",
                "md5": "320e65eceb325693b284f5e48dca387b",
                "sha256": "83362fe0dfdd9455304c628a626e88486a36750dbcdf9b3effa5dd4b9f84023b"
            },
            "downloads": -1,
            "filename": "claude_code_sdk-0.0.17.tar.gz",
            "has_sig": false,
            "md5_digest": "320e65eceb325693b284f5e48dca387b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 22284,
            "upload_time": "2025-07-24T05:51:36",
            "upload_time_iso_8601": "2025-07-24T05:51:36.110754Z",
            "url": "https://files.pythonhosted.org/packages/f0/9f/e275408829ae6c4dcbaf8fc6a57096aa5ec85575772c18c3862052b305ef/claude_code_sdk-0.0.17.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-24 05:51:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "anthropics",
    "github_project": "claude-code-sdk-python",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "claude-code-sdk"
}
        
Elapsed time: 1.86344s