Passing tests leave a dependency review to do
FreeLLMAPI is a local gateway that routes requests through your provider accounts and custom OpenAI-compatible endpoints. The supplied sandbox run passed 3,950 tests, while npm audit reported 29 known vulnerabilities, including 5 critical. Those findings leave a dependency review to complete before entrusting the router with provider credentials.
The project's own README sets a separate usage boundary: personal experimentation and learning, with a paid API before shipping. Consider it for experiments only after reviewing the advisories and your provider terms. The supplied checks do not establish suitability for customer traffic.
The README describes quota tracking and fallback routing across configured accounts. This can reduce client configuration changes when an allocation runs out. It cannot guarantee remaining capacity, consistent response time, or the quality of whichever model handles a fallback.
What happened when we ran it
The supplied run installed FreeLLMAPI commit 986b211 in 110 seconds on October 13, 2026, recording 823 dependencies and 549 MB on disk. The build succeeded in 29 seconds. Vitest finished successfully in 253 seconds with 3,950 passed, 0 failed, and 8 skipped out of 3,958. These results establish a successful repository build and test suite in that sandbox. They do not establish availability or answer quality across real provider accounts.
Npm audit reported 29 known vulnerabilities: 5 critical, 17 high, and 7 moderate. The supplied measurements do not name affected packages, dependency paths, or runtime exposure. They cannot establish whether a particular endpoint is exploitable or whether an update resolves every finding. Before storing provider credentials, inspect the advisories against the exact dependency tree. Passing tests do not resolve those questions, and the audit count alone does not establish an intrusion.
The recorded environment had 3 CPUs and 8 GB RAM and used the image label lab-node:22. That label does not verify the actual Node or operating-system version. The checkout contained 1,160 files, about 163,082 source lines, and 18 MB. The scan found 4 CI workflow files, a Dockerfile, a compose file, and monorepo workspaces. It recorded no tests directory despite the successful Vitest command; the directory scan does not replace the execution result.
Stored keys and routed prompts have different boundaries
The README says provider credentials are encrypted with AES-256-GCM in SQLite and decrypted in memory for requests. Clients use a unified bearer key instead of holding every upstream credential. Protect the database, encryption key, and unified client key. The supplied sandbox checks do not independently verify the encryption implementation.
The README says requests go from your machine to the upstream providers you enabled. A local dashboard therefore does not establish local inference. A custom provider can point to a compatible local endpoint, but you must configure that explicitly. Check the destination and fallback choices before routing sensitive material.
The documented quick start asks users to add provider credentials on the Keys page, arrange a fallback chain, and copy the unified API key into their client. Docker and desktop installation paths are documented, alongside Node 20 or newer. Server installations use an account login; the desktop dashboard signs in locally. The measured source build does not validate every desktop package or container.
A successful fallback can change model quality
The README warns of no frontier models, variable latency, and no SLA. It also says effective intelligence can drop as preferred models exhaust their daily allocations. For coding-agent work, a successful request can therefore come from a different model with different capabilities. Check the served-model information when reviewing output or trying to reproduce a result.
Catalog freshness is another constraint. The README says free installations receive a monthly snapshot, with models arriving 30 days after joining the live feed; premium routers receive them the same day. That describes catalog delivery, not guaranteed upstream capacity. The headline aggregate allowance is a project catalog claim, not capacity measured in this sandbox or guaranteed to your accounts.
Maintenance evidence extends beyond the tested commit
The supplied GitHub metadata snapshot, observed October 20, 2026, records the last push as 2026-10-20T05:15:09Z. The v0.16.5 release, dated October 19, describes a Windows premium-activation connection fix. These records show repository activity after the October 13 sandbox run; that run does not validate the later release.
An October 20 issue reports a Docker startup failure with a UNIQUE constraint error involving models.platform and models.model_id. It was open in the supplied extract. This is a user's report, not a reproduced sandbox failure. The supplied evidence does not establish support turnaround or resolution of that report.
Alternatives depend on the controls you need
LiteLLM documents virtual keys and spend tracking. Consider it when those controls are requirements for a shared gateway. Portkey's gateway documents load balancing and conditional routing. Consider it when configurable routing policy is the main requirement. These are comparisons of documented features, not measured security, speed, or reliability comparisons.
For FreeLLMAPI, the next step is to review the 29 advisories against the tested dependency tree, then check the terms and request destinations of any provider accounts you intend to add. The passing suite supports the build result at commit 986b211; it does not remove the project's personal-use boundary.

