Serve
Point pi, opencode, or any OpenAI client at localhost:8420/v1.
Kiln serves, trains, and evaluates Qwen3.5-4B on one GPU. Turn agent traces and scoring signals into LoRA adapters, prove the change locally, and serve the winner through the same OpenAI-compatible endpoint.
A test fails after a small refactor. What do you do first?
Rewrite the module so the implementation is easier to reason about.
POST /v1/train/grpo
Run the failing test, isolate the regression, then patch the smallest surface.
Most inference servers stop after the response. Kiln keeps the entire improvement cycle beside the model—from captured work to an adapter you can measure, inspect, and serve.
Point pi, opencode, or any OpenAI client at localhost:8420/v1.
Collect OpenEnv episodes, agent traces, scores, and A/B judgments locally.
Run bounded SFT, GRPO, or OPD and publish a versioned LoRA adapter.
Compare adapters, inspect every example, and strictly replay seeded evals.
Every Kiln server ships a dashboard for live requests, adapters, training, evals, traces, and exact receipts. No separate control plane to install.
Streaming traces, token timing, tool calls, and serving-adapter identity.
Queue SFT, GRPO, and OPD jobs against the resident model.
Run suites, compare adapters, and turn A/B picks into training data.
Receipts bind model, data, runtime, adapter, and replay identity.
Serving-profile boundary: the default stable
profile serves traffic but rejects training and live adapter changes.
Use experimental for the interactive learning loop.
Read the profile contract.
Kiln is deliberately narrow: one model family, one GPU, and one complete path from inference to evidence-backed improvement.
The scheduler, paged KV cache, kernels, quantization, LoRA routes, and training memory plans are tuned for Qwen3.5-4B’s hybrid architecture.
A single executable owns inference, training, evals, adapter lifecycle, metrics, and the dashboard.
Exact receipts, immutable identities, typed configuration, and strict replay make “better” inspectable.
Use a test, regex, scorer, local judge, A/B pick, or teacher. Kiln accepts the result over HTTP.
Native CUDA, ROCm, Metal, and Vulkan builds cover Linux GPUs and Apple Silicon; CUDA also ships for Windows.
The latest server release publishes five provenance-attested archives: Linux CUDA, ROCm, and Vulkan; Apple Silicon Metal; and Windows CUDA. The macOS binary is signed and notarized. The full quickstart covers drivers, Docker, Desktop, and every backend.
# Resolve the current provenance-attested server release
KILN_VERSION=$(curl -fsSL https://api.github.com/repos/ericflo/kiln/releases/latest \
| sed -n 's/.*"tag_name": "kiln-v\([^"]*\)".*/\1/p')
curl -fsSLO "https://github.com/ericflo/kiln/releases/download/kiln-v${KILN_VERSION}/kiln-${KILN_VERSION}-x86_64-unknown-linux-gnu-cuda124.tar.gz"
tar xf "kiln-${KILN_VERSION}-x86_64-unknown-linux-gnu-cuda124.tar.gz"
# Serve Qwen3.5-4B
KILN_MODEL_PATH=./Qwen3.5-4B ./kiln serve
# Connect pi to the local OpenAI endpoint
./kiln pi-setup
Every number has a workload, command, source revision, and limitation. Every release artifact has a checksum and build-provenance attestation.
Qwen3.5-4B · seeded short diagnostic · 56 prompt / 9 generated tokens
Capability-led Vulkan. Production selection follows workload geometry and queried device limits—never a GPU name, vendor ID, PCI ID, or machine allowlist.
Start with one GPU, Qwen3.5-4B, and the scoring signal you already trust.