Switch AI providers with full persistence, computer use and no latency.
supercompat({
clientAdapter:
Anthropic
,
})
const response = await client.responses.create({ model: 'claude-sonnet-4-6', input: 'My name is Alice.', previous_response_id: resp.id, })
Output SDK
Responses API
Messages API
Assistants API
One SDK for every provider, every API feature, and persistent state — without a proxy.
0ms
Zero latency
In-process. No proxy, no extra hop.
supercompat/openai
![]()
supercompat/anthropic
Multiple output SDKs
Real OpenAI and Anthropic clients. More coming.
PrismaIn-memoryOpenAI ResponsesOpenAI AssistantsAzure ResponsesAzure Agents
6 storage adapters
Prisma, in-memory, or provider-managed state.
FunctionsWeb searchComputer useCodeFile search
Full tool support
Functions, web search, computer use, and more.
MIT
Open source & free
MIT licensed. No vendor lock-in, no usage fees.
Full SDK surface.
Every method from the OpenAI and Anthropic SDKs — responses, assistants, threads, messages, streaming, token counting — translated to work with any provider.
OpenAI SDK
client.responses.create()client.responses.retrieve()client.responses.delete()client.beta.assistants.create()client.beta.threads.create()client.beta.threads.messages.create()client.beta.threads.runs.create()client.beta.threads.runs.stream()
Anthropic SDK
client.messages.create()client.messages.stream()client.messages.create({ stream: true })client.models.list()client.models.retrieve()client.messages.count_tokens()
Wide provider support.
Swap one adapter to change backends. Your API calls, types, and streaming stay identical.
Store conversations your way.
Choose where conversation data lives — your own PostgreSQL via Prisma, in-memory for development, or let OpenAI and Azure manage state natively.
OpenAI Responses
Provider-managed
OpenAI Assistants
Native threads & runs
Azure Responses
Provider-managed
Computer use, any provider.
Screenshots, clicks, typing, and scrolling — one interface for OpenAI, Anthropic, and Google. Provider formats translated automatically.
Taking screenshot...screenshot captured (1920×1080)
Clicking "Sign in"click at (940, 520)
Typing email addresstype "alice@example.com"
Scrolling downscroll delta_y: 300
Normalized to computer_call / computer_call_output
Battle-tested in production.
1.6Mthreads created
22Mmessages sent
Configure and go.
Pick a provider, a storage adapter, and a run adapter. The generated code is ready to copy.
Client
![]()
Anthropic
Storage
Prisma
Output SDK
Responses API
![]()
Messages API
Assistants API
import { supercompat, anthropicClientAdapter, completionsRunAdapter, prismaStorageAdapter, } from 'supercompat/openai' import Anthropic from '@anthropic-ai/sdk' import { PrismaClient } from '@prisma/client' const client = supercompat({ clientAdapter: anthropicClientAdapter({ anthropic: new Anthropic() }), storageAdapter: prismaStorageAdapter({ prisma: new PrismaClient() }), runAdapter: completionsRunAdapter(), }) const response = await client.responses.create({ model: 'claude-sonnet-4-6', input: 'My name is Alice.', previous_response_id: resp.id, })