AGPL-3.0-or-later · forever.

the provider catalog

LocalAI

A self-hosted server that speaks the familiar API shape, with a model gallery and a web UI: one shared endpoint instead of per-laptop runtimes. One provider/model line moves a workflow here or away again: the same file runs on every provider the catalog names, and swapping is a one-word diff. Machines read the catalog; the binary answers nika catalog.

  • 1pinned modelaliases pin exact upstream ids
  • localfamilythe sovereign default: your hardware, no key
  • no keynothing to leakthe sovereign path
  • openai-chatwire dialectthe adapter speaks it

the wire

local · the sovereign default: your hardware, no key

A workflow names this provider in the model line (model: localai/default), and the engine speaks openai-chat on the wire. No key exists on this path: nothing to rotate, nothing to leak.

default
default
dialect
openai-chat
tags
local · open-source

the models

1 pin

Aliases are what the file may write; the engine pins each one to an exact upstream id, so a run stays reproducible after a vendor rotates names.

  • defaultdefaultctx 128k · vision

in the released catalog

1 room

The wire models this provider serves in the released binary's catalog · each one is a room with its seats, exact prices and measured energy.

the whole register: /catalog/models · what the released binary knows, vendored at the engine pin.

in a real file

a complete workflow · shown whole
localai.nika.yaml
nika: v1workflow:  id: self-hosted-triage  description: "your own server, the familiar API shape — LocalAI on localhost:8080"tasks:  triage:    infer:      model: localai/default      max_tokens: 120      prompt: |        Three support lines arrive. Order them most urgent first:        payment page 500s, typo in footer, password reset loops.outputs:  order: ${{ tasks.triage.output }}

check-green against the released engine · 1 task · 1 wave · no closed ceiling: an unpriced model is unpriced, never free · the drift gate re-proves this copy on every test run · open it in the playground →

get set up

  1. 1Run the container docker run -p 8080:8080 --name local-ai -ti localai/localai:latest
  2. 2Pick models from its gallery. No key.

Pick it for when a team wants one local endpoint they administer together. Open source (MIT), community-led. Then prove the seat: nika doctor names every provider this binary can reach.

swap it

4 more local seats

Moving off LocalAI is editing one line. The rest of the file (tasks, permits, outputs, the trace) does not change. The register orders the catalog local first; beyond it the engine embeds 21 more OpenAI-compatible endpoints.

Try it in the playground, or install and go local first. Read the spec →