Skip to main content

Pick the right LLM for your task. Xpansion Framework Model Source — aggregates 8 independent benchmark sources via the hosted XFMS API. BYOK so your inference cost stays with you.

Project description

XFMS — Xpansion Framework Model Source

PyPI Python License: MIT Xpansion Framework

Pick the right LLM for your task — without the Twitter vibes.

State what you're using the model for. XFMS aggregates evidence from eight independent benchmark sources, normalizes it onto a common scale, lets your intent decide which dimensions matter, and returns a ranked shortlist with plain-English rationale for every pick.

XFMS is one module of the Xpansion Framework — a unified architecture for governing AI-assisted work.


What this repository is

A thin Python client and command-line tool for calling the hosted XFMS API at xfms.vercel.app. About 250 lines of code. It turns a one-liner into a ranked LLM shortlist.

What this repository is not: the recommender engine, the score catalog, or the ingestion pipeline. Those run on the hosted service. The methodology behind every pick is published in full at docs/methodology.md — every claim there maps to code that runs at request time, you just don't run it locally.


What you say:

"Fixing bugs in our Python codebase."

What you get:

My pick: GPT-5.5

Strong on structured output and instruction following — the two
dimensions that dominate code-edit work. Beats the Claude family on
Aider Polyglot and matches it on LiveBench reasoning, at roughly
60% of the per-token cost.

Alternatives:
2. claude-sonnet-4.6  — closer on coding quality, higher cost
3. gemini-3-pro       — fastest, slightly weaker on tool use

Inferred weights from your purpose:
  • structured_output_reliability  42.0%  ← BigCodeBench, Aider
  • instruction_following          28.0%  ← LiveBench, Arena
  • factuality                     20.0%  ← MMLU, GPQA
  • coherence                      10.0%  ← LongBench

Install

pip install xfms

You need two free keys:

  • Xpansion Framework Model Source access key — identifies you to the hosted API. Request one by submitting your email to the signup endpoint:

    curl -X POST https://xfms.vercel.app/signup \
      -H "Content-Type: application/json" \
      -d '{"email":"you@yourdomain.com"}'
    

    You'll get a confirmation email; click the button inside and your API key arrives in a follow-up email.

  • OpenRouter key — your BYOK (bring-your-own-key). XFMS makes a small LLM call per pick to figure out which benchmarks matter for your stated purpose. That call goes through your OpenRouter account, so your inference cost stays with you (~$0.001 per pick). Sign up at openrouter.ai/keys.

Configure them once:

export XFMS_API_KEY=xfms_live_...
export OPENROUTER_API_KEY=sk-or-v1-...

Use

Command line:

xfms rank "writing a tight editorial under a budget"
xfms pick "fixing bugs in our Python codebase"
xfms rank "summarizing a long legal contract" --top-n 3
xfms rank "OCR a handwritten manifest" -c vision -c tool_use

When you actually mean "the cheapest model, period" — make cost the primary dimension and the engine switches to lexicographic ordering. The cheapest model wins; other dimensions only break ties:

xfms rank "cheapest model that can parse a 5-page PDF" --primary cost

When you want to see how the picks actually behave on your kind of query — add --ab and the engine runs the top 3 picks against 5 generated test queries (expanding to 10 or 15 if the picks trade wins), then surfaces real-world cost/latency plus plain-English commentary:

xfms rank "summarizing 50-page commercial leases" --ab

The A/B output ends with a one-paragraph summary along the lines of "On the test queries, Model X was 60% cheaper but Model Y was 30% faster — they trade off." You decide.

If XFMS detects something you didn't ask for but probably need — like streaming for a real-time chat use case — it surfaces a latent- requirement suggestion at the top of the response. The Koinonos lesson: sometimes you don't know what you don't know. Accept and re-run with -c, or ignore and ship.

Python:

from xfms_client import XFMSClient

with XFMSClient() as xfms:
    result = xfms.rank("writing a tight editorial under a budget")
    print(result["models"][0]["name"])

Or the one-shot:

from xfms_client import pick
print(pick("fixing bugs in our Python codebase")["name"])

Use it inside Claude Desktop, Cursor, or any MCP client

XFMS ships with a built-in Model Context Protocol server, which is just a fancy name for a small program your AI assistant can talk to. Once it's connected, you can ask Claude Desktop or Cursor something like "which model should I use for OCR on shipping manifests?" and the assistant calls XFMS for you. No leaving the chat. No copy-pasting.

Install the package with the MCP extra:

pip install 'xfms[mcp]'

Then drop this block into your client's config file:

Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

Cursor~/.cursor/mcp.json, or paste through Settings → MCP:

{
  "mcpServers": {
    "xfms": {
      "command": "xfms-mcp",
      "env": {
        "XFMS_API_KEY": "xfms_live_your_key_here",
        "OPENROUTER_API_KEY": "sk-or-v1-your_key_here"
      }
    }
  }
}

Both keys are yours — XFMS doesn't sit in the middle of your inference. Get them here:

  • XFMS key — free, request via curl or visit xpansion.dev/xfms/get-started. Arrives by email after you click the confirmation link.
  • OpenRouter key — your BYOK. XFMS makes one small classifier call per pick to figure out which benchmarks matter for your stated purpose. That call runs against your OpenRouter account, so the inference cost stays with you (~$0.001 per pick). Sign up free at openrouter.ai/keys.

Restart your client, then ask it:

"Use XFMS to pick a model for summarizing long legal contracts."

Three tools are available to the assistant: rank (a ranked shortlist), pick (the single best pick), and discover (which quality dimensions matter for your purpose, without ranking).

One-click install via Smithery — the Smithery registry hosts a copy of this config so you can install without hand-editing JSON. Listed shortly after launch.


Override the system's inference

If you know which quality dimension matters most for your task, say so — your preference always wins over the LLM's inference:

xfms rank "code refactor" --leaf-priorities "structured_output_reliability=1.0,factuality=0.5"
xfms.rank(
    "code refactor",
    leaf_priorities={"structured_output_reliability": 1.0, "factuality": 0.5},
)

Why BYOK

The hosted XFMS endpoint runs your purpose through a small language model to figure out which benchmarks matter most for your task — that's how the "inferred weights" block in the response gets built.

That model call goes through your OpenRouter account, not ours. You pay for your own thinking; we pay for keeping the catalog fresh. It's the right alignment of who's on the hook for what.

Typical cost per pick: about $0.001 on OpenRouter (one short classifier call).


How XFMS picks — the four principles

Methodology in full at docs/methodology.md. The short version:

  1. No provider self-reports. Every score comes from a third-party evaluator running the same protocol across every model.
  2. No single-source dependence. Eight independent benchmark sources contribute today; no single leaderboard determines a pick.
  3. User intent beats LLM inference. The system infers weights from your purpose, but your stated leaf_priorities always override the inference.
  4. Honest gaps over invented signal. Missing data is recorded as missing — no interpolation, no synthetic scores. Coverage gaps surface on every pick.

Part of the Xpansion Framework

XFMS is one piece of a bigger architecture. The whole picture lives at docs/xpansion-overview.md.

Xpansion is in pre-signup right now. Early access and founding licenses are open at xpansion.dev.


Local development

git clone https://github.com/VisionAIrySE/XFMS.git
cd XFMS
python3 -m venv .venv
.venv/bin/pip install -e .[dev]
.venv/bin/python -m pytest tests/ -v

The tests mock the HTTP layer so they run offline — no API keys needed to develop.


License

This client library is MIT-licensed. The recommender engine, the catalog, and the ingestion pipeline are not open source. See NOTICE for the patent reservation language and the relationship to the broader Xpansion Framework IP.


Contact

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xfms-0.3.0.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xfms-0.3.0-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file xfms-0.3.0.tar.gz.

File metadata

  • Download URL: xfms-0.3.0.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for xfms-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4aca60df7b4d9760502fb21db9f440f3855b5967b8aa32989e988f3187354304
MD5 5bebbf86cadc5f7a31f5685ee43a71c3
BLAKE2b-256 e5e0a8083730358ffe616e0f17e3f94baafec02d2fa5e3b7e63ec752a44d3fee

See more details on using hashes here.

File details

Details for the file xfms-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: xfms-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 18.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for xfms-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97393085306cb0e9e2b86b1ba4b62b4359cd59a92587db4725d8ed7acd68d9e5
MD5 4890c272b24167eccee9fdb0a5ff5888
BLAKE2b-256 5126c51f475b26f2aadf8cfe4ffd85ce9654b1f60d3d27061a6d313a1e75fe59

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page