Ta strona jest dostępna tylko po angielsku.

Self-hosted models

Run an open model on your own GPU and share it. One command does all of it:

Terminalbash
1aile local setup

It looks at this machine (GPU, memory, free disk), installs an engine if there is none, offers the models that fit with their list price, downloads the one you pick, asks it a test question, and turns sharing on. Then aile start serves it.

Already running a model server (vLLM, LM Studio, your own Ollama)? Point at it instead:

Terminalbash
1aile local http://127.0.0.1:1234 # point at an endpoint and turn it on
2aile local # show current state
3aile local --off # stop sharing it; the endpoint is remembered

Engines

EngineWhenWhat aile does
OllamaThe default, and whenever Ollama is already hereInstalls it with your permission (winget, Homebrew, or Ollama's script on Linux), starts it if it is stopped, and drives it through its API. Ollama keeps running when aile stops.
llama.cpp--engine llamacpp, or when Ollama cannot be installedDownloads one pinned llama-server build (CUDA, Vulkan, Metal or CPU, picked from your GPU) into aile's own folder, checks its sha256, and runs it only while aile start runs. No install, no administrator rights. Serves one model at a time.

Nothing is installed or downloaded except by a command you run. The node's relay code cannot reach the downloader at all, whatever the server sends.

Which models sell

A self-hosted model is sold as local/<id> only when <id> has a published list price, matched exactly. Ollama's own names (llama3.1:8b) and Hugging Face file names have none, so a model pulled under its own name runs but earns nothing.

aile local models lists the models aile knows how to download and sell: Llama, Qwen, Gemma, Mistral, Phi, gpt-oss and DeepSeek builds, each paired with the id it is sold under, with its size, whether it fits this machine, and its live list price. A pull saves the model under that id, so it is ready to sell:

Terminalbash
1aile local pull llama3.1:8b # saved as meta-llama/llama-3.1-8b-instruct
2aile local pull qwen/qwen3-8b # by the id itself
3aile local pull google/gemma-3-12b-it --quant Q8_0

You earn list × your margin (aile rates). Downloads are 4-bit builds by default and are sold under the full model's id.

Any other model

Anything in the Ollama library, and any GGUF on Hugging Face, downloads and runs:

Terminalbash
1aile local pull mistral:7b
2aile local pull hf.co/<user>/<repo> # the 4-bit build
3aile local pull hf.co/<user>/<repo>:Q8_0 # a named build
4aile local run hf.co/<user>/<repo> "hello" # talk to it

The client says whether it sells, from the server's own price check. One that does not is still yours to use locally. Set HF_TOKEN for a gated repo.

Talking to it

Terminalbash
1aile local run qwen/qwen3-8b "explain a mutex in one line" # one answer, then exit
2aile local run qwen/qwen3-8b # a chat; Ctrl+C or /bye leaves

This traffic is not blind

Your machine reads these prompts

A self-hosted model runs on your machine, so your machine reads the prompts it answers. Your machine reading the prompts is what "runs here" means. It is a different property from the other two kinds, and it is opt-in for that reason.

Subscription and API-key traffic on the same machine are unaffected and stay blind. The client repeats the distinction at aile local, aile capacity, aile status and aile start, so you know which kind is active.

What does not leave: the weights. Only inference output goes out. Aile never custodies a model.

The endpoint is constrained

The URL is validated before it is saved and must be a loopback or LAN address.

A public value would turn your node back into an open proxy for whatever is at that address. That is what the egress allowlist exists to prevent. The constraint is not configurable, and no config key can widen it.

Which model names are advertised

By default the client asks your endpoint (GET /v1/models) and advertises what it returns. To set them yourself:

Terminalbash
1aile config localModels llama3,mistral # comma-separated; blank = ask the endpoint

Names are forwarded verbatim

Callers send local/<name>; Aile strips local/ and passes the rest to your endpoint unchanged, so the names you advertise must be exactly the names your endpoint answers to. If your endpoint serves llama3 and you advertise llama-3, requests for local/llama-3 will not resolve.

Priced at the model's published list × your margin; a name with no published price is not served.

How callers reach it

Your priced models are listed as local/<name> while your node is healthy. A caller sends that id, or the bare name with x-aile-provider: local, and the reply carries x-aile-model: local/<name>. Your endpoint gets the body as the caller sent it, apart from the output cap:

  • A chat request's max_completion_tokens arrives as max_tokens, which is what local runtimes read.
  • On an x402 payment, a body naming no output cap gets the cap it was priced on, and one carrying llama.cpp's own n_predict or n_cmpl is refused rather than rewritten.
  • A caller key can refuse self-hosted models ("Allow self-hosted model" unticked in its routing). Requests on that key never reach you.

Quality is not assumed

Self-hosted capacity is the one kind Aile can probe for served quality: a known-answer probe runs against local listings and surfaces on the listing card.

A model lists once its node has answered one probe, right or wrong. A reply cut off at the probe's short token limit, or one that only reasons, lists it too but is not scored; a model with only such replies reads "Not checkable". Beyond that the result is evidence: it gates nothing, feeds no trust tier, and cannot show which model answered. A sharer advertising llama3 and serving something smaller is not caught by it. See Verification.

Accounts versus capacity

A machine sharing only a local model has no credential to hold, so:

Terminalbash
1aile accounts # "no accounts" — correct, and it points you at capacity
2aile capacity # counts the local model, and says "not serving" if the endpoint is down

Turning it off

Terminalbash
1aile local --off

The endpoint is remembered, so turning it back on is one command. To forget it:

Terminalbash
1aile config --reset localEndpoint