mcp server
fornax
Run open models locally: chat, images, speech, decisions, and an OpenAI-compatible API.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 26, 2026English · 简体中文 · Command reference · Contributing
fornax runs open models on your own computer. Chat with them, make images, video and speech, have them make decisions, and keep everything on your machine.
curl -fsSL https://raw.githubusercontent.com/earshot-run/fornax/main/install.sh | sh
fornax studio
Installs the latest successful main build; no Go toolchain needed.
The studio
fornax studio opens in your browser. Pick a model, type, and it streams
back. Drop in a photo if the model can see, or talk to it if it can hear.
Your chats are saved.
Image, video and voice work the same way: describe what you want, watch it come in step by step, and find everything later in the gallery. Edit an image by giving it a reference, or clone a voice from a few seconds of audio.
Models
Open Models in the studio. Chat, image, voice and video each list the most-downloaded models of that kind on Hugging Face, plus a few picks that fit your computer, and either downloads with one click. Search finds any other GGUF model and can check its size before you download it. Gated models like Llama need a Hugging Face token; add yours on the same page.
From a terminal it's one line, with any model on Hugging Face or Ollama:
fornax pull hf:Qwen/Qwen3-4B-GGUF
fornax ask hf:Qwen/Qwen3-4B-GGUF "Explain what a GGUF file is in one sentence."
If Hugging Face is slow or unavailable where you live, set HF_ENDPOINT to
an HTTPS mirror origin (for example https://hf-mirror.com). Mirrors do not
receive your Hugging Face token,
so use the official endpoint for gated models. See the
download reference.
Decisions
Some models don't chat. They answer typed questions about a piece of text with calibrated probabilities: yes or no, one of a few options, or a level on a scale. That's the job behind routing a support ticket, flagging a risky message or grading an answer, and a local model does it in a fraction of a second, for nothing.
fornax judge kev-4b \
--state "Customer: I was charged twice this month and nobody has answered my last three emails. If this isn't fixed today, I'm cancelling." \
--ask 'escalate|noul|Does this need a human today?' \
--ask 'topic|choice|What is it about?|billing|bug|sales|other' \
--ask 'mood|score|How upset is the customer?|calm|annoyed|angry'
escalate noul 0.94 ███████████████████░
topic choice billing
billing 0.64 █████████████░░░░░░░
other 0.29 ██████░░░░░░░░░░░░░░
bug 0.06 █░░░░░░░░░░░░░░░░░░░
sales 0.01 ░░░░░░░░░░░░░░░░░░░░
mood score 1.70 → angry
angry 0.71 ██████████████░░░░░░
annoyed 0.28 ██████░░░░░░░░░░░░░░
calm 0.01 ░░░░░░░░░░░░░░░░░░░░
179 ms
fornax ships two open families of these: kev,
Jev-style models from 0.8B to 27B, and Convai's smaller
laya. Both speak TypeSafe's System
One API, so fornax run kev-4b gives you a local server the official
TypeSafe SDK talks to unchanged.
Not enough GPU?
Run the studio on a bigger machine, a GPU box at home or a rented cloud GPU, and use it from your laptop:
fornax studio -on me@gpu-box
fornax picks the right build for the hardware (Metal, CUDA, Vulkan or plain
CPU), and fornax doctor tells you which one it chose and why.
Safe by default
Models only listen on your own machine and need a key that fornax generates for you.
For scripts and agents
Everything above also works from the terminal: ask, see, hear,
imagine, say, embed, judge, run and more, plus an MCP server for agents.
In Earshot, the fornax plugin hands that
server to every agent you run. The full command reference and how it all works is in
docs/reference.md.
License
MIT. Model weights keep their own licenses.