Michael Chen

MichaelRouter

One OpenAI-compatible chat endpoint for Claude, Gemini, OpenAI and free models on OpenRouter.

How it works

The model name chooses the provider. Claude, Gemini and OpenAI requests go to their respective APIs. OpenRouter requests are limited to free models. This is explicit routing, not automatic model selection.

For Claude, an adapter translates OpenAI-format messages into Anthropic's Messages API and translates responses back. It handles streaming, tool calls and images.

Running it

The gateway runs on Node.js and Vercel, with PostgreSQL for shared state. A CLI provides health checks, provider-key management, usage and cost tracking, and recent error reports.

API access is password-protected. Stored provider keys are encrypted, and failed-password limits are shared across server instances. Separate user and admin credentials keep chat access apart from administrative controls.

Performance notes

The repository includes benchmark tooling and historical measurements. Those measurements used mocked services and an older storage setup. They do not establish the current PostgreSQL-backed deployment's latency.

Project source

Benchmark methods and limitations

Back to Projects & Fun