# Documentation
URL: https://viiwork.pulu.app/docs/
Updated: 2026-10-27

- [Setting up a machine](https://viiwork.pulu.app/docs/setup/): viiwork init turns a machine with GPUs and some GGUF model files into a running node. It asks a few questions and shows every file it will write. It…
- [Configuration](https://viiwork.pulu.app/docs/configuration/): One file per machine. viiwork --config /etc/viiwork/viiwork.yaml (the default path; on a Mac, ~/.config/viiwork/viiwork.yaml) is the only input — there…
- [macOS (Apple Silicon) nodes](https://viiwork.pulu.app/docs/macos/): A Mac is just another node. One native viiwork process runs llama-server through the ordinary llamacpp engine. On a Mac that engine uses Metal. The node…
- [Migrating to viiwork 2](https://viiwork.pulu.app/docs/migrating-to-v2/): viiwork 2 refuses a v1 viiwork.yaml at startup with v1 config: see docs/migrating-to-v2.md. This page is where that points: what changed, how several v1…
- [The Mesh](https://viiwork.pulu.app/docs/mesh/): Nodes form one mesh without peer lists. Switch a machine on and its models are usable from every node within seconds; switch it off and routing stops…
- [Models and Hardware](https://viiwork.pulu.app/docs/models/): What the reference fleet runs, what has been measured on it, and the hardware rules those measurements imply. Numbers here are measured throughput, not…
- [Operations](https://viiwork.pulu.app/docs/operations/): Running a fleet: the scripts, the acceptance checker and the MCP server.
- [Dashboards](https://viiwork.pulu.app/docs/dashboards/): Every page is served on port 8086 by every node, and needs no configuration.
- [Power, Cost and Energy](https://viiwork.pulu.app/docs/power-and-energy/): Three related features, in increasing order of what they need from the machine:
- [Security and the Trust Model](https://viiwork.pulu.app/docs/security/): viiwork authenticates nothing. Every API endpoint and every dashboard is open to any client that can reach the server. Reachability *is* the authorization…
- [Integrating the mesh API into another application](https://viiwork.pulu.app/docs/api-integration/): How to surface a viiwork fleet — models, live jobs, per-GPU load, and the prompt/output history — inside an application you already run, rather than…
- [Fleet autodiscovery](https://viiwork.pulu.app/docs/autodiscovery/): Point a coding client at any node and the fleet describes itself: which models it serves, and how large a prompt each one will actually take. No model…
- [Sizing a consumer's concurrency from the fleet](https://viiwork.pulu.app/docs/consuming-fleet-capacity/): How an application decides how many requests to have in flight against viiwork, using /v1/fleet/capacity instead of a number in its config.
- [Thinking Models](https://viiwork.pulu.app/docs/thinking-models/): Some models (e.g. Gemma 4, Qwen3, DeepSeek-R1) produce a reasoning phase before the final answer. The backend (llama-server) may return all output in…
- [Adding an Engine to viiwork](https://viiwork.pulu.app/docs/adding-an-engine/): viiwork supervises inference engines. This is how you add one.
- [Tensor-Split Mode for viiwork — Design Note](https://viiwork.pulu.app/docs/tensor-split-design/): Historical. This note records how tensor-split was designed and argued for in April 2026, against viiwork 1.x. The feature shipped and is now ordinary…
- [The viiwork energy store format (VIIWENG1)](https://viiwork.pulu.app/docs/energy-store-format/): This is the on-disk contract for github.com/janit/viiwork/energy. It is specified here rather than left to the Go source because the format has more than…
- [Releases](https://viiwork.pulu.app/docs/releases/): Every v* tag on the public repository gets release archives for linux/amd64, linux/arm64 and darwin/arm64:
