llmf
Free, keyless LLM access in one call — with automatic multi-provider fallback.
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"
Package metadata (pip show llmf)
Name: llmf
Version: 0.5.0
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
llmf.chat("hi", model="best") # aliases: fast | best | code | vision | reasoning
llmf.chat("hi", model=["best", "fast"])
llmf.chat("Describe this", images=["photo.jpg"], model="vision")
llmf.chat("…", provider="ch-at") # force a provider (incl. opt-in ones)
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)
print(c.model, c.provider, c.usage, c.latency)
Catalog & config
llmf.models.list()
llmf.models.list(live=True) # chat/free by default
llmf.models.list(live=True, include_non_chat=True)
llmf.models.resolve("best")
llmf.models.check()
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 [--port 8000] [--api-key …] [--cors]
Flags: -m/--model, -p/--provider, -s/--system, --image, --stream, --json, -v, --routing, --race, --timeout, --proxy, --live, --all, --include-non-chat, …
$ llmf -v "2+2=?"
$ llmf models
$ llmf doctor
$ llmf serve --port 8000
What’s new in 0.5.0
- New providers:
ch-at(e.g. GPT-4o, early in chain /best),rewind-ai(Qwen / gpt-4o-mini; sign-in-only models marked broken),nottrack(SSE “debate” adapter — opt-in only, not in the automatic chain; useprovider="nottrack"). ProviderSpec.auto=False: provider stays out of auto-fallback but remains callable withprovider=.- BlockRun defaults / models updated; Pollinations
openai-fastis an alias ofopenai.
Full history: CHANGELOG.md.
Safety
Unofficial free endpoints may change or rate-limit. Do not send secrets. Opt-in providers and discover() are explicit. llmf serve defaults to localhost.
License
MIT © 2026 Html / MoonLite-Br
Metadata
Release files for llmf 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| llmf-0.5.0.tar.gz | 56.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llmf-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 109.4 kB
Release files / llmf-0.5.0.tar.gz
| Download URL | llmf-0.5.0.tar.gz |
|---|---|
| Size | 56.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1ae262dc1fc60ed32695bae26774f4d5dda52fd0e99b1ee9d413d5bdae2aa9b8
|
|
BLAKE2b-256 checksum How to use checksums |
97ccccf779e9ebc8401ce1ddafbb468ffdae3e58519879319c2a3e5d0b76da2d
|
| 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.5.0-py3-none-any.whl
| Download URL | llmf-0.5.0-py3-none-any.whl |
|---|---|
| Size | 52.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b55a0b7f7b074b3a4420388afd8d324e8e3c8af8ce9b4d3f10582e4fb2e499ee
|
|
BLAKE2b-256 checksum How to use checksums |
d9e8fd69f8a7728f3f5a116449a840f0ddfe3f4f8f5923e4593a02014ab36b25
|
| 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.5.0
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.