Skip to content

LegionIO/lex-claude

lex-claude

Claude Anthropic API integration for LegionIO. Provides runners for creating messages, listing models, counting tokens, and managing message batches.

Purpose

Wraps the Anthropic Claude REST API as named runners consumable by any LegionIO task chain. Use this extension when you need direct access to the full Anthropic API surface (including async Batches) within the LEX runner/actor lifecycle. For simple chat/embed workflows, consider legion-llm instead.

Installation

gem install lex-claude

Or add to your Gemfile:

gem 'lex-claude'

Functions

Messages

  • create - Create a message (chat completion) with Claude
  • count_tokens - Count input tokens for a message request

Models

  • list - List available Claude models
  • retrieve - Get details for a specific model

Batches

  • create_batch - Create an asynchronous message batch
  • list_batches - List message batches
  • retrieve_batch - Get details for a specific batch
  • cancel_batch - Cancel an in-progress batch
  • batch_results - Retrieve results for a completed batch

Configuration

Set your API key in your LegionIO settings:

{
  "claude": {
    "api_key": "sk-ant-..."
  }
}

Standalone Usage

require 'legion/extensions/claude/client'

client = Legion::Extensions::Claude::Client.new(api_key: ENV['ANTHROPIC_API_KEY'])

# Create a message
result = client.create(
  model: 'claude-opus-4-6',
  messages: [{ role: 'user', content: 'Hello, Claude!' }],
  max_tokens: 1024
)
puts result[:result]['content'].first['text']

# List models
models = client.list
puts models[:result]['data'].map { |m| m['id'] }

# Count tokens
tokens = client.count_tokens(
  model: 'claude-opus-4-6',
  messages: [{ role: 'user', content: 'How many tokens is this?' }]
)
puts tokens[:result]['input_tokens']

# Create an async batch
batch = client.create_batch(
  requests: [
    { custom_id: 'req-1', params: { model: 'claude-opus-4-6',
                                    messages: [{ role: 'user', content: 'Hello' }],
                                    max_tokens: 100 } }
  ]
)
puts batch[:result]['id']

Dependencies

  • faraday >= 2.0 - HTTP client
  • multi_json - JSON parser abstraction

Requirements

  • Ruby >= 3.4
  • LegionIO framework (optional for standalone client usage)
  • Anthropic API key

Related

  • lex-bedrock — Access Claude models via AWS Bedrock instead of Anthropic directly
  • legion-llm — High-level LLM interface including Anthropic via ruby_llm
  • extensions-ai/CLAUDE.md — Architecture patterns shared across all AI extensions

License

MIT

About

Connects LegionIO to the Claude Anthropic API

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors