Install Veizik, run a supported model, serve a local endpoint, and inspect performance on your hardware.
Quickstart
From nothing to a first run
NVIDIA and Apple Silicon install differently.
One engine, two ways in. On NVIDIA, one veizik command installs each model engine by name. On Apple Silicon, nothing changes: the same signed disk image and the same commands.
NVIDIA · CUDAAvailable now
Linux on x86-64 · one veizik command, model engines installed by name
One veizik command, model engines installed by name.
Get the veizik command for Linux x86-64 once: curl -fsSL https://veizik.com/install.sh | sh.
veizik install takes a short name or a model key and installs the package that carries it: qwen, qwen35, qwen36 or a Qwen model key such as qwen35_2b; wan, wan21, wan22 or a Wan model key such as wan21_t2v_1_3b (any case; qwen3.6 and wan2.2 work too). It downloads the package from its public GitHub release, refuses it unless its SHA-256 matches the published release, and unpacks it under ~/.local/state/veizik/engines/. veizik list shows what is available and installed; veizik uninstall (or veizik rm) removes a package.
Qwen, for language: veizik activate, then veizik run qwen35_2b "…", veizik chat and veizik serve (each needs veizik activate once per device, and the model's weights to generate); veizik run qwen36_35b_a3b "…" --image FILE (or --video DIR) also reads an image or a short video.
Wan, for video: veizik activate once per device, then veizik run wan22_t2v_a14b "…" --out ./clip, or veizik serve wan22_t2v_a14b --port 8000 for a render API on 127.0.0.1 (POST /v1/videos/generations). veizik pull wan22 downloads the model's weights and prepares the video decoder automatically; then render.
No CUDA toolkit and no Python: the NVIDIA driver is all the GPU side needs.
How the NVIDIA release installs
One veizik command; each model engine is installed by name.
bash · Linux x86-64
# the veizik command for Linux x86-64$curl-fsSLhttps://veizik.com/install.sh| sh# if the installer asks you to put ~/.local/bin on your PATH$exportPATH="$HOME/.local/bin:$PATH"$veiziklist# Qwen (language): install by qwen, qwen35, qwen36 or a full model key (qwen35_0p8b, qwen35_2b, qwen35_4b, qwen35_9b, qwen36_35b_a3b)$veizikinstallqwen36# activation needs no weights; point VZ_WEIGHTS at the checkpoint you downloaded, for veizik run$exportVZ_WEIGHTS=/data/models$veizikactivate$veizikrunqwen36_35b_a3b"The capital of France is"--tokens 32$veizikchatqwen35_2b$veizikserveqwen35_2b--weights /data/models/Qwen3.5-2B--port 8000# Wan (video): install by wan, wan21, wan22 or a full model key (wan21_t2v_1_3b, wan21_t2v_14b, wan22_t2v_a14b, wan22_i2v_a14b)$veizikinstallwan22$veizikactivate#onceperdevice;fortheWanpackagetoo$veizikpullwan22#fetchestheWanweightsandpreparesthevideodecoder$veizikrunwan22_t2v_a14b"<your prompt>"--out ./clip$veizikservewan22_t2v_a14b--port 8000#renderAPI:POST/v1/videos/generations
Apple Silicon · MetalAvailable now
macOS 13 or later on M1 or newer · signed disk image
Veizik for Apple Silicon, as it ships today
One signed, notarised disk image (DMG) from the GitHub release. Run install.sh from the volume it opens.
Models are fetched by name with veizik pull; there are no engine packages to add.
Same image, same commands as before. Nothing about the Apple build changes.
Apple Silicon, step by step. The Veizik build for Apple Silicon installs from its signed disk image, exactly as before. NVIDIA installs with one veizik command, model engines by name, above.
1
Install
on your machine
One signed package. One command in a shell, and it is ready.
./install.sh
2
Create an account
needs the network
An email link, Google or GitHub. Self-service, nobody in the loop.
veizik.com/signin
3
Activate this device
needs the network
The command opens your browser — and prints the link too, in case it cannot. You approve there, and the machine receives a licence bound to it.
veizik activate
4
Pull a checkpoint
needs the network
One command downloads a supported safetensors checkpoint into the local cache and makes it ready to run. A gated repository needs a token stored with veizik hf login; the licence is accepted at the publisher.
veizik pull
5
Run
on your machine
Generation happens on the device. Your prompt, the weights and the output stay on the machine; the first run of a session leases the licence key into memory, and for the window the server sets — 48 hours as of 2026-10-02 — the runs that reuse it need no connection. Restarting the computer ends the window.
veizik run
3 of the 5 steps reach the network. Generation is not one of them.
zsh · Apple Silicon
# 1 · get the build — signed package, published with its digest# account: veizik.com/signin (free, one click)# build: github.com/veizikhq/veizik-metal/releases# 2 · verify and install — shell only, nothing compiled$shasum-a 256-c SHA256SUMS$./install.sh# 3 · put this machine on your account$veizikactivate# 4 · fetch a supported checkpoint, then run$veizikpullqwen2.5-7b$veizikrunqwen2.5-7b"The capital of France is"
Paris
Step 1 is two things and both are instant. The signed package is published with its
SHA-256, and the account is self-service — an email link, Google or GitHub —
with a device activated from your own account page and nobody in the loop.
What that means today is spelled out below.
The installer takes one argument — where to install — and defaults to
~/Applications/Veizik: the engine, the model cores and the signed
core-id table go there, and a small launcher is written to
~/.local/bin/veizik that pins that location. To install somewhere
else, pass it: ./install.sh ~/somewhere/veizik. That is also how
you install a second copy without touching the first.
The launcher pins the install root, so setting an
environment variable will not move it — pass the path to the installer instead.
Everything it needs is in the package: nothing is compiled on your machine and no system file is touched. To uninstall, delete those two paths and the three the CLI creates as you use it: ~/Library/Application Support/Veizik (this machine’s activation and settings), ~/Library/Caches/Veizik (the download cache) and ~/veizik-out (working files from run, chat and serve).
Access
Getting the build
veizik.access · NVIDIA
EXPERIMENTAL. Install it with the veizik command: `veizik install qwen36` (or qwen, qwen35, or a model key) downloads this package — a single signed .vzpack, plus the shared core .vzroot the first time — from its GitHub release and refuses it unless it matches the SHA-256 printed here. Then run `veizik activate` once per device: approve the printed address and code in any browser, or activate without a browser with a key and CLI password from your account page. One device activation enables the whole bundle; the key to run the sealed GPU code arrives only through device-bound activation.
EXPERIMENTAL. Download the signed disk image from the release page and check it against the SHA-256 printed here. Open it, run install.sh from the volume that just opened, then activate the device from your account. If you are upgrading from 2026.10.01 or 2026.10.02, the device you already approved stays approved and you do not need to activate it again.
No form, no e-mail, nobody in the loop. The machine asks,
you approve it from a browser you are already signed in to, and the two are linked.
in a browserCreate an accountan e-mail link, Google or GitHubveizik.com/signin
on the machineveizik activatethe machine you want to useit opens your browser, and prints the link too
back in the browserApprove that codewhile signed in as youveizik.com/activate
automaticThe machine receives its licenceand is listed on your account
All four steps work. The machine
signs a challenge the server chose, so approving a code does not hand a licence to whoever is
holding it — only to the machine that started the request.
The code is short because you type
it. That is also why the page will not tell you whether a code you did not create exists —
unknown, expired, already used and refused are one answer on purpose.
Browser-free activation — a
build agent, a server, a fleet — is in the command (--key,
--email), but the account service does not issue enrolment keys yet,
so every device is activated through a browser today. When keys are issued, they come from your
account page and nowhere else.
Run a model
Generate, chat, or serve
Task
Command
Generate once and exit
veizik run <model> "<prompt>" [--tokens N] [--ignore-eos]
Every command takes the model identifier that veizik list and the catalogue show: qwen2.5-0.5b, qwen2.5-1.5b, qwen2.5-7b, qwen2.5-0.5b-instruct, qwen2.5-1.5b-instruct, qwen2.5-7b-instruct, qwen3-1.7b, qwen3-1.7b-base. (veizik list is the full catalogue; veizik models lists only what you have installed.) The identifier says which checkpoint and which family you ran.
To time a run the way our published figures were timed, and to set up the engine we compared against, follow Reproduce our benchmarks.
NVIDIA · CUDA
One command set on every engine.
Every model engine answers the same commands. What differs is the set of run options an engine accepts and the shape of its local server. A run option an engine does not accept is refused with a message that names it (<flag> does not apply to this model.), never silently ignored. veizik <command> --help gives the detail for one command.
Use a model
Command
What it does
veizik run <model> "<prompt>" [tokens]
Generate once and exit.
veizik chat <model> [tokens]
Interactive session.
veizik serve [<model>] [--port N]
Answer over HTTP, on this machine. Leave the model out to serve every installed model.
veizik ps
List the resident servers running here.
veizik stop <port> | all
Stop a resident server.
Get and manage models
Command
What it does
veizik models
List what is installed here.
veizik list
Model engines: installed and available.
veizik install <model>
Download and install a model engine.
veizik uninstall <model> / rm <model>
Remove an installed model engine.
veizik pull <model>[@<revision>]
Fetch model weights and make them ready.
veizik hf login | logout | status
Hugging Face token for gated models.
veizik remove <model>[@<revision>]
Delete cached weights.
veizik inspect <model>
Show what a model is.
Look after the installation
Command
What it does
veizik bench <model>
Measure this machine.
veizik cache info | clean
Inspect or tidy the download cache.
veizik config show | set | unset
See and change settings.
veizik completion zsh | bash | fish
Emit a shell completion script.
veizik status
Show this device's activation and plan.
veizik activate
Register this device and get its plan. It opens your browser to approve the machine, and one approval covers all models.
veizik devices [enable|disable <tag>]
See and switch the devices on your licence.
veizik device-id
Print this machine's device id, as the device list on your account shows it.
veizik doctor
Check this installation.
veizik version
Show the version and backend.
veizik update and veizik convert are in the command list but do not do their work in this release: update has no catalogue refresh and convert has no converter.
Run options: one vocabulary, translated per engine.
Write one set of options. The command passes on only the ones the engine accepts and refuses the rest.
Every run takes --out DIR, --name NAME, --prompt-file FILE, --resume, --resume-from REF and --checkpoint-every N. --resume-from REF resumes that run's directory: REF is a --name or an absolute directory, and its saved state is reloaded. Bare --resume continues the render in the directory the command resolves to, so repeat the run with the same --out/--name (or neither, for the default folder) and the same prompt. Resume finishes that same render — same prompt, seed and settings — it does not re-prompt it; to change the prompt, start a new render.
--tokens (or --max-tokens) sets the generation length; --ignore-eos emits exactly that many tokens. Greedy decoding is the default; sampling (--seed, --temperature, --top-p, --top-k) is opt-in. Output goes to gen.txt in the --out folder.
Frames are written as PNG files to DIR/frames/. LoRA adapters are not part of this release, so --lora and --lora-scale are not documented as working.
Serve: the API each engine answers.
Engine
Local server
Qwen
An OpenAI-compatible HTTP server: POST /v1/chat/completions, POST /v1/completions, GET /v1/models, and health and metrics endpoints. It listens on 127.0.0.1 only; turn on an API key with --require-auth --keyfile FILE.
Wan
A render API: POST /v1/videos/generations with {"prompt": "…", "seed": 42} renders and answers with the folder of PNG frames; /health and /v1/models answer too.
veizik run, chat and serve generate only after veizik activate (browser approval, once per device) and with the model's weights present (--weights DIR, VZ_WEIGHTS, or the pull cache). Output from these commands has not been certified end to end yet.
veizik pull wan22 downloads the Wan weights (Apache-2.0) and prepares the video decoder automatically — no manual VAE setup or support request.
Models and checkpoints
Where the weights come from
Veizik reads supported safetensors checkpoints as published. veizik pull <model> downloads one from Hugging Face into the local cache — a gated repository needs a token stored with veizik hf login — and the engine writes nothing back to the checkpoint.
veizik inspect <model> reports what a model is, the context it supports, where it is installed, and whether this machine can run it. veizik convert <path> reports whether a checkpoint is supported; in this build it writes no converted file, and none is required.
CLI reference
The commands documented here
This build also ships commands for running a shared
server for other people. They are not documented here yet. veizik help
on the installed build prints every command it has.
Command
Form
Behaviour
run
run <model> "<prompt>" [--tokens N] [--ignore-eos]
Generate once and exit. `--tokens N` sets the generation budget and may be placed anywhere; an unknown flag is refused rather than read as the prompt. With `--ignore-eos` the model is not allowed to stop early, so the run produces exactly the number of tokens asked for; `--tokens N` counts the first token, which comes from reading the prompt, so N-1 are decoded.
Answer over HTTP, on this machine only. It binds the loopback address; --host is accepted for compatibility and any other address is refused. Name a model to serve just that one, or leave it out and it hosts every installed model that carries a serve core — one resident core each — routing each request by its "model" field; /v1/models lists what it is hosting, and a model whose core does not answer is skipped with a line saying so. Sampler fields such as temperature, top_p, seed and stop are passed to the engine, which answers them or names the one it will not take. Streaming needs the resident core: it is refused when tools is in the same request, and refused on the per-request path. --require-auth demands an API key; --usage-log writes a usage record per request; the --quota-policy / --quota-dir / --quota-tenants trio applies per-tenant limits.
ps
ps
List the servers running on this machine. It says so plainly when none is.
stop
stop <port> | all
Stop a server on that port, or all of them.
models
models
List installed models with their catalogue status and disk state.
pull
pull <model>[@<revision>] [--profile P]
Download a model into the local cache and make it ready to run. Checkpoints come from Hugging Face; a gated repository needs a token stored with veizik hf login, and the licence is accepted at the publisher, not here.
hf
hf login | logout | status
Store, remove or report the Hugging Face token used for gated models. The token is read from standard input and kept in Hugging Face’s own file, not in a Veizik directory.
remove
remove <model>[@<revision>]
Delete it from the Veizik cache.
convert
convert <source> [-o <file>]
Report whether a checkpoint is supported. Writes no file in this build.
inspect
inspect <model>
Show model, status, context, geometry, location, and whether it is runnable.
Register this device. With no options it opens your browser so you can approve the machine from your account, and prints the link as well in case it cannot. One activation per device — not per model. An already-approved device is never sent to the browser again: a new release or an expiring lease is renewed silently with this Mac's Secure Enclave key, and `--refresh` does only that (it never opens a browser, and fails if this Mac is not approved or was disabled from your account).
For a machine with no browser — a server over SSH, a build agent — create an enrolment key and set a CLI password on your account page, then give the key with `--key KEY` (or `-k`). `--key -` reads VEIZIK_ACTIVATION_KEY and `--key file:PATH` reads the first line of PATH. The password comes from `--password-stdin` (recommended), `--password-file PATH`, or, if you give none of these, a prompt. `--password PW` passes it on the command line, where `ps` and your shell history can see it — the command warns, and your account is e-mailed to say the password should be changed. `--no-password` is for a key issued without one. `--email ADDR` uses your account address and CLI password instead of a key, if you turned that on for your account; it may e-mail you a six-digit code, which `--code CODE` supplies when you already have it.
deactivate
deactivate [--forget]
Release THIS device from your account — its licence slot is freed — and delete the lease stored on it. `--forget` also deletes this machine's device key, which is what you want for a pod or VM you are about to discard. It can only release the machine it runs on. To turn off a device you no longer have, use your account page: a stolen machine must not be able to cut off the ones you still hold.
devices
devices [disable | enable]
List the devices on this licence, or switch THIS machine off and on again: `devices disable` hands it back and frees its licence slot, `devices enable` lets it run again. It takes no device name — it can only switch the machine it runs on. To turn off a device you no longer have, a lost laptop, sign in on the website; the same list is on your account page, and that is also the only place a device can be revoked outright. A stolen machine must not be able to cut off the ones you still hold, which is why this command cannot name another one.
doctor
doctor
Check backend, catalogue, and installation integrity.
version
version
Show version and backend.
help
help
Prints every command the installed build has, with a usage line for each. It is the authority on what your copy can do: this page documents a subset, and `veizik help` is how you see the rest.
Every command here is one the release binary has — the list is compared against the binary before a release goes out — and veizik help lists the few it has that this page does not document. Where a command can be run without changing anything, what it does was checked as well; the ones that generate, download, install or delete are described from the binary, not from a run.
Exit codes
Scriptable and fixed
Code
Meaning
0
Success.
2
Usage error — no arguments, unknown command, missing prompt.
4
Model not found or not resolvable.
5
Integrity check failed. Nothing runs.
6
No supported device or runtime on this machine.
Offline behaviour and privacy
What leaves the machine
A licence check, not your data
What the engine sends our way is a licence check for the model you are running. Your prompt, the weights and what comes back never leave the machine. The lease lives in memory for a short window, so repeat runs inside it reach the network not at all. veizik status reads the licence already on the device and answers without a connection.
No writes
No converted artifact, no weight cache, no temporary model files.
Clean uninstall
Delete the two install paths. No system files, daemons, or drivers.
Troubleshooting
Common results
Symptom
Cause and fix
veizik doctor reports no backend
The installation is not where the binary expects it. Set VEIZIK_ROOT, or reinstall.
Exit code 4 on a model name
The name is not in veizik list. Use the short name from that catalogue.
The run stops at the context limit
Prompt and generation together exceed the model's limit, which is listed per model in the catalogue.
No checkpoint found
Run veizik pull <model> first, then run again.
Release-specific limitations are listed with each release.