mrkeyoor.com_
Wed 23 Sept 00:36 UTC
LLM Toolsevaluationupdated 26 Aug 2026

freellmapi review

FreeLLMAPI is a self-hosted gateway that puts many providers' free AI tiers and custom OpenAI-compatible services behind one API. It stores provider keys locally, tracks quotas, and switches models or providers when a request hits a limit, aiming at personal experimentation rather than production traffic.

+1,159stars / 7d
Verdict

Our FreeLLMAPI run installed 778 packages in 32 seconds, then passed its 26-second build and 157-second test step with 0 audit findings. That makes it an unusually credible personal gateway for developers who already collect free-provider keys, but the project's own no-production warning should decide the boundary. Use it to experiment or keep a coding agent running through quota changes; buy a supported API before users depend on it.

We ran it

Lab card: what happened when we ran freellmapiScreenshot of freellmapi (freellmapi.co)
Install✓ · 32s778 packages · 490 MB
Build✓ · 26s
Tests✓ · 157sran, no count parsed
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo743 files~115,486 lines of source · 13.5 MB · 4 CI workflows · Dockerfile

Answers from our run

Does freellmapi build from source?

Dependencies installed in 32 seconds (778 packages), and the build succeeded in 26 seconds. We cloned commit 68ddca4 into a clean Debian container with 3 CPUs and no project-specific setup.

Do freellmapi's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does freellmapi have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use freellmapi?

Production applications that need an SLA or predictable model quality: the README explicitly says the project is for personal experimentation and tells builders to switch to a paid API before shipping.

What are the alternatives to freellmapi?

LiteLLM, Portkey AI Gateway, OpenRouter. Our FreeLLMAPI run installed 778 packages in 32 seconds, then passed its 26-second build and 157-second test step with 0 audit findings.

Setup4/5Clean install, build, and tests; provider accounts remain manual
Docs5/5Deployment, APIs, clients, routing, security, and limits are explicit
Community5/520,547 stars with same-day pushes, release, and issue activity
Maturity4/5Wide gateway surface passes checks, but v0.9.0 is pre-1.0

Who it’s for

Individual developers who already have several provider accounts and want one endpoint for experiments.
Coding-agent users who need OpenAI, Anthropic, Gemini, or Ollama-shaped APIs from the same local router.
Homelab operators willing to manage SQLite backups, an encryption key, provider terms, and changing quotas.
Developers testing failover behavior before replacing free providers with a paid production service.

Who it’s NOT for

Production applications that need an SLA or predictable model quality: the README explicitly says the project is for personal experimentation and tells builders to switch to a paid API before shipping.
Teams that require frontier models all day: the limitations section says free tiers exclude them and stronger choices can disappear as daily caps are used.
Organizations unwilling to maintain separate provider accounts and terms: the proxy does not replace the agreements accepted for each upstream service.
Operators who cannot tolerate a 30-day catalog delay on the free plan: the README says new models reach the free snapshot after that delay, while premium gets same-day updates.
Security teams that cannot trust an outbound relay with request contents: v0.9.0 warns that the optional fetch relay terminates TLS and can see the provider key and request body.

Setup reality

Our sandbox installed 778 npm packages in 32 seconds and used 490 MB. The build passed in 26 seconds, and the test command passed in 157 seconds. Npm audit reported 0 known vulnerabilities across critical, high, moderate, and low severities.

A working router still needs an encryption key, a unified API token, and credentials for every provider you want to use. Docker, Compose, desktop, and Node 20+ paths are documented. The default SQLite data needs a persistent volume and backups if provider keys matter.

Free tiers change quotas and availability without notice. The free catalog can lag the live feed by 30 days, and an optional outbound fetch relay sees plaintext provider keys and request bodies because it terminates TLS. The project is single-user and local-first, with no production SLA.

One local endpoint can rotate across many free provider accounts

FreeLLMAPI accepts OpenAI-style requests and dispatches them through provider credentials stored in a local SQLite database. It tracks limits per model and key, cools a key after a 429 or server error, and tries the next eligible route. The same logical model can collapse across several providers, while named chains let users choose a coding or vision path without hard-coding one upstream service into every client.

The README claims a catalog spanning 34 providers and 635 free endpoints, but those are project catalog figures rather than capacity guaranteed to one user. Available quota depends on which accounts and keys you add. The router also supports custom OpenAI-compatible chat, embeddings, images, and audio endpoints, so a local llama.cpp, Ollama, LM Studio, or vLLM service can sit beside the remote free pool.

The API surface covers coding agents and media clients

Clients can use chat completions, Responses, legacy completions, embeddings, speech, transcription, images, and video through OpenAI-shaped routes. Anthropic Messages, native Gemini endpoints, and opt-in Ollama emulation widen compatibility. The README supplies setup generators for Claude Code, Codex, Aider, and other tools; these back up existing configuration, while launch commands can inject credentials only into a child process.

An MCP server lets agents inspect models, provider health, and the active routing strategy. Because FreeLLMAPI directly supports Claude Code setup, its relevant tags are MCP and Claude Code. Compatibility still has edges: a provider may accept only part of a normalized request, and issue 1038 reports an assistant field being stripped before a Moonshot prefill reached its provider. One shared schema does not erase every upstream wire difference.

What happened when we ran it

Our sandbox installed commit 68ddca4 in 32 seconds, pulling 778 npm packages and using 490 MB on disk. The build succeeded in 26 seconds. The test command also passed, taking 157 seconds. Npm audit found 0 known vulnerabilities, including 0 critical, high, moderate, and low findings in the installed dependency tree.

The checkout itself contained 743 files, about 115,486 lines of source, and 13.5 MB before dependencies. Our scan found 4 CI workflow files, a Dockerfile, Compose configuration, and npm workspaces, but no repository directory literally named tests. The successful test command is the meaningful result; the directory layout only says that tests are organized elsewhere in the monorepo.

Those checks cover installation, compilation, the supplied test command, and dependency advisories in a fresh 3-CPU, 8 GB Debian container. We did not create 34 provider accounts, exhaust daily quotas, or compare response quality across 635 endpoints. The run therefore supports confidence in the gateway code at that commit, not the README's aggregate token estimate or the reliability of any upstream free tier.

Provider keys stay local, while requests still leave the machine

Provider keys are encrypted in SQLite with AES-256-GCM and decrypted in memory for requests. Applications receive one FreeLLMAPI bearer token instead of every upstream credential. A generated encryption secret, persistent database volume, access controls, and backups all matter. Losing the encryption key makes stored credentials unusable; exposing both the key and database defeats encryption at rest.

Local-first does not mean local inference. Prompts and outputs travel to whichever remote provider wins routing unless you configure a local custom endpoint. The optional v0.9.0 fetch relay creates another trust boundary: its release notes say the relay terminates TLS and sees the provider key plus request body. Use only a relay you control, and keep the feature off when a normal connection works.

Free catalog updates arrive 30 days behind the paid feed

A signed catalog updates provider models, quotas, and compatibility details without a code pull. The router verifies downloads against a pinned Ed25519 key. Free installations receive a monthly snapshot, and the README says each new model reaches that channel 30 days after entering the live feed. A $19-per-year premium key receives same-day catalog updates and can cover several personal routers.

That subscription improves freshness, not upstream service guarantees. A provider can still lower a quota, block a region, remove a model, or change account rules. The dashboard's tracking and fallback behavior reduce manual recovery, but they cannot create capacity after every suitable key is exhausted. Late-day requests may fall to weaker models, which the limitations section explicitly acknowledges.

Personal experimentation is the stated boundary

The README says there are no frontier models, latency varies, and no SLA exists. It also says effective intelligence can fall as the best daily quotas run out, then reset at UTC midnight. Those are material product characteristics for any agent, automation, or application that expects stable output. A route returning successfully does not mean the same model class handled yesterday's and today's request.

Provider terms remain separate. FreeLLMAPI's proxy does not merge accounts or grant broader commercial rights. The disclaimer tells users to comply with every agreement accepted when each provider account was created and points to a provider-by-provider review from May 2026. A competent team should recheck the current terms itself before routing company data or sustained automation through free credentials.

August 2026 activity supports a trial, not a production exception

GitHub recorded 20,547 stars and 53 combined open issues and pull requests when fetched. The last push and v0.9.0 release both landed on August 26, 2026. That release added the fetch relay, Docker volume ownership handling, estimated usage frames, and signed Mac distribution. Same-day issue activity shows maintainers are handling a broad desktop, server, provider, and client surface.

The clean 215 seconds of build and test time after installation make FreeLLMAPI easy to take seriously as a personal tool. Its strongest quality is that the documentation does not hide the weak substrate beneath it. Run it for experiments, keep provider keys and backups under your control, and treat any successful fallback as borrowed availability rather than an SLA.

Alternatives

ProjectWhat it isPick it when
LiteLLM gh↗A proxy and SDK that normalizes many paid and local model providers behind OpenAI-style APIs.pick this instead when production routing, spend controls, and a wider commercial-provider focus matter more than stacking free quotas.
Portkey AI GatewayAn open-source gateway for routing, retries, fallbacks, and observability across model providers.pick this instead when gateway operations and policy controls matter more than a catalog of free tiers.
OpenRouterA hosted service that exposes many models through one account and API.pick this instead when you prefer one bill and managed infrastructure to maintaining dozens of provider keys.

What people are saying

  1. [github-trending] tashfeenahmed/freellmapi

Sources

  1. FreeLLMAPI README
  2. FreeLLMAPI repository facts
  3. FreeLLMAPI v0.9.0
  4. Moonshot prefill issue

More llm tools reviews

treg · train-llm-from-scratch · mistral.rs · flue · TensorRT-LLM · pydantic-ai · the whole board →