LLAMA-SERVER(1)

๐Ÿ“ฆ
version 10438 ยท 2 versions
, in ubuntu stonking

๐Ÿ’… LLAMA-SERVER(1) ๐Ÿ’…

okay so hi bestie!! ๐Ÿ’– this is llama-server, and it lives in the User Commands manual โ€” that's section 1, if you're keeping score, and you should be, because you're that girl. grab a strawberry ๐Ÿ“, get comfy, and let's go through every single flag together. no skipping. we don't skip here.


โœจ NAME โœจ

llama-server โ€” llama-server.

that's it. that's the name. short, sweet, iconic, she ate ๐Ÿ‘‘


๐ŸŽ€ DESCRIPTION ๐ŸŽ€

----- common params -----

the shared ones. the group-chat classics. ๐Ÿ’ฌ

  • -h, --help, --usage โ€” prints the usage and then dips immediately. exit, stage left ๐Ÿ‘‹
  • --version โ€” shows you the version and build info โญ
  • -cl, --cache-list โ€” shows the list of models chillin' in your cache ๐Ÿงš
  • --completion-bash โ€” prints a source-able bash completion script for llama.cpp. not her making your shell smarter ๐Ÿ’…
  • -t, --threads N โ€” how many CPU threads to use during generation (default: <num_cpus>). env: LLAMA_ARG_THREADS ๐Ÿ”ฅ
  • -tb, --threads-batch N โ€” how many threads to use during batch and prompt processing (default: same as --threads)
  • -C, --cpu-mask M โ€” CPU affinity mask: an arbitrarily long hex. complements cpu-range (default: "")
  • -Cr, --cpu-range lo-hi โ€” a range of CPUs for affinity. complements --cpu-mask
  • --cpu-strict <0|1> โ€” use strict CPU placement (default: 0)
  • --prio N โ€” set the process/thread priority: low(-1), normal(0), medium(1), high(2), realtime(3) (default: 0)
  • --poll <0...100> โ€” use this polling level to wait for work (0 - no polling, default: 50)
  • -Cb, --cpu-mask-batch M โ€” CPU affinity mask: arbitrarily long hex. complements cpu-range-batch (default: same as --cpu-mask)
  • -Crb, --cpu-range-batch lo-hi โ€” ranges of CPUs for affinity. complements --cpu-mask-batch
  • --cpu-strict-batch <0|1> โ€” use strict CPU placement (default: same as --cpu-strict)
  • --prio-batch N โ€” set the process/thread priority: 0-normal, 1-medium, 2-high, 3-realtime (default: 0)
  • --poll-batch <0|1> โ€” use polling to wait for work (default: same as --poll)
  • -c, --ctx-size N โ€” the size of the prompt context (default: 0, and 0 = loaded from model). env: LLAMA_ARG_CTX_SIZE ๐ŸŒˆ
  • -n, --predict, --n-predict N โ€” how many tokens to predict (default: -1, and -1 = infinity โ™พ๏ธ). env: LLAMA_ARG_N_PREDICT
  • -b, --batch-size N โ€” logical maximum batch size (default: 2048). env: LLAMA_ARG_BATCH
  • -ub, --ubatch-size N โ€” physical maximum batch size (default: 512). env: LLAMA_ARG_UBATCH
  • --keep N โ€” how many tokens to keep from the initial prompt (default: 0, -1 = all)
  • --swa-full โ€” use the full-size SWA cache (default: false). there's more info at https://github.com/ggml-org/llama.cpp/pull/13194#issuecomment-2868343055 if you're nosy ๐Ÿ‘€ env: LLAMA_ARG_SWA_FULL
  • -fa, --flash-attn [on|off|auto] โ€” set Flash Attention use ('on', 'off', or 'auto', default: 'auto'). env: LLAMA_ARG_FLASH_ATTN โšก
  • --perf, --no-perf โ€” whether to enable internal libllama performance timings (default: false). env: LLAMA_ARG_PERF
  • -e, --escape, --no-escape โ€” whether to process escapes sequences (\n, \r, \t, \', \", \\) (default: true)
  • --rope-scaling {none,linear,yarn} โ€” RoPE frequency scaling method, defaults to linear unless the model says otherwise. env: LLAMA_ARG_ROPE_SCALING_TYPE
  • --rope-scale N โ€” RoPE context scaling factor, expands context by a factor of N. env: LLAMA_ARG_ROPE_SCALE
  • --rope-freq-base N โ€” RoPE base frequency, the one NTK-aware scaling uses (default: loaded from model). env: LLAMA_ARG_ROPE_FREQ_BASE
  • --rope-freq-scale N โ€” RoPE frequency scaling factor, expands context by a factor of 1/N. env: LLAMA_ARG_ROPE_FREQ_SCALE
  • --yarn-orig-ctx N โ€” YaRN: original context size of model (default: 0 = model training context size). env: LLAMA_ARG_YARN_ORIG_CTX
  • --yarn-ext-factor N โ€” YaRN: extrapolation mix factor (default: -1.00, 0.0 = full interpolation). env: LLAMA_ARG_YARN_EXT_FACTOR
  • --yarn-attn-factor N โ€” YaRN: scale sqrt(t) or attention magnitude (default: -1.00). env: LLAMA_ARG_YARN_ATTN_FACTOR
  • --yarn-beta-slow N โ€” YaRN: high correction dim or alpha (default: -1.00). env: LLAMA_ARG_YARN_BETA_SLOW
  • --yarn-beta-fast N โ€” YaRN: low correction dim or beta (default: -1.00). env: LLAMA_ARG_YARN_BETA_FAST
  • -kvo, --kv-offload, -nkvo, --no-kv-offload โ€” whether to enable KV cache offloading (default: enabled). env: LLAMA_ARG_KV_OFFLOAD
  • --repack, -nr, --no-repack โ€” whether to enable weight repacking (default: enabled). env: LLAMA_ARG_REPACK
  • --no-host โ€” bypass the host buffer, allowing extra buffers to be used. env: LLAMA_ARG_NO_HOST
  • -ctk, --cache-type-k TYPE โ€” KV cache data type for K. allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16). env: LLAMA_ARG_CACHE_TYPE_K
  • -ctv, --cache-type-v TYPE โ€” KV cache data type for V. allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16). env: LLAMA_ARG_CACHE_TYPE_V
  • -dt, --defrag-thold N โ€” KV cache defragmentation threshold (DEPRECATED โš ๏ธ). env: LLAMA_ARG_DEFRAG_THOLD
  • --mlock โ€” DEPRECATED in favor of --load-mode: force the system to keep the model in RAM rather than swapping or compressing it. env: LLAMA_ARG_MLOCK
  • --mmap, --no-mmap โ€” DEPRECATED in favor of --load-mode: whether to memory-map the model. (if mmap is disabled, loads are slower but it may reduce pageouts if you're not using mlock). env: LLAMA_ARG_MMAP
  • -dio, --direct-io, -ndio, --no-direct-io โ€” DEPRECATED in favor of --load-mode: use DirectIO if it's available. env: LLAMA_ARG_DIO
  • -lm, --load-mode MODE โ€” model loading mode (default: auto). the modes are:
    • auto: mmap, unless a device doesn't support it
    • none: no special loading mode
    • mmap: memory-map the model (if mmap is disabled, slower load but may reduce pageouts if not using mlock)
    • mlock: force the system to keep the model in RAM rather than swapping or compressing
    • mmap+mlock: mmap + force the system to keep the model in RAM rather than swapping or compressing
    • dio: use DirectIO if available

env: LLAMA_ARG_LOAD_MODE

  • --numa TYPE โ€” attempt optimizations that help on some NUMA systems:
    • distribute: spread execution evenly over all nodes
    • isolate: only spawn threads on CPUs on the node that execution started on
    • numactl: use the CPU map provided by numactl

if you ran without this previously, it's recommended that you drop the system page cache before using this. see https://github.com/ggml-org/llama.cpp/issues/1437. env: LLAMA_ARG_NUMA

  • -dev, --device <dev1,dev2,..> โ€” comma-separated list of devices to use for offloading (none = don't offload). use --list-devices to see a list of the available devices. env: LLAMA_ARG_DEVICE
  • --list-devices โ€” print the list of available devices and exit ๐Ÿ“‹
  • -ot, --override-tensor <tensor name pattern>=<buffer type>,... โ€” override tensor buffer type. env: LLAMA_ARG_OVERRIDE_TENSOR
  • -cmoe, --cpu-moe โ€” keep all Mixture of Experts (MoE) weights in the CPU. env: LLAMA_ARG_CPU_MOE
  • -ncmoe, --n-cpu-moe N โ€” keep the Mixture of Experts (MoE) weights of the first N layers in the CPU. env: LLAMA_ARG_N_CPU_MOE
  • -ngl, --gpu-layers, --n-gpu-layers N โ€” max. number of layers to store in VRAM, either an exact number, 'auto', or 'all' (default: auto). env: LLAMA_ARG_N_GPU_LAYERS
  • -sm, --split-mode {none,layer,row,tensor} โ€” how to split the model across multiple GPUs, one of:
    • none: use one GPU only
    • layer (default): split layers and KV across GPUs (pipelined)
    • row: split weight across GPUs by rows (parallelized)
    • tensor: split weights and KV across GPUs (parallelized, EXPERIMENTAL โš ๏ธ)

env: LLAMA_ARG_SPLIT_MODE

  • -ts, --tensor-split N0,N1,N2,... โ€” fraction of the model to offload to each GPU, a comma-separated list of proportions, e.g. 3,1. env: LLAMA_ARG_TENSOR_SPLIT
  • -mg, --main-gpu INDEX โ€” the GPU to use for the model (with split-mode = none), or for intermediate results and KV (with split-mode = row) (default: 0). env: LLAMA_ARG_MAIN_GPU
  • -fit, --fit [on|off] โ€” whether to adjust unset arguments so they fit in device memory ('on' or 'off', default: 'on'). env: LLAMA_ARG_FIT
  • -fitt, --fit-target MiB0,MiB1,MiB2,... โ€” target margin per device for --fit, a comma-separated list of values; a single value gets broadcast across all devices, default: 1024. env: LLAMA_ARG_FIT_TARGET
  • -fitc, --fit-ctx N โ€” minimum ctx size that can be set by the --fit option, default: 4096. env: LLAMA_ARG_FIT_CTX
  • --check-tensors โ€” check the model tensor data for invalid values (default: false) ๐Ÿ”
  • --override-kv KEY=TYPE:VALUE,... โ€” an advanced option to override model metadata by key. to specify multiple overrides, either use comma-separated values. types: int, float, bool, str. example: --override-kv tokenizer.ggml.add_bos_token=bool:false,tokenizer.ggml.add_eos_token=bool:false
  • --op-offload, --no-op-offload โ€” whether to offload host tensor operations to the device (default: true)
  • --lora FNAME โ€” path to a LoRA adapter (use comma-separated values to load multiple adapters) ๐ŸŽ€
  • --lora-scaled FNAME:SCALE,... โ€” path to a LoRA adapter with user defined scaling (format: FNAME:SCALE,...). note: use comma-separated values
  • --control-vector FNAME โ€” add a control vector. note: use comma-separated values to add multiple control vectors
  • --control-vector-scaled FNAME:SCALE,... โ€” add a control vector with user defined scaling SCALE. note: use comma-separated values (format: FNAME:SCALE,...)
  • --control-vector-layer-range START END โ€” layer range to apply the control vector(s) to, start and end inclusive
  • -m, --model FNAME โ€” the model path to load. env: LLAMA_ARG_MODEL ๐Ÿ‘‘
  • -mu, --model-url MODEL_URL โ€” model download url (default: unused). env: LLAMA_ARG_MODEL_URL
  • -dr, --docker-repo [<repo>/]<model>[:quant] โ€” Docker Hub model repository. repo is optional and defaults to ai/. quant is optional and defaults to :latest. example: gemma3 (default: unused). env: LLAMA_ARG_DOCKER_REPO ๐Ÿณ
  • -hf, -hfr, --hf-repo <user>/<model>[:quant]

Hugging Face model repository; quant is optional, case-insensitive, default to Q4_K_M, or falls back to the first file in the repo if Q4_K_M doesn't exist. mmproj is also downloaded automatically if available. to disable, add --no-mmproj example: ggml-org/GLM-4.7-Flash-GGUF:Q4_K_M (default: unused) (env: LLAMA_ARG_HF_REPO) ๐Ÿ’…

  • -hff, --hf-file FILE โ€” Hugging Face model file. If specified, it will override the quant in --hf-repo (default: unused) (env: LLAMA_ARG_HF_FILE) โœจ
  • -hft, --hf-token TOKEN โ€” Hugging Face access token (default: value from HF_TOKEN environment variable) (env: HF_TOKEN) ๐Ÿ”‘
  • --log-disable โ€” Log disable ๐Ÿšซ
  • --log-file FNAME โ€” Log to file (env: LLAMA_ARG_LOG_FILE) ๐Ÿ“
  • --log-colors [on|off|auto] โ€” Set colored logging ('on', 'off', or 'auto', default: 'auto'). 'auto' enables colors when output is to a terminal (env: LLAMA_ARG_LOG_COLORS) ๐ŸŒˆ
  • -v, --verbose, --log-verbose โ€” Set verbosity level to infinity (i.e. log all messages, useful for debugging) ๐Ÿ—ฃ๏ธ
  • --offline โ€” Offline mode: forces use of cache, prevents network access (env: LLAMA_ARG_OFFLINE) โœˆ๏ธ
  • -lv, --verbosity, --log-verbosity N โ€” Set the verbosity threshold. Messages with a higher verbosity will be ignored. Values:
    • 0: generic output
    • 1: error
    • 2: warning
    • 3: info
    • 4: trace (more info)
    • 5: debug

(default: 3) (env: LLAMA_ARG_LOG_VERBOSITY)

  • --log-prefix, --no-log-prefix โ€” Enable prefix in log messages (env: LLAMA_ARG_LOG_PREFIX) ๐Ÿท๏ธ
  • --log-timestamps, --no-log-timestamps โ€” Enable timestamps in log messages (env: LLAMA_ARG_LOG_TIMESTAMPS) โฐ
  • --spec-draft-type-k, -ctkd, --cache-type-k-draft TYPE โ€” KV cache data type for K for the draft model, allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16) (env: LLAMA_ARG_SPEC_DRAFT_CACHE_TYPE_K) ๐ŸงŠ
  • --spec-draft-type-v, -ctvd, --cache-type-v-draft TYPE โ€” KV cache data type for V for the draft model, allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16) (env: LLAMA_ARG_SPEC_DRAFT_CACHE_TYPE_V) ๐ŸงŠ

๐ŸŽ€ sampling params ๐ŸŽ€

okay bestie this is where the flavor lives, this is the seasoning section fr fr ๐Ÿ“

  • --samplers SAMPLERS โ€” samplers that will be used for generation in the order, separated by ; (default: penalties;dry;top_n_sigma;top_k;typ_p;top_p;min_p;xtc;temperature) ๐ŸŽ›๏ธ
  • -s, --seed SEED โ€” RNG seed (default: -1, use random seed for -1) ๐ŸŽฒ
  • --sampler-seq, --sampling-seq SEQUENCE โ€” simplified sequence for samplers that will be used (default: edskypmxt) โœจ
  • --ignore-eos โ€” ignore end of stream token and continue generating (implies --logit-bias EOS-inf) ๐Ÿ™ˆ
  • --temp, --temperature N โ€” temperature (default: 0.80) ๐ŸŒก๏ธ
  • --top-k N โ€” top-k sampling (default: 40, 0 = disabled) (env: LLAMA_ARG_TOP_K)
  • --top-p N โ€” top-p sampling (default: 0.95, 1.0 = disabled)
  • --min-p N โ€” min-p sampling (default: 0.05, 0.0 = disabled)
  • --top-nsigma, --top-n-sigma N โ€” top-n-sigma sampling (default: -1.00, -1.0 = disabled)
  • --xtc-probability N โ€” xtc probability (default: 0.00, 0.0 = disabled)
  • --xtc-threshold N โ€” xtc threshold (default: 0.10, 1.0 = disabled)
  • --typical, --typical-p N โ€” locally typical sampling, parameter p (default: 1.00, 1.0 = disabled)
  • --repeat-last-n N โ€” last n tokens to consider for penalize (default: 64, 0 = disabled)
  • --repeat-penalty N โ€” penalize repeat sequence of tokens (default: 1.00, 1.0 = disabled)
  • --presence-penalty N โ€” repeat alpha presence penalty (default: 0.00, 0.0 = disabled)
  • --frequency-penalty N โ€” repeat alpha frequency penalty (default: 0.00, 0.0 = disabled)
  • --dry-multiplier N โ€” set DRY sampling multiplier (default: 0.00, 0.0 = disabled)
  • --dry-base N โ€” set DRY sampling base value (default: 1.75)
  • --dry-allowed-length N โ€” set allowed length for DRY sampling (default: 2)
  • --dry-penalty-last-n N โ€” set DRY penalty for the last n tokens (default: 64, 0 = disable)
  • --dry-sequence-breaker STRING โ€” add sequence breaker for DRY sampling, clearing out default breakers ('\n', ':', '"', '*') in the process; use "none" to not use any sequence breakers โœ‚๏ธ
  • --adaptive-target N โ€” adaptive-p: select tokens near this probability (valid range 0.0 to 1.0; negative = disabled) (default: -1.00) [(more info)](https://github.com/ggml-org/llama.cpp/pull/17927) โ€” more info lives at https://github.com/ggml-org/llama.cpp/pull/17927 ๐Ÿซถ
  • --adaptive-decay N โ€” adaptive-p: decay rate for target adaptation over time. lower values are more reactive, higher values are more stable. (valid range 0.0 to 0.99) (default: 0.90)
  • --dynatemp-range N โ€” dynamic temperature range (default: 0.00, 0.0 = disabled)
  • --dynatemp-exp N โ€” dynamic temperature exponent (default: 1.00)
  • --mirostat N โ€” use Mirostat sampling. Top K, Nucleus and Locally Typical samplers are ignored if used. (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)
  • --mirostat-lr N โ€” Mirostat learning rate, parameter eta (default: 0.10)
  • --mirostat-ent N โ€” Mirostat target entropy, parameter tau (default: 5.00)
  • -l, --logit-bias TOKEN_ID(+/-)BIAS โ€” modifies the likelihood of token appearing in the completion, i.e. --logit-bias 15043+1 to increase likelihood of token ' Hello', or --logit-bias 15043-1 to decrease likelihood of token ' Hello' โš–๏ธ
  • --grammar GRAMMAR โ€” BNF-like grammar to constrain generations (see samples in grammars/ dir) ๐Ÿ“š
  • --grammar-file FNAME โ€” file to read grammar from ๐Ÿ“„
  • -j, --json-schema SCHEMA โ€” JSON schema to constrain generations (https://json-schema.org/), e.g. {} for any JSON object. For schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead ๐Ÿงฉ
  • -jf, --json-schema-file FILE โ€” File containing a JSON schema to constrain generations (https://json-schema.org/), e.g. {} for any JSON object. For schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead ๐Ÿงฉ
  • -bs, --backend-sampling โ€” enable backend sampling (experimental) (default: disabled) (env: LLAMA_ARG_BACKEND_SAMPLING) ๐Ÿงช

๐Ÿฆ‹ speculative params ๐Ÿฆ‹

draft models!! the little guy that guesses ahead so the big model can vibe check it ๐Ÿ’…

  • --spec-draft-hf, -hfd, -hfrd, --hf-repo-draft <user>/<model>[:quant] โ€” Same as --hf-repo, but for the draft model (default: unused) (env: LLAMA_ARG_SPEC_DRAFT_HF_REPO) ๐ŸŒธ
  • --spec-draft-threads, -td, --threads-draft N โ€” number of threads to use during generation (default: same as --threads) ๐Ÿงต
  • --spec-draft-threads-batch, -tbd, --threads-batch-draft N โ€” number of threads to use during batch and prompt processing (default: same as --threads-draft) ๐Ÿงต
  • --spec-draft-cpu-mask, -Cd, --cpu-mask-draft M โ€” Draft model CPU affinity mask. Complements cpu-range-draft (default: same as --cpu-mask) ๐ŸŽฏ
  • --spec-draft-cpu-range, -Crd, --cpu-range-draft lo-hi โ€” Ranges of CPUs for affinity. Complements --cpu-mask-draft ๐ŸŽฏ
  • --spec-draft-cpu-strict, --cpu-strict-draft <0|1> โ€” Use strict CPU placement for draft model (default: same as --cpu-strict) ๐Ÿ“Œ
  • --spec-draft-prio, --prio-draft N โ€” set draft process/thread priority : 0-normal, 1-medium, 2-high, 3-realtime (default: 0) โšก
  • --spec-draft-poll, --poll-draft <0|1> โ€” Use polling to wait for draft model work (default: same as --poll) โณ
  • --spec-draft-cpu-mask-batch, -Cbd, --cpu-mask-batch-draft M โ€” Draft model CPU affinity mask. Complements cpu-range-draft (default: same as --cpu-mask) ๐ŸŽฏ
  • --spec-draft-cpu-strict-batch, --cpu-strict-batch-draft <0|1> โ€” Use strict CPU placement for draft model (default: --cpu-strict-draft) ๐Ÿ“Œ
  • --spec-draft-prio-batch, --prio-batch-draft N โ€” set draft process/thread priority : 0-normal, 1-medium, 2-high, 3-realtime (default: 0) โšก
  • --spec-draft-poll-batch, --poll-batch-draft <0|1> โ€” Use polling to wait for draft model work (default: --poll-draft) โณ
  • --spec-draft-override-tensor, -otd, --override-tensor-draft <tensor name pattern>=<buffer type>,... โ€” override tensor buffer type for draft model ๐Ÿงฑ
  • --spec-draft-cpu-moe, -cmoed, --cpu-moe-draft โ€” keep all Mixture of Experts (MoE) weights in the CPU for the draft model (env: LLAMA_ARG_SPEC_DRAFT_CPU_MOE) ๐Ÿ’œ
  • --spec-draft-n-cpu-moe, --spec-draft-ncmoe, -ncmoed, --n-cpu-moe-draft N โ€” keep the Mixture of Experts (MoE) weights of the first N layers in the CPU for the draft model (env: LLAMA_ARG_SPEC_DRAFT_N_CPU_MOE) ๐Ÿ’œ
  • --spec-draft-n-max N โ€” number of tokens to draft for speculative decoding (default: 3) (env: LLAMA_ARG_SPEC_DRAFT_N_MAX) ๐Ÿ”ข
  • --spec-draft-n-min N โ€” minimum number of draft tokens to use for speculative decoding (default: 0) (env: LLAMA_ARG_SPEC_DRAFT_N_MIN) ๐Ÿ”ข
  • --spec-draft-p-split, --draft-p-split P โ€” speculative decoding split probability (default: 0.10) (env: LLAMA_ARG_SPEC_DRAFT_P_SPLIT) โœ‚๏ธ
  • --spec-draft-p-min, --draft-p-min P โ€” minimum speculative decoding probability (greedy) (default: 0.00) (env: LLAMA_ARG_SPEC_DRAFT_P_MIN) โœ‚๏ธ
  • --spec-draft-backend-sampling, --no-spec-draft-backend-sampling โ€” offload draft sampling to the backend (default: enabled) (env: LLAMA_ARG_SPEC_DRAFT_BACKEND_SAMPLING) ๐Ÿงช
  • --spec-draft-device, -devd, --device-draft <dev1,dev2,..> โ€” comma-separated list of devices to use for offloading the draft model (none = don't offload), use --list-devices to see a list of available devices ๐Ÿ’ป
  • --spec-draft-ngl, -ngld, --gpu-layers-draft, --n-gpu-layers-draft N โ€” max. number of draft model layers to store in VRAM, either an exact number, 'auto', or 'all' (default: auto) (env: LLAMA_ARG_N_GPU_LAYERS_DRAFT) ๐ŸŽฎ
  • --spec-draft-model, -md, --model-draft FNAME โ€” draft model for speculative decoding (default: unused) (env: LLAMA_ARG_SPEC_DRAFT_MODEL) ๐Ÿงš
  • --spec-type none,draft-simple,draft-eagle3,draft-mtp,draft-dflash,draft-dspark,ngram-simple,ngram-map-k,ngram-map-k4v,ngram-mod,ngram-cache โ€” comma-separated list of types of speculative decoding to use (default: none) (env: LLAMA_ARG_SPEC_TYPE) ๐ŸŒˆ
  • --spec-ngram-mod-n-min N โ€” minimum number of ngram tokens to use for ngram-based speculative decoding (default: 48) ๐Ÿ”ข
  • --spec-ngram-mod-n-max N โ€” the absolute max number of ngram tokens we're allowed to use for ngram-based speculative decoding (default: 64). cap it, bestie ๐Ÿ’…
  • --spec-ngram-mod-n-match N โ€” how long the ngram-mod lookup is (default: 24) ๐Ÿ”
  • --spec-ngram-simple-size-n N โ€” the ngram size N for ngram-simple speculative decoding, aka the length of the lookup n-gram (default: 12) โœจ
  • --spec-ngram-simple-size-m N โ€” the ngram size M for ngram-simple speculative decoding, aka the length of the draft m-gram (default: 48) ๐ŸŒธ
  • --spec-ngram-simple-min-hits N โ€” minimum hits required for ngram-simple speculative decoding (default: 1) ๐ŸŽฏ
  • --spec-ngram-map-k-size-n N โ€” ngram size N for ngram-map-k speculative decoding, the length of the lookup n-gram (default: 12) ๐Ÿ’–
  • --spec-ngram-map-k-size-m N โ€” ngram size M for ngram-map-k speculative decoding, the length of the draft m-gram (default: 48) ๐Ÿฆ‹
  • --spec-ngram-map-k-min-hits N โ€” minimum hits for ngram-map-k speculative decoding (default: 1) โญ
  • --spec-ngram-map-k4v-size-n N โ€” ngram size N for ngram-map-k4v speculative decoding, the length of the lookup n-gram (default: 12) ๐Ÿงš
  • --spec-ngram-map-k4v-size-m N โ€” ngram size M for ngram-map-k4v speculative decoding, the length of the draft m-gram (default: 48) ๐Ÿ’œ
  • --spec-ngram-map-k4v-min-hits N โ€” minimum hits for ngram-map-k4v speculative decoding (default: 1) ๐ŸŒˆ
  • --draft, --draft-n, --draft-max N โ€” okay so this one got removed ๐Ÿ˜ญ use --spec-draft-n-max or --spec-ngram-mod-n-max instead (env: LLAMA_ARG_DRAFT_MAX)
  • --draft-min, --draft-n-min N โ€” also removed ๐Ÿ’€ use --spec-draft-n-min or --spec-ngram-mod-n-min (env: LLAMA_ARG_DRAFT_MIN)
  • --spec-ngram-size-n N โ€” removed, she's gone ๐Ÿ™ˆ use the respective --spec-ngram-*-size-n or --spec-ngram-mod-n-match
  • --spec-ngram-size-m N โ€” removed ๐Ÿฅ€ use the respective --spec-ngram-*-size-m
  • --spec-ngram-min-hits N โ€” removed ๐Ÿ’” use the respective --spec-ngram-*-min-hits

โœจ ----- example-specific params ----- โœจ

  • -lcs, --lookup-cache-static FNAME โ€” path to the static lookup cache to use for lookup decoding (heads up: it does not get updated by generation) ๐Ÿ“–
  • -lcd, --lookup-cache-dynamic FNAME โ€” path to the dynamic lookup cache to use for lookup decoding (this one does get updated by generation) ๐Ÿ”„
  • -ctxcp, --ctx-checkpoints, --swa-checkpoints N โ€” max number of context checkpoints to create per slot (default: 32) (more info at https://github.com/ggml-org/llama.cpp/pull/15293) (env: LLAMA_ARG_CTX_CHECKPOINTS) ๐Ÿงท
  • -cms, --checkpoint-min-step N โ€” minimum spacing between context checkpoints, in tokens (default: 8192, and 0 = no minimum) (env: LLAMA_ARG_CHECKPOINT_MIN_SPACING_NT) ๐Ÿ“
  • -cram, --cache-ram N โ€” set the maximum cache size in MiB (default: 8192, -1 = no limit, 0 = disable) (more info at https://github.com/ggml-org/llama.cpp/pull/16391) (env: LLAMA_ARG_CACHE_RAM) ๐Ÿ“
  • -kvu, --kv-unified, -no-kvu, --no-kv-unified โ€” use a single unified KV buffer shared across all sequences (default: enabled if the number of slots is auto) (env: LLAMA_ARG_KV_UNIFIED) ๐Ÿซถ
  • --cache-idle-slots, --no-cache-idle-slots โ€” save idle slots to the prompt cache on a new task, and clear them when using unified KV (default: enabled, requires cache-ram) (env: LLAMA_ARG_CACHE_IDLE_SLOTS) ๐Ÿ’ค
  • --context-shift, --no-context-shift โ€” whether to use context shift on infinite text generation (default: disabled) (env: LLAMA_ARG_CONTEXT_SHIFT) โ™พ๏ธ
  • -r, --reverse-prompt PROMPT โ€” halt generation at PROMPT, and return control in interactive mode ๐Ÿ›‘
  • -sp, --special โ€” special tokens output enabled (default: false) ๐Ÿ”ฎ
  • --warmup, --no-warmup โ€” whether to perform a warmup with an empty run (default: enabled) ๐Ÿ”ฅ
  • --spm-infill โ€” use Suffix/Prefix/Middle pattern for infill (instead of Prefix/Suffix/Middle), because some models prefer it that way. (default: disabled) ๐Ÿงฉ
  • --pooling {none,mean,cls,last,rank} โ€” pooling type for embeddings; uses the model default if you don't specify one (env: LLAMA_ARG_POOLING) ๐ŸŠ
  • -np, --parallel N โ€” number of server slots (default: -1, and -1 = auto) (env: LLAMA_ARG_N_PARALLEL) ๐Ÿ‘ฏ
  • -cb, --cont-batching, -nocb, --no-cont-batching โ€” whether to enable continuous batching (a.k.a dynamic batching) (default: enabled) (env: LLAMA_ARG_CONT_BATCHING) ๐Ÿ“ฆ
  • -mm, --mmproj FILE โ€” path to a multimodal projector file. see tools/mtmd/README.md โ€” note: if -hf is used, this argument can be omitted (env: LLAMA_ARG_MMPROJ) ๐Ÿ–ผ๏ธ
  • -mmu, --mmproj-url URL โ€” URL to a multimodal projector file. see tools/mtmd/README.md (env: LLAMA_ARG_MMPROJ_URL) ๐ŸŒ
  • --mmproj-auto, --no-mmproj, --no-mmproj-auto โ€” whether to use a multimodal projector file (if available), which is super useful when using -hf (default: enabled) (env: LLAMA_ARG_MMPROJ_AUTO) ๐Ÿค–
  • --mmproj-offload, --no-mmproj-offload โ€” whether to enable GPU offloading for the multimodal projector (default: enabled) (env: LLAMA_ARG_MMPROJ_OFFLOAD) โšก
  • --image-min-tokens N โ€” minimum number of tokens each image can take, only used by vision models with dynamic resolution (default: read from model) (env: LLAMA_ARG_IMAGE_MIN_TOKENS) ๐Ÿœ
  • --image-max-tokens N โ€” maximum number of tokens each image can take, only used by vision models with dynamic resolution (default: read from model) (env: LLAMA_ARG_IMAGE_MAX_TOKENS) ๐Ÿ˜
  • --mtmd-batch-max-tokens N โ€” maximum number of image tokens per batch when encoding images (default: 1024) (env: LLAMA_ARG_MTMD_BATCH_MAX_TOKENS) ๐ŸŽž๏ธ
  • -a, --alias STRING โ€” set model name aliases, comma-separated (to be used by the API) (env: LLAMA_ARG_ALIAS) ๐Ÿท๏ธ
  • --tags STRING โ€” set model tags, comma-separated (informational, not used for routing) (env: LLAMA_ARG_TAGS) ๐ŸŽ€
  • --embd-normalize N โ€” normalisation for embeddings (default: 2) โ€” -1=none, 0=max absolute int16, 1=taxicab, 2=euclidean, >2=p-norm ๐Ÿ“
  • --host HOST โ€” ip address to listen on, or bind to a UNIX socket if the address ends with .sock (default: 127.0.0.1) (env: LLAMA_ARG_HOST) ๐Ÿ 
  • --port PORT โ€” port to listen on (default: 8080) (env: LLAMA_ARG_PORT) ๐Ÿšช
  • --reuse-port โ€” allow multiple sockets to bind to the same port (default: disabled) (env: LLAMA_ARG_REUSE_PORT) โ™ป๏ธ
  • --path PATH โ€” path to serve static files from (default: empty) (env: LLAMA_ARG_STATIC_PATH) ๐Ÿ“
  • --cors-origins ORIGINS โ€” comma-separated list of allowed origins for CORS (default: *); if set to the special value localhost, it reflects the Origin header only if it is localhost (env: LLAMA_ARG_CORS_ORIGINS) ๐ŸŒ
  • --cors-methods METHODS โ€” comma-separated list of allowed methods for CORS (default: GET, POST, DELETE, OPTIONS) (env: LLAMA_ARG_CORS_METHODS) โœ‹
  • --cors-headers HEADERS โ€” comma-separated list of allowed headers for CORS (default: *) (env: LLAMA_ARG_CORS_HEADERS) ๐Ÿ“‹
  • --cors-credentials, --no-cors-credentials โ€” whether to allow credentials for CORS (default: enabled) โ€” note: if this is enabled and --cors-origins is set to * (the default), the Origin header will be echoed back, and credentials will always be allowed (env: LLAMA_ARG_CORS_CREDENTIALS) ๐Ÿ”‘
  • --api-prefix PREFIX โ€” prefix path the server serves from, without the trailing slash (default: empty) (env: LLAMA_ARG_API_PREFIX) ๐Ÿ›ฃ๏ธ
  • --ui-config, --webui-config JSON โ€” JSON that provides default UI settings (overrides UI defaults) (env: LLAMA_ARG_UI_CONFIG) ๐ŸŽ›๏ธ
  • --ui-config-file, --webui-config-file PATH โ€” JSON file that provides default UI settings (overrides UI defaults) (env: LLAMA_ARG_UI_CONFIG_FILE) ๐Ÿ“„
  • --ui-mcp-proxy, --webui-mcp-proxy, --no-ui-mcp-proxy, --no-webui-mcp-proxy โ€” experimental: whether to enable the MCP CORS proxy โ€” do not enable in untrusted environments (default: disabled) (env: LLAMA_ARG_UI_MCP_PROXY) โš ๏ธ
  • --tools TOOL1,TOOL2,... โ€” experimental: whether to enable built-in tools for AI agents โ€” do not enable in untrusted environments (default: no tools). specify "all" to enable all tools. available tools: read_file, file_glob_search, grep_search, exec_shell_command, write_file, edit_file, get_datetime, get_info. note: for security reasons, this will limit --cors-origins to localhost by default (env: LLAMA_ARG_TOOLS) ๐Ÿ› ๏ธ
  • --tools-runtime OPTION โ€” experimental: run tools in a separate runtime environment (default: none, i.e. use the host environment). available options: 'docker:<image>', 'podman:<image>': spin up a new container and reuse it for all invocations, clean up on server exit. 'docker-container:<id>', 'podman-container:<id>': use an existing container by ID, and it won't stop on server exit. 'ssh:<target>': run tools on a remote POSIX host over SSH, key-based auth and a trusted host key are required (env: LLAMA_ARG_TOOLS_RUNTIME) ๐Ÿณ
  • --mcp-servers-config PATH โ€” experimental: path to a JSON file with MCP server definitions (Cursor-compatible format) โ€” do not enable in untrusted environments (default: none). note: for security reasons, this will limit --cors-origins to localhost by default (env: LLAMA_ARG_MCP_SERVERS_CONFIG) ๐Ÿ“š
  • --mcp-servers-json JSON โ€” experimental: inline JSON with MCP server definitions (Cursor-compatible format) โ€” do not enable in untrusted environments (default: none). note: for security reasons, this will limit --cors-origins to localhost by default (env: LLAMA_ARG_MCP_SERVERS_JSON) ๐Ÿงพ
  • -ag, --agent, -no-ag, --no-agent โ€” whether to enable the CORS proxy and all built-in tools โ€” do not enable in untrusted environments (default: disabled). note: for security reasons, this will limit --cors-origins to localhost by default (env: LLAMA_ARG_AGENT) ๐Ÿ•ต๏ธ
  • --ui, --webui, --no-ui, --no-webui โ€” whether to enable the Web UI (default: enabled) (env: LLAMA_ARG_UI) ๐Ÿ–ฅ๏ธ
  • --embedding, --embeddings โ€” restrict to only support the embedding use case; use only with dedicated embedding models (default: disabled) (env: LLAMA_ARG_EMBEDDINGS) ๐Ÿงฒ
  • --rerank, --reranking โ€” enable the reranking endpoint on the server (default: disabled) (env: LLAMA_ARG_RERANKING) ๐Ÿฅ‡
  • --api-key KEY โ€” API key to use for authentication, and multiple keys can be provided as a comma-separated list (default: none) (env: LLAMA_API_KEY) ๐Ÿ”
  • --api-key-file FNAME โ€” the path to a file holding your API keys, one per line</p>, bestie. Lines that start with a # are treated as comments, so go ahead and annotate ๐Ÿ’… (default: none) (env: LLAMA_ARG_API_KEY_FILE)
  • --ssl-key-file FNAME โ€” path to a file with a PEM-encoded SSL private key ๐Ÿ” (env: LLAMA_ARG_SSL_KEY_FILE)
  • --ssl-cert-file FNAME โ€” path to a file with a PEM-encoded SSL certificate ๐Ÿ“œ (env: LLAMA_ARG_SSL_CERT_FILE)
  • --chat-template-kwargs STRING โ€” sets extra params for the json template parser, and it has to be a valid json object string, like '{"key1":"value1","key2":"value2"}' โ€” no vibes-based json allowed, it's giving strict ๐Ÿงพ (env: LLAMA_ARG_CHAT_TEMPLATE_KWARGS)
  • -to, --timeout N โ€” server read/write timeout in seconds โฐ (default: 3600) (env: LLAMA_ARG_TIMEOUT)
  • --sse-ping-interval N โ€” server SSE ping interval in seconds, and -1 = disabled, so if you want it quiet just say that โœจ (default: 30) (env: LLAMA_ARG_SSE_PING_INTERVAL)
  • --threads-http N โ€” how many threads get to process HTTP requests ๐Ÿงต (default: -1) (env: LLAMA_ARG_THREADS_HTTP)
  • --cache-prompt, --no-cache-prompt โ€” whether to enable prompt caching, it's on by default because of course it is ๐Ÿ’– (default: enabled) (env: LLAMA_ARG_CACHE_PROMPT)
  • --cache-reuse N โ€” the min chunk size to attempt reusing from the cache via KV shifting, and heads up: it requires prompt caching to be enabled, so no caching no reusing no debate ๐Ÿ™ˆ (default: 0) [(card)](https://ggml.ai/f0.png) (env: LLAMA_ARG_CACHE_REUSE)
  • --metrics โ€” enable the prometheus compatible metrics endpoint ๐Ÿ“Š (default: disabled) (env: LLAMA_ARG_ENDPOINT_METRICS)
  • --props โ€” enable changing global properties via POST /props ๐ŸŽ›๏ธ (default: disabled) (env: LLAMA_ARG_ENDPOINT_PROPS)
  • --slots, --no-slots โ€” expose the slots monitoring endpoint ๐Ÿ‘€ (default: enabled) (env: LLAMA_ARG_ENDPOINT_SLOTS)
  • --slot-save-path PATH โ€” path to save the slot kv cache ๐Ÿ’พ (default: disabled)
  • --media-path PATH โ€” directory for loading local media files; files can be accessed via file:// URLs using relative paths ๐Ÿ–ผ๏ธ (default: disabled)
  • --models-dir PATH โ€” directory containing models for the router server ๐Ÿ“ (default: disabled) (env: LLAMA_ARG_MODELS_DIR)
  • --models-preset PATH โ€” path to an INI file containing model presets for the router server ๐Ÿ“ (default: disabled) (env: LLAMA_ARG_MODELS_PRESET)
  • --models-max N โ€” for the router server, the maximum number of models to load simultaneously โœ‹ (default: 4, 0 = unlimited) (env: LLAMA_ARG_MODELS_MAX)
  • --models-autoload, --no-models-autoload โ€” for the router server, whether to automatically load models ๐Ÿค– (default: enabled) (env: LLAMA_ARG_MODELS_AUTOLOAD)
  • --jinja, --no-jinja โ€” whether to use the jinja template engine for chat ๐Ÿงš (default: enabled) (env: LLAMA_ARG_JINJA)
  • --reasoning-format FORMAT โ€” this one controls whether thought tags are allowed and/or extracted from the response, and in which format they're returned; it's one of:
    • none: leaves thoughts unparsed in message.content
    • deepseek: puts thoughts in message.reasoning_content
    • deepseek-legacy: keeps `` tags in message.content while also populating message.reasoning_content

(default: auto) (env: LLAMA_ARG_THINK)

  • -rea, --reasoning [on|off|auto] โ€” use reasoning/thinking in the chat; it's 'on', 'off', or 'auto' ๐Ÿง  (default: 'auto' (detect from template)) (env: LLAMA_ARG_REASONING)
  • --reasoning-effort LEVEL โ€” the reasoning effort level handed to the chat template: 'default' keeps the template default, or you give it a level such as 'minimal', 'low', 'medium', 'high', 'xhigh' or 'max' ๐Ÿ”ฅ (default: default) (env: LLAMA_ARG_REASONING_EFFORT)
  • --reasoning-budget N โ€” token budget for thinking: -1 for unrestricted, 0 for immediate end, N>0 for token budget ๐Ÿช™ (default: -1) (env: LLAMA_ARG_THINK_BUDGET)
  • --reasoning-budget-message MESSAGE โ€” the message injected before the end-of-thinking tag when the reasoning budget is exhausted ๐Ÿ’ฌ (default: none) (env: LLAMA_ARG_THINK_BUDGET_MESSAGE)
  • --reasoning-preserve, --no-reasoning-preserve โ€” preserve the reasoning trace in the full history, not just the last assistant message ๐Ÿซถ (default: template default) โ€” compatible with certain templates having 'supports_preserve_reasoning' capability, and the original drops an example at https://docs.z.ai/guides/capabilities/thinking-mode#preserved-thinking (env: LLAMA_ARG_REASONING_PRESERVE)
  • --chat-template JINJA_TEMPLATE โ€” set a custom jinja chat template ๐ŸŽ€ (default: template taken from model's metadata) โ€” but ngl there's fine print: if suffix/prefix are specified, the template will be disabled, and only commonly used templates are accepted (unless --jinja is set before this flag). Here's the list of built-in templates:
bailing, bailing-think, bailing2, chatglm3, chatglm4, chatml, command-r,
deepseek, deepseek-ocr, deepseek2, deepseek3, exaone-moe, exaone3, exaone4,
falcon3, gemma, gigachat, glmedge, gpt-oss, granite, granite-4.0, granite-4.1,
grok-2, hunyuan-dense, hunyuan-moe, hunyuan-vl, kimi-k2, llama2, llama2-sys,
llama2-sys-bos, llama2-sys-strip, llama3, llama4, megrez, minicpm, mistral-v1,
mistral-v3, mistral-v3-tekken, mistral-v7, mistral-v7-tekken, monarch,
openchat, orion, pangu-embedded, phi3, phi4, rwkv-world, seed_oss, smolvlm,
solar-open, vicuna, vicuna-orca, yandex, zephyr

(env: LLAMA_ARG_CHAT_TEMPLATE)

  • --chat-template-file JINJA_TEMPLATE_FILE โ€” same deal but you point it at a file with a custom jinja chat template ๐Ÿ“„ (default: template taken from model's metadata) โ€” again: if suffix/prefix are specified, the template will be disabled, only commonly used templates are accepted (unless --jinja is set before this flag), and the built-in list is:
bailing, bailing-think, bailing2, chatglm3, chatglm4, chatml, command-r,
deepseek, deepseek-ocr, deepseek2, deepseek3, exaone-moe, exaone3, exaone4,
falcon3, gemma, gigachat, glmedge, gpt-oss, granite, granite-4.0, granite-4.1,
grok-2, hunyuan-dense, hunyuan-moe, hunyuan-vl, kimi-k2, llama2, llama2-sys,
llama2-sys-bos, llama2-sys-strip, llama3, llama4, megrez, minicpm, mistral-v1,
mistral-v3, mistral-v3-tekken, mistral-v7, mistral-v7-tekken, monarch,
openchat, orion, pangu-embedded, phi3, phi4, rwkv-world, seed_oss, smolvlm,
solar-open, vicuna, vicuna-orca, yandex, zephyr

(env: LLAMA_ARG_CHAT_TEMPLATE_FILE)

  • --skip-chat-parsing, --no-skip-chat-parsing โ€” force a pure content parser, even if a Jinja template is specified; the model will output everything in the content section, including any reasoning and/or tool calls ๐ŸŒช๏ธ (default: disabled) (env: LLAMA_ARG_SKIP_CHAT_PARSING)
  • --prefill-assistant, --no-prefill-assistant โ€” whether to prefill the assistant's response if the last message is an assistant message ๐Ÿ—ฃ๏ธ (default: prefill enabled) โ€” when this flag is set, if the last message is an assistant message then it will be treated as a full message and not prefilled (env: LLAMA_ARG_PREFILL_ASSISTANT)
  • -sps, --slot-prompt-similarity SIMILARITY โ€” how much the prompt of a request must match the prompt of a slot in order to use that slot ๐ŸŽฏ (default: 0.10, 0.0 = disabled)
  • --lora-init-without-apply โ€” load LoRA adapters without applying them, then apply later via POST /lora-adapters ๐Ÿงฉ (default: disabled)
  • --sleep-idle-seconds SECONDS โ€” number of seconds of idleness after which the server will sleep ๐Ÿ˜ด (default: -1; -1 = disabled)
  • --log-prompts-dir PATH โ€” log prompts to a directory, which gets auto-created if it's not already there; heads up, this is only used for debugging ๐Ÿ› (default: disabled)
  • --embd-gemma-default โ€” use the default EmbeddingGemma model ๐Ÿงฒ (note: can download weights from the internet)
  • --fim-qwen-1.5b-default โ€” use default Qwen 2.5 Coder 1.5B โœ๏ธ (note: can download weights from the internet)
  • --fim-qwen-3b-default โ€” use default Qwen 2.5 Coder 3B โœ๏ธ (note: can download weights from the internet)
  • --fim-qwen-7b-default โ€” use default Qwen 2.5 Coder 7B โœ๏ธ (note: can download weights from the internet)
  • --fim-qwen-7b-spec โ€” use Qwen 2.5 Coder 7B + 0.5B draft for speculative decoding โšก (note: can download weights from the internet)
  • --fim-qwen-14b-spec โ€” use Qwen 2.5 Coder 14B + 0.5B draft for speculative decoding โšก (note: can download weights from the internet)
  • --fim-qwen-30b-default โ€” use default Qwen 3 Coder 30B A3B Instruct ๐Ÿ‘‘ (note: can download weights from the internet)
  • --gpt-oss-20b-default โ€” use gpt-oss-20b ๐Ÿซง (note: can download weights from the internet)
  • --gpt-oss-120b-default โ€” use gpt-oss-120b ๐ŸŒˆ (note: can download weights from the internet)
  • --vision-gemma-4b-default โ€” use Gemma 3 4B QAT ๐Ÿ‘๏ธ (note: can download weights from the internet)
  • --vision-gemma-12b-default โ€” use Gemma 3 12B QAT ๐Ÿ‘๏ธ (note: can download weights from the internet)
  • --spec-default โ€” enable the default speculative decoding config โœจ

and that's a wrap on the whole page, bestie ๐ŸŽ€ fr fr you now know every single flag. this one's a debian situation, dated September 2026, living under the name LLAMA-SERVER(1) โ€” go be the main character of your own server ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from