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"

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; use provider="nottrack").
  • ProviderSpec.auto=False: provider stays out of auto-fallback but remains callable with provider=.
  • BlockRun defaults / models updated; Pollinations openai-fast is an alias of openai.

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)

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

Built distribution (wheel)

Table of built distributions (wheels) for llmf 0.5.0
File Interpreter ABI Platform
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.

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