In process
One NuGet in .NET
Embed LM-Kit.NET directly, or keep your existing pipeline and swap the backend through the Microsoft.Extensions.AI and Semantic Kernel bridges.
In-process .NET bridges, a server speaking OpenAI, Ollama and Anthropic dialects, governed tools for external assistants, and the databases you already operate.
Pick the surface that matches your architecture. All three reach the same engine, so switching later is a wiring change.
In process
Embed LM-Kit.NET directly, or keep your existing pipeline and swap the backend through the Microsoft.Extensions.AI and Semantic Kernel bridges.
Over the wire
LM-Kit One serves native REST plus OpenAI, Ollama and Anthropic compatible endpoints, so existing SDKs and tools keep working against a private deployment.
In your data layer
Embeddings and search live in the built-in vector store, or in Qdrant and PostgreSQL with pgvector when you would rather run infrastructure you already have.
Compatibility is usually a chat route and a promise. LM-Kit One's dialects go deep enough that real clients work unmodified.
OpenAI
Chat completions, completions, embeddings and models, plus files, vector stores, and the Responses API: OpenAI-shaped retrieval and agentic flows, privately.
Ollama
Tools and clients that speak Ollama point at LM-Kit One instead, and keep their model listing, pulling and chat workflows.
Anthropic
The Messages endpoint in the Anthropic shape, so SDKs and coding agents built on it keep working while inference stays inside your network.
Native
Beyond chat: document, extraction, search, agent, training and model-management endpoints that no general chat API models. This is the platform at its widest.
See LM-Kit OneDeploy once, point your existing clients at it: the LM-Kit One quickstart takes minutes.
The Model Context Protocol connects assistants to tools. LM-Kit sits on both sides of it.
Each ships as a separate NuGet package. Add the ones that match the abstractions and stores your codebase already speaks.
Microsoft
Implements IChatClient and IEmbeddingGenerator. Streaming, function calling and middleware work unchanged on a local backend.
Microsoft
Implements IChatCompletionService plus a memory store on LM-Kit embeddings. Kernels, plugins, planners and prompt files run on-device.
Amazon
Implements IEmbedder over Titan and Cohere Embed: managed cloud embeddings in the same RagEngine pipeline as local models.
Data
Persist RAG embeddings in Qdrant or PostgreSQL/pgvector. Both implement the same IVectorStore as the built-in path, so retrieval code does not change.
Plugins, planners, middleware and client code written against standard surfaces keep working. The backend moves; the surface stays.
Code that consumes IChatClient, IChatCompletionService or an OpenAI SDK works as-is. Swap the registration or the base URL.
Register multiple services and route per request: local for sensitive data, cloud for bulk traffic. Same abstraction handles both.
Logging, caching, retry and function-invocation middleware written against the abstraction works unchanged.
Run end-to-end tests against the abstraction with a local implementation. No external API quota, no flaky network in CI.
A NuGet that consumes IChatClient works with LM-Kit out of the box. The library author does not need to know about LM-Kit.
The abstractions and dialects evolve; the bridges and endpoints track them. New surface lands as new surface, not a rewrite.
Yes. LM-Kit One serves chat completions, completions, embeddings and models in the OpenAI shape, plus files, vector stores and the Responses API, alongside Ollama and Anthropic Messages dialects. Existing SDKs and tools point at a private deployment and keep working.
The built-in vector store works with no extra infrastructure. Qdrant and PostgreSQL with pgvector are supported through connectors in LM-Kit.NET, and LM-Kit One can run its search storage on either instead of its local cluster.
Yes. LM-Kit ships a Semantic Kernel bridge that implements IChatCompletionService and a memory store backed by LM-Kit embeddings. Existing kernels, plugins, planners, prompt files, and memory connectors run on-device.
Yes. The Microsoft.Extensions.AI bridge implements IChatClient and IEmbeddingGenerator, so streaming, function calling, and function-invocation middleware all work. It drops into any pipeline already built on the abstraction.
No. Code that consumes IChatClient, IChatCompletionService or an OpenAI-compatible SDK works as-is; you swap the registration or the base URL and inference runs inside your infrastructure.
Yes. You can register multiple chat services and route per request, for example local for sensitive data and cloud for bulk traffic. The Amazon Bedrock provider also plugs managed cloud embeddings into the same RagEngine pipeline as local models.
Working console demos on GitHub, step-by-step how-to guides on the docs site, and the API reference for the classes used on this page.
Deploy the server and call it over REST or the compatible endpoints.
Read the guide → DemoConsole demo: LM-Kit.NET as an IChatClient implementation.
Open on GitHub → DemoConsole demo: LM-Kit-backed memory store for Semantic Kernel.
Open on GitHub → RepoSource for the LM-Kit.NET Bedrock embedding provider.
Open →Connect