Our take
Newless than six months old and changing fast- Activity
- 76
- Community
- 12
- Issues
- 41
- Pull requests
- 45
+1 stars in the last 30 days
- Fewer contributors than 86% of the projects we track
A3M Router is a promising, actively developed gateway for teams willing to evaluate a young routing system, but its development depends heavily on one contributor.
Good fit if
- You want a self-hosted, TypeScript-based gateway with an OpenAI-compatible API.
- You need routing, provider failover, or parallel model comparison and can validate results with your own prompts.
- You can work with Node.js 18 or later, or deploy the provided Docker setup, under the MIT license.
Look elsewhere if
- Every request must use a specific model rather than pass through routing decisions.
- Your team cannot operate a local service or wants a project with a broader contributor base.
- You need mature operational assurances before adopting a recently created project that is still changing quickly.
All health signals
| Last commit | 2026-10-11 (11 days ago) |
|---|---|
| Commits, last 90 days | 100+ |
| Releases, last 12 months | 12 (latest v2.17.0, 2026-10-11) |
| Contributors | 2 (top contributor: 98% of commits) |
| Issues closed, last 90 days | 6 (typically closed in 70 days) |
| Pull requests merged, last 90 days | 8 (typically merged in 1 day) |
| Project age | 5 months |
Checked on 2026-10-23 with the GitHub API.
Project history
Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.
Stars
17Forks
5Change since Nov 7, 2026: 0 stars·0 forks
Overview
A3M Router is a self-hosted, OpenAI-compatible gateway for routing LLM requests across providers. Its defining routing option is Jev System One, exposed as model="jev-auto"; the project also offers a heuristic model="auto" mode. The goal is to match requests to a suitable provider rather than send every prompt to the same expensive model.
The project is aimed at developers who want to run a routing service on their own infrastructure and keep using the OpenAI chat completions interface. It is a young, rapidly changing TypeScript project, so its claims about savings and answer quality should be checked against your own workload and provider setup.
Key Features
- Provides an OpenAI-compatible chat completions API and a models endpoint.
- Offers heuristic
autorouting and Jev System Onejev-autorouting. - Advertises support for more than 80 providers, with availability checked at runtime.
- Includes failover behavior for provider availability problems.
- Supports semantic caching and conversation memory options.
- Can run parallel provider calls and combine results using ensemble strategies.
- Includes CLI commands for serving, previewing a route, checking provider health, and benchmarking.
- Can be run with Node.js or Docker.
Use Cases
- An application team wants to keep its existing OpenAI client integration while routing requests through a self-hosted gateway.
- A developer handling mixed workloads wants simple prompts routed differently from complex reasoning requests.
- A team wants fallback providers when its preferred model service is unavailable.
- Developers evaluating model responses want to compare multiple providers on the same request using parallel ensembles.
What you need
Detected in the repository
- Node.js >=18.0.0 (from package.json)
- A Dockerfile, so it can run in a container; a Compose file sets up the related services
- A test suite and automated checks on GitHub Actions
License in plain words
MITpermissive
- Commercial use: yes
- Modify and redistribute: yes
- You must keep: the copyright and license notice
- Share your changes: no
A summary, not legal advice: the LICENSE file is what applies.
Getting Started
npm install adaptive-memory-multi-model-router
npx a3m-router serve
Then point an OpenAI client at http://localhost:8787/v1. See the README for configuration and usage details.
Alternatives
- otari: Otari adds virtual keys, budgets, and team usage controls, while a3m-router focuses on Jev System One task-based single-pass routing and ensembles.
- TurboLLM: TurboLLM focuses on serving local models with hardware-aware inference, while a3m-router routes requests among models and providers.
- OmniRoute: OmniRoute emphasizes configurable, quota-aware fallback and token compression, while a3m-router uses task-based Jev System One routing and optional ensembles.
- freellmapi: FreeLLMAPI combines free provider accounts and quota tracking for personal use, while a3m-router routes by task and can run parallel model ensembles.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| a3m-router | TypeScript | MIT | 17 | New |
| otari | Python | Apache-2.0 | 660 | Active |
| TurboLLM | TypeScript | – | 278 | New |
| OmniRoute | TypeScript | MIT | 72.7k | Active |
| freellmapi | TypeScript | MIT | 30.3k | New |
Considerations
The repository is less than six months old and is changing quickly. Recent activity includes frequent commits and releases, but nearly all recorded contributions come from one of its two contributors, which creates a continuity risk. Issue resolution has taken longer than pull-request merging on median, so do not assume that open issues will be handled quickly.
Routing quality, provider pricing, and availability depend on the workload and external providers; the README's savings examples are project claims, not a guarantee for your traffic. The README also notes that this is not suitable if you require the same premium model for every request or cannot run a local service. The project is MIT-licensed; review the license and the terms of any model providers you connect before deployment.
Found this useful?
Share it with someone who would like a3m-router.