Claude Agent SDK for Ruby
Quick start
- •Use
ClaudeAgentSDK.queryfor one-shot prompts (unidirectional streaming). - •Use
ClaudeAgentSDK::Clientfor interactive sessions (multiple turns, interrupt, hooks, permission callbacks, custom tools). - •Install prerequisites: Ruby 3.2+, Node.js, and Claude Code CLI.
ruby
require 'claude_agent_sdk' ClaudeAgentSDK.query(prompt: "What is 2 + 2?") do |message| puts message.inspect end
Workflow
- •Choose an interface:
- •Use
ClaudeAgentSDK.queryfor simple, stateless calls. - •Use
ClaudeAgentSDK::Clientwhen you need bidirectional control (send multiple prompts, interrupt, change model/permissions, rewind files) or when using hooks/permission callbacks/custom tools.
- •Use
- •Configure
ClaudeAgentSDK::ClaudeAgentOptions(only what you need). - •Handle messages:
- •Parse assistant text from content blocks.
- •Stop on
ClaudeAgentSDK::ResultMessage(final result, cost, session_id, structured output).
Use these references
- •Read
references/message-handling.mdto extract text/tool blocks, captureUserMessage#uuidfor rewind, and useResultMessagefields. - •Read
references/options.mdto configureClaudeAgentOptions(tools, permissions, output formats, budgets, sandbox, sessions). - •Read
references/mcp-servers.mdto define in-process SDK MCP tools/resources/prompts or configure external MCP servers. - •Read
references/rails.mdfor background jobs, ActionCable streaming, and session resumption patterns. - •Read
references/troubleshooting.mdfor common setup and runtime errors.