Streaming
Server-sent events
The Messages streaming protocol, event by event, so streaming UIs and agent loops keep working without a change.
Keep the SDK and the Messages API shape your code already speaks. Change the base URL, and inference runs on infrastructure you control.
Every official Anthropic SDK accepts a base URL. Point it at your
server and pass the token as auth_token; the rest of the
code stays.
The official Python SDK, with only the constructor changed.
The official TypeScript SDK, same change, same shape.
No SDK at all: the Messages wire shape, served from your machine.
Model names come from this server's catalog; list them with
GET /v1/models. The
coverage matrix states
exactly which endpoints and parameters are served.
The Messages API surface production code actually depends on, served natively rather than translated by a proxy.
Streaming
The Messages streaming protocol, event by event, so streaming UIs and agent loops keep working without a change.
Tools
Tool definitions and tool-use blocks on the same wire shape, exercised end to end by real agentic clients.
Vision
Image blocks in messages are decoded and understood by vision-capable models from the server's catalog.
A base URL swap buys privacy. The application services around the endpoint are what the migration is actually for.
Private
Conversations, documents, and tool results never leave your infrastructure; egress is governed and auditable.
Documents
Upload documents, build searchable collections, and get answers that cite the document, page and passage.
Dialects
The same server also speaks OpenAI, Ollama, MCP and native REST, so mixed codebases converge on one backend.
Cost
Agent loops and batch document runs stop accruing per-token charges; capacity is whatever your hardware serves.
Three differences worth planning for, before anyone discovers them in production.
Models
What you point at this server runs open-weight models on your hardware, not Claude. Same wire shape, different models: evaluate quality per task on your real workload rather than assuming parity with a hosted frontier model.
Auth
The server authenticates the Authorization header. Pass your token as the SDK's auth_token rather than api_key, exactly as in the examples above.
Coverage
The dialect serves the Messages API with streaming, tools and vision; version headers are accepted for compatibility. Cloud-side surfaces such as Batches stay with Anthropic.
LM-Kit One