ClaudeCodeSDK (claude_code_sdk v0.0.1)

View Source

An Elixir SDK for Claude Code.

This module provides a simple interface for interacting with Claude Code programmatically.

Basic Usage

# Simple query
for message <- ClaudeCodeSDK.query("Write a hello world function") do
  IO.inspect(message)
end

# With options
opts = %ClaudeCodeSDK.Options{
  max_turns: 3,
  output_format: :json,
  system_prompt: "You are a helpful assistant"
}

for message <- ClaudeCodeSDK.query("Build a REST API", opts) do
  IO.inspect(message)
end

Authentication

This SDK uses the already-authenticated Claude CLI. You must authenticate manually first:

# In your terminal:
claude login

The SDK will use the stored authentication from your interactive Claude session.

Summary

Functions

Continues the most recent conversation.

Runs a query against Claude Code and returns a stream of messages.

Resumes a specific conversation by session ID.

Functions

continue(prompt \\ nil, options \\ nil)

@spec continue(String.t() | nil, ClaudeCodeSDK.Options.t() | nil) ::
  Enumerable.t(ClaudeCodeSDK.Message.t())

Continues the most recent conversation.

Parameters

  • prompt - Optional new prompt to add to the conversation
  • options - Optional ClaudeCodeSDK.Options struct with configuration

Examples

# Continue without new prompt
ClaudeCodeSDK.continue()
|> Enum.to_list()

# Continue with new prompt
ClaudeCodeSDK.continue("Now add error handling")
|> Enum.to_list()

query(prompt, options \\ nil)

Runs a query against Claude Code and returns a stream of messages.

Parameters

Returns

Returns a Stream that yields ClaudeCodeSDK.Message structs.

Examples

# Simple query
ClaudeCodeSDK.query("Write a function to calculate Fibonacci numbers")
|> Enum.to_list()

# With options
opts = %ClaudeCodeSDK.Options{max_turns: 5}
ClaudeCodeSDK.query("Build a web server", opts)
|> Enum.to_list()

resume(session_id, prompt \\ nil, options \\ nil)

Resumes a specific conversation by session ID.

Parameters

  • session_id - The session ID to resume
  • prompt - Optional new prompt to add to the conversation
  • options - Optional ClaudeCodeSDK.Options struct with configuration

Examples

ClaudeCodeSDK.resume("550e8400-e29b-41d4-a716-446655440000", "Add tests")
|> Enum.to_list()