LM-Kit One · Coming from Anthropic

From Anthropic, without a rewrite.

Keep the SDK and the Messages API shape your code already speaks. Change the base URL, and inference runs on infrastructure you control.

Anthropic SDKs, unmodified Streaming, tools, vision Free to build and evaluate

The whole migration is one parameter.

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.

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.

What survives the move unchanged.

The Messages API surface production code actually depends on, served natively rather than translated by a proxy.

Streaming

Server-sent events

The Messages streaming protocol, event by event, so streaming UIs and agent loops keep working without a change.

Tools

Tool use

Tool definitions and tool-use blocks on the same wire shape, exercised end to end by real agentic clients.

Vision

Image content blocks

Image blocks in messages are decoded and understood by vision-capable models from the server's catalog.

Then the server starts giving back.

A base URL swap buys privacy. The application services around the endpoint are what the migration is actually for.

Private

Prompts that stay home

Conversations, documents, and tool results never leave your infrastructure; egress is governed and auditable.

Documents

Answers with page numbers

Upload documents, build searchable collections, and get answers that cite the document, page and passage.

Dialects

One server, every client

The same server also speaks OpenAI, Ollama, MCP and native REST, so mixed codebases converge on one backend.

Cost

No meter on the loop

Agent loops and batch document runs stop accruing per-token charges; capacity is whatever your hardware serves.

What actually changes.

Three differences worth planning for, before anyone discovers them in production.

Models

Claude stays at Anthropic

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

Authorization, not x-api-key

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

Messages, not the full cloud

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

Change the base URL this afternoon.