Skip to main content

llmf

Free, keyless LLM access in one call — with automatic multi-provider fallback.

PyPI version Python versions License: MIT

llmf (llmfree) is a stdlib-only Python library and CLI for public, no-API-key OpenAI-compatible endpoints. It picks a live target, falls back on errors, and runs on desktop and Termux.

import llmf

r = llmf.chat("Explain the CAP theorem in two sentences.")
print(r)              # Reply is a str subclass
print(r.source)       # "provider/model"
print(r.provider, r.model, round(r.latency, 3), r.usage)

Package metadata (pip show llmf)

Name: llmf
Version: 0.4.1
Summary: llmf (llmfree): free, keyless LLM chat with automatic multi-provider fallback — stdlib only.
Home-page: https://github.com/MoonLite-Br/llmfree
Author: Html
License: MIT
Requires-Python: >=3.8
Requires:
pip install -U llmf
pip show llmf

Install

pip install -U llmf
python -c "import llmf; print(llmf.__version__)"
llmf version

Python API

Short form → Reply

import llmf

r = llmf.chat("Hello!")
r.text, r.source, r.provider, r.model, r.latency, r.usage, r.attempts

model= aliases: fast | best | code | vision | reasoning
Also fuzzy names, full provider/id, or a list tried in order.

llmf.chat("hi", model="code", max_tokens=256)
llmf.chat("Describe this", images=["photo.jpg"], model="vision")
for piece in llmf.stream("Count 1 to 5"):
    print(piece, end="", flush=True)

OpenAI-shaped form

from llmf import LLMF

llm = LLMF()
c = llm.chat.completions.create(
    model="best",
    messages=[{"role": "user", "content": "Hello"}],
)
print(c.choices[0].message.content)

Catalog & config

llmf.models.list()
llmf.models.list(live=True)                 # chat/free only by default
llmf.models.list(live=True, include_non_chat=True)
llmf.models.resolve("fast")
llmf.models.check()                         # doctor; ~24h cache
llmf.providers.list()
llmf.health.check()
llmf.configure(timeout=30, vision_timeout=90, routing="adaptive", race=2)
llmf.register("lab", "http://localhost:11434/v1", ["llama3"], front=True)

Env: LLMF_TIMEOUT, LLMF_PROXY, LLMF_MODEL, LLMF_ROUTING.


CLI

llmf "question" | llmf ask "…"
llmf chat
llmf models [list|check|resolve NAME]
llmf doctor [--all] [--include-non-chat] [--include-limited] [--no-save]
llmf providers | health | version
llmf serve [--host 127.0.0.1] [--port 8000] [--api-key …] [--cors]

Flags: -m/--model, -p/--provider, -s/--system, --image, --max-tokens, -t/--temperature, --stream, --json, -v, --routing ranked|adaptive, --race N, --timeout, --proxy, --live, --all, --include-limited, --include-non-chat, --no-save, serve options (--strict-models, --no-fallback, …).

$ llmf -v "2+2=?"
$ llmf models
$ llmf doctor
$ llmf serve --port 8000

What’s new in 0.4.1

  • Capacity vs “paid model” messages on BlockRun: capacity wins (≈10 min sleep), not hours.
  • Retry after N seconds → cooldown ≈ 3×N (not flat 60s); llm7 min_interval=1.1.
  • OVH default model → gpt-oss-120b (faster anonymous tier).
  • Live-id filter drops more freeai utility models (madlad, realesrgan, rmbg, …).

See CHANGELOG.md for 0.4.0 behaviour (429 classes, chat/free live catalog, dynamic fast, vision_timeout).


Safety

Unofficial free endpoints may change or rate-limit. Do not send secrets. discover() is opt-in. llmf serve defaults to localhost.


License

MIT © 2026 Html / MoonLite-Br

Metadata

Release files for llmf 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llmf 0.4.1
File Size Uploaded Provenance
llmf-0.4.1.tar.gz 54.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for llmf 0.4.1
File Interpreter ABI Platform
llmf-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 105.5 kB

Release files / llmf-0.4.1.tar.gz

Download URL llmf-0.4.1.tar.gz
Size 54.9 kB
Tags Source
SHA-256 checksum
How to use checksums
52239606a74f9c7b42dc652fca5d8a5911fa9adfd9163dd61f9876f9341e0e16
BLAKE2b-256 checksum
How to use checksums
d3f730feb344b63e723c2a99dbdd5ea0856fc4f9a3d5901c0bafec51246d4d83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / llmf-0.4.1-py3-none-any.whl

Download URL llmf-0.4.1-py3-none-any.whl
Size 50.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d67b9adb45f85285114b08ac805ded4062a59e823da58488dfe25e9bb7de7d0e
BLAKE2b-256 checksum
How to use checksums
ab60f70494fc04b3150e095fb8fcd27cc66dde3ef0d48e5db97651eaf0b5d517
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for llmf 0.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page