Muxll makes remote LLM inference speak CVM/Nostr — so inference becomes a decentralized, competitive marketplace instead of a handful of walled HTTP gardens.
Muxll is a thin inference adapter. It has one job: bridge upstream LLM providers (Anthropic, OpenAI, OpenRouter, …) and CVM-native clients, translating between their wire shapes. It translates; it does not do inference itself, and it does not do anything else.
CVM-native client ──CVM/MCP over Nostr──▶ Muxll ──▶ pi-ai ──▶ upstream LLM
Today this is a proof of concept: chat.complete (streaming and not) and
models.list, with OpenAI-aligned wire shapes. The vision is what those shapes
unlock.d
Discovery and the marketplace are not things Muxll invents — CVM already specifies them:
- CEP-6 (Public Server Announcements). Operators announce themselves on
Nostr (kinds 11316–11320): name, description, icon, website, capabilities,
tool list. Clients discover providers without prior knowledge of any pubkey.
Muxll already wires this (
MUXLL_ANNOUNCED); pricing and metadata ride as custom announcement tags. - CEP-15 (Common Tool Schemas). The marketplace
layer — providers grouped by
schemaHash, browsable by category, switchable at will. Muxll's job is to declare its tools as common schemas and let the ecosystem do the rest.
An operator runs Muxll, points it at their upstream keys, announces publicly, and becomes one entry in a global, censorship-resistant directory of inference providers competing on real terms.
Muxll serves many clients through three reference surfaces, one per integration mode — each both a reference implementation and a real product:
- Web app — the marketplace surface. Browser-native CVM/Nostr: browse
announced providers, compare by
schemaHash, price, and capability, then chat. No Muxll-operated backend; it speaks to relays and providers directly, so it stays fully decentralized. Also the reference for anyone integrating Muxll on the web. - Local HTTP server — the OpenAI-compatible bridge and operator control
plane. Holds upstream keys, collects usage/cost metrics, renders a dashboard,
and exposes
/v1/chat/completionsso any OpenAI-compatible client (LibreChat, Continue, Aider, editors, langchain, …) plugs in by changing a base URL. The streaming path is nearly free because CEP-41 chunks are already OpenAI-shaped. - CLI — the reference for terminal and programmatic CVM-native use, and the dogfooding surface.
- One job. Muxll is an inference adapter. Every adjacent concern — tool execution, the client UX, discovery, payments settlement, the gateway — lives in its own component over the Nostr fabric.
- Transparent wire shapes. Inputs and outputs track OpenAI's API so clients and bridges are trivial, and so the CEP-15
schemaHashstays stable.