Why anyai exists
Infrastructure-grade primitives for working with any AI provider.
Provider-Agnostic
OpenAI, Gemini, Anthropic, Mistral, Ollama. Swap by config, not code.
Capability-First API
chat.send, chat.stream — no provider-specific leakage.
Unified Streaming
One async iterator. Same behavior everywhere.
Minimal Surface Area
Stable types. Strict normalization.
Interactive Playground
Test any provider through the same API.
Change models, keys, and providers in real time.
- Chat-style interface
- Provider selector
- API key management (local-only)
- Streaming toggle
> What is the meaning of life?
The meaning of life is a deeply personal question...
How it works
From your code to any provider and back — in five steps.
App calls ai.chat.send()
Your application uses the unified API to send a request.
anyai normalizes the request
The request is transformed into a provider-neutral format.
Adapter routes to provider SDK
The appropriate adapter forwards the call to the target provider.
Response normalized back
The provider response is normalized into a consistent shape.
Streaming unified if enabled
Async iterators behave identically regardless of provider.
What anyai is — and isn't
Set expectations clearly.
What it is
- AI runtime infrastructure
- Adapter-based
- Config-driven
- Safe to embed in products
What it is not
- Not an agent framework
- Not a prompt library
- Not a UI SDK
- Not SaaS
Developer experience
Drop in and start building.
$ npm install anyai- ESM-first
- Type-safe
- Tree-shakeable
- Zero vendor lock-in
Open source
Built in the open. No strings attached.
- Contributions welcome
- No tracking, no telemetry
- No hidden SaaS hooks
Frequently Asked Questions
Everything you need to know about anyai and how it works.