Config

Every config section and its main keys.

pie config init writes a commented config.toml with the sections below. Every key has a default value; delete a line to restore its default. Sizes and durations include units ("4GiB", "50ms"). pie config list prints every key supported by your installed binary along with its current value and description.

[server]

KeyDefaultMeaning
listen"127.0.0.1:8080"Bind address for HTTP and WebSocket connections.
verbosefalseLog every request.
worker_threadsCPU count (at most 64)Number of runtime worker threads.
max_upload"256MiB"Maximum upload size.

[model]

KeyDefaultMeaning
name"default"Model name exposed to clients.
source—Hugging Face ID of the imported model.
weight_dtypeFrom checkpointWeight dtype loaded from the .zt file.
device_memory_share0.90Fraction of free device memory Pie reserves.
device_kv_budgetRemaining shareDevice memory allocated to KV cache pages.
device_weight_budgetUncappedOptional cap on device memory used by weights.
host_kv_budget—Host RAM budget for evicted KV pages.
disk_kv_budget—Disk budget for evicted KV pages; "0B" disables disk offloading.
disk_kv_dirUnder $PIE_HOMEDirectory for the disk KV tier.
disk_kv_persistentfalseKeep disk-tier KV pages across server restarts.

[engine]

KeyMeaning
typecuda, metal, vulkan, wgpu, xla, or cerebras.
deviceList of devices, such as ["cuda:0", "cuda:1"].
activation_dtypeActivation compute dtype, usually "bfloat16".
tensor_parallel_sizeNumber of GPUs to shard each layer across (CUDA, ROCm).
expert_parallel_sizeNumber of GPUs to shard MoE experts across (CUDA, ROCm).
kv_page_sizeTokens per KV cache page; derived automatically when omitted.
max_model_lenMaximum sequence length; defaults to the model's limit.
max_state_slotsMaximum recurrent-state slots for hybrid models.
max_forward_tokens, max_forward_requestsPer-batch token and request limits (Metal, Vulkan, WebGPU, XLA).

Each backend also accepts backend-specific keys, such as pipeline_cache for Vulkan and WebGPU, backends and power_preference for WebGPU, or plugin for XLA. An unknown key produces an error naming the active backend.

[runtime]

KeyDefaultMeaning
submit_deadline"50ms"Maximum time a batch waits to fill before launching.
silence_timeout"30s"Inactivity timeout before a silent process is treated as stuck.
max_concurrent_processesFrom engineMaximum number of inferlets running at once.
worker_policy"noop"Active worker scheduling policy.

[sandbox]

KeyDefaultMeaning
allow_fsfalseAllow inferlets to access the scratch filesystem.
allow_networktrueAllow inferlets to access the network.
network_allowed_hosts["*"]Hosts reachable by inferlets when allow_network = true.
scratch_dir—Host directory mounted as scratch space for inferlets.
max_memory"4GiB"Memory limit per inferlet instance.
max_instances1000Maximum concurrent inferlet instances.

[cluster]

KeyMeaning
cluster_policiesActive cluster policies.
controllerController address for a distributed worker.
roleWorker role: "decode" or "prefill".
gatewaysGateway addresses this worker connects to.

[offload]

KeyMeaning
listenAddress where this worker accepts prefill work from peers.
peersPeer workers to send prefill work to.
poolspie-pool nodes used to store and fetch KV pages.
transfer"auto", or "nixl" to read peer pages over RDMA.
prefill_min_suffix_tokensMinimum uncached suffix length required before offloading prefill to a peer.

[telemetry]

KeyMeaning
endpointOTLP collector URL, such as "http://localhost:4317".
service_nameService name reported to the collector.