| name | wandler |
| description | Inference server powered by transformers.js. |
| metadata | {"author":"runpod"} |
wandler
npm install -g wandler or npx wandler --llm <org/repo:precision>
wandler --llm onnx-community/gemma-4-E4B-it-ONNX:q4
wandler --backend wandler --llm onnx-community/gemma-4-E4B-it-ONNX:q4 --device webgpu
wandler --backend transformersjs --llm onnx-community/gemma-4-E4B-it-ONNX:q4 --device webgpu
wandler --llm LiquidAI/LFM2.5-1.2B-Instruct-ONNX:fp16 --device cpu
wandler --llm onnx-community/Qwen3.5-0.8B-Text-ONNX:q4 --embedding Xenova/all-MiniLM-L6-v2:q8
wandler --llm onnx-community/gemma-4-E4B-it-ONNX:q4 --embedding Xenova/all-MiniLM-L6-v2:q8 --stt onnx-community/whisper-tiny:q4
wandler --llm LiquidAI/LFM2.5-1.2B-Instruct-ONNX:q4 --port 3000 --host 0.0.0.0 --api-key mysecret
wandler model ls
Server at http://127.0.0.1:8000.
API (OpenAI-compatible)
POST /v1/chat/completions — streaming + non-streaming
POST /v1/responses — streaming + non-streaming
POST /v1/completions
POST /v1/embeddings
POST /v1/audio/transcriptions
GET /v1/models
POST /tokenize
POST /detokenize
GET /admin/metrics
GET /health
Gotchas
- Use
WANDLER_LLM, not WANDLER_MODEL.
--backend wandler is the default optimized serving path; --backend transformersjs is the direct baseline for A/B testing.
--decode-loop auto uses the safe transformers.js generate() path. Use --decode-loop on only to opt into Wandler's experimental owned text decode loop.
- Prefix KV cache is process-local and bounded by
WANDLER_PREFIX_CACHE_ENTRIES; it helps repeated system/tool prefixes but is not true paged attention.
- Tool calls stream incrementally in Chat Completions and Responses; family-specific openers are buffered so partial tool-call markers do not leak as content.
stop sequences only match on the last token. Multi-token stops won't match exactly.