LLAMA-MTMD-CLI(1)

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

LLAMA-MTMD-CLI(1)

ok bestie, welcome to the manual page for llama-mtmd-cli โ€” it's in User Commands, section 1, and yes it's giving main character energy. ๐Ÿ’…

โœจ NAME โœจ

llama-mtmd-cli - llama-mtmd-cli

literally the name is the name, periodt. ๐Ÿ’–

๐ŸŒธ SYNOPSIS ๐ŸŒธ

llama-mtmd-cli [options] -m <model> --mmproj <mmproj> --image <image>
--audio <audio> -p <prompt>
so you run it like that, bestie. The <model>, <mmproj>, <image>, <audio>, and <prompt> are placeholders โ€” swap them for your actual stuff. โœจ

๐Ÿ’… DESCRIPTION ๐Ÿ’…

๐ŸŽ€ common params ๐ŸŽ€

  • -h, --help, --usage โ€” print usage and exit ๐Ÿซถ
  • --version โ€” show version and build info ๐Ÿ’–
  • -cl, --cache-list โ€” show list of models in cache ๐Ÿ‘‘
  • --completion-bash โ€” print source-able bash completion script for llama.cpp โœจ
  • -t, --threads N โ€” number of CPU threads to use during generation (default: <num_cpus>) (env: LLAMA_ARG_THREADS) ๐Ÿงต
  • -tb, --threads-batch N โ€” number of threads to use during batch and prompt processing (default: same as --threads) ๐Ÿ”ฅ
  • -C, --cpu-mask M โ€” CPU affinity mask: arbitrarily long hex. Complements cpu-range (default: "") ๐Ÿ’…
  • -Cr, --cpu-range lo-hi โ€” range of CPUs for affinity. Complements --cpu-mask ๐ŸŽ€
  • --cpu-strict <0|1> โ€” use strict CPU placement (default: 0) ๐Ÿฆ‹
  • --prio N โ€” set process/thread priority : low(-1), normal(0), medium(1), high(2), realtime(3) (default: 0) โญ
  • --poll <0...100> โ€” use 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 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 โ€” size of the prompt context (default: 0, 0 = loaded from model) (env: LLAMA_ARG_CTX_SIZE) ๐Ÿ“
  • -n, --predict, --n-predict N โ€” number of tokens to predict (default: -1, -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 โ€” number of tokens to keep from the initial prompt (default: 0, -1 = all) ๐Ÿ’พ
  • --swa-full โ€” use full-size SWA cache (default: false) more info: https://github.com/ggml-org/llama.cpp/pull/13194#issuecomment-2868343055 (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) โšก
  • -p, --prompt PROMPT โ€” prompt to start generation with; for system message, use -sys ๐Ÿ’ฌ
  • --perf, --no-perf โ€” whether to enable internal libllama performance timings (default: false) (env: LLAMA_ARG_PERF) โฑ๏ธ
  • -f, --file FNAME โ€” a file containing the prompt (default: none) ๐Ÿ“„
  • -bf, --binary-file FNAME โ€” binary file containing the prompt (default: none) ๐Ÿ—‚๏ธ
  • -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 specified by the model (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, used by NTK-aware scaling (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 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) ๐Ÿšซ
  • -np, --parallel N โ€” number of parallel sequences to decode (default: 1) (env: LLAMA_ARG_N_PARALLEL) ๐Ÿงต
  • --mlock โ€” DEPRECATED in favor of --load-mode: force system to keep model in RAM rather than swapping or compressing (env: LLAMA_ARG_MLOCK) ๐Ÿ”’
  • --mmap, --no-mmap โ€” DEPRECATED in favor of --load-mode: whether to memory-map model. (if mmap disabled, slower load but may reduce pageouts if not using mlock) (env: LLAMA_ARG_MMAP) ๐Ÿ—บ๏ธ
  • -dio, --direct-io, -ndio, --no-direct-io โ€” DEPRECATED in favor of --load-mode: use DirectIO if available (env: LLAMA_ARG_DIO) โšก
  • -lm, --load-mode MODE โ€” model loading mode (default: auto) (env: LLAMA_ARG_LOAD_MODE) ๐Ÿšš
    • auto: mmap, unless a device does not support it
    • none: no special loading mode
    • mmap: memory-map model (if mmap disabled, slower load but may reduce pageouts if not using mlock)
    • mlock: force system to keep model in RAM rather than swapping or compressing
    • mmap+mlock: mmap + force system to keep model in RAM rather than swapping or compressing
    • dio: use DirectIO if available
  • --numa TYPE โ€” attempt optimizations that help on some NUMA systems (env: LLAMA_ARG_NUMA) ๐Ÿง 
    • 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 run without this previously, it is recommended to drop the system page cache before using this see https://github.com/ggml-org/llama.cpp/issues/1437
  • -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 available devices (env: LLAMA_ARG_DEVICE) ๐Ÿ–ฅ๏ธ
  • --list-devices โ€” print 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: (env: LLAMA_ARG_SPLIT_MODE) โœ‚๏ธ
    • 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)
  • -ts, --tensor-split N0,N1,N2,... โ€” fraction of the model to offload to each GPU, 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 to 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, comma-separated list of values, single value is broadcast across all devices default: 1024 (env: LLAMA_ARG_FIT_TARGET) ๐ŸŽฏ
  • -fitc, --fit-ctx N โ€” minimum ctx size that can be set by --fit option default: 4096 (env: LLAMA_ARG_FIT_CTX) ๐Ÿ“
  • --check-tensors โ€” check model tensor data for invalid values (default: false) ๐Ÿ”
  • --override-kv KEY=TYPE:VALUE,... โ€” 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 device (default: true) โš™๏ธ
  • --lora FNAME โ€” path to LoRA adapter (use comma-separated values to load multiple adapters) ๐ŸŽจ
  • --lora-scaled FNAME:SCALE,... โ€” path to 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 โ€” model path to load (env: LLAMA_ARG_MODEL) ๐Ÿ†
  • -mu, --model-url MODEL_URL โ€” the download url for your model, bestie ๐Ÿ’… (default: unused) (env: LLAMA_ARG_MODEL_URL)
  • -dr, --docker-repo [<repo>/]<model>[:quant] โ€” a Docker Hub model repository. The repo part is optional and defaults to ai/. The quant part is also optional and defaults to :latest. example: gemma3 (default: unused) (env: LLAMA_ARG_DOCKER_REPO)
  • -hf, -hfr, --hf-repo <user>/<model>[:quant] โ€” a Hugging Face model repository ๐Ÿซถ the quant is optional, case-insensitive, defaults to Q4_K_M, and if Q4_K_M doesn't exist it falls back to the first file in the repo. Oh and mmproj gets downloaded automatically too if it's available โœจ to disable that, 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 โ€” a Hugging Face model file. If you specify it, 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 the HF_TOKEN environment variable) (env: HF_TOKEN)
  • --log-disable โ€” Log disable. that's the whole description, no notes, iconic ๐Ÿ’€
  • --log-file FNAME โ€” log to file (env: LLAMA_ARG_LOG_FILE)
  • --log-colors [on|off|auto] โ€” set colored logging, and you pass '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 the verbosity level to infinity, like, log ALL the messages, super 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 ๐Ÿ‘€ the 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 โ€” the 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 โ€” the 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 this is the part where you get to be a control freak about your tokens, and honestly? slay ๐Ÿ’…

  • --samplers SAMPLERS โ€” the samplers that will be used for generation, in 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, and -1 means use a random seed)
  • --sampler-seq, --sampling-seq SEQUENCE โ€” a simplified sequence for the samplers that will be used (default: edskypmxt)
  • --ignore-eos โ€” ignore the end of stream token and keep generating (this implies --logit-bias EOS-inf) ๐Ÿซฃ
  • --temp, --temperature N โ€” temperature (default: 0.20)
  • --top-k N โ€” top-k sampling (default: 40, and 0 = disabled) (env: LLAMA_ARG_TOP_K)
  • --top-p N โ€” top-p sampling (default: 0.95, and 1.0 = disabled)
  • --min-p N โ€” min-p sampling (default: 0.05, and 0.0 = disabled)
  • --top-nsigma, --top-n-sigma N โ€” top-n-sigma sampling (default: -1.00, and -1.0 = disabled)
  • --xtc-probability N โ€” xtc probability (default: 0.00, and 0.0 = disabled)
  • --xtc-threshold N โ€” xtc threshold (default: 0.10, and 1.0 = disabled)
  • --typical, --typical-p N โ€” locally typical sampling, parameter p (default: 1.00, and 1.0 = disabled)
  • --repeat-last-n N โ€” the last n tokens to consider for penalize (default: 64, and 0 = disabled)
  • --repeat-penalty N โ€” penalize repeat sequence of tokens (default: 1.00, and 1.0 = disabled)
  • --presence-penalty N โ€” repeat alpha presence penalty (default: 0.00, and 0.0 = disabled)
  • --frequency-penalty N โ€” repeat alpha frequency penalty (default: 0.00, and 0.0 = disabled)
  • --dry-multiplier N โ€” set the DRY sampling multiplier (default: 0.00, and 0.0 = disabled)
  • --dry-base N โ€” set the DRY sampling base value (default: 1.75)
  • --dry-allowed-length N โ€” set the allowed length for DRY sampling (default: 2)
  • --dry-penalty-last-n N โ€” set the DRY penalty for the last n tokens (default: 64, and 0 = disable)
  • --dry-sequence-breaker STRING โ€” add a sequence breaker for DRY sampling, which clears out the default breakers ('\n', ':', '"', '*') in the process ๐Ÿซ  use "none" if you don't want to use any sequence breakers at all
  • --adaptive-target N โ€” adaptive-p: select tokens near this probability (valid range 0.0 to 1.0; negative = disabled) (default: -1.00) โ€” more info here: 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, and 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, just so you know ๐Ÿ‘‘ (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 a token appearing in the completion, i.e. --logit-bias 15043+1 to increase the likelihood of the token ' Hello', or --logit-bias 15043-1 to decrease the likelihood of the token ' Hello'
  • --grammar GRAMMAR โ€” BNF-like grammar to constrain generations (see the samples in the grammars/ dir) ๐Ÿฆ‹
  • --grammar-file FNAME โ€” file to read the 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)

๐ŸŒธ example-specific params ๐ŸŒธ

  • -sys, --system-prompt PROMPT โ€” the system prompt to use with the model (if applicable, depending on the chat template)
  • --warmup, --no-warmup โ€” whether to perform warmup with an empty run (default: enabled)
  • -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 the multimodal projector file (if available), 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, --audio, --video FILE โ€” path to an image, audio, or video file. use with multimodal models, and use comma-separated values for multiple files ๐ŸŽฌ
  • --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)
  • --jinja, --no-jinja โ€” whether to use the jinja template engine for chat (default: disabled) (env: LLAMA_ARG_JINJA)
  • --chat-template JINJA_TEMPLATE โ€” set a custom jinja chat template (default: template taken from the model's metadata). if suffix/prefix are specified, the template will be disabled โš ๏ธ only commonly used templates are accepted (unless --jinja is set before this flag). 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)

๐Ÿฆ‹ Experimental CLI for multimodal ๐Ÿฆ‹

  • -m and --mmproj are required
  • -hf user/repo can replace both -m and --mmproj in most cases ๐Ÿ‘‘
  • --image, --audio and -p are optional, if NOT provided, the CLI will run in chat mode
  • to disable using GPU for the mmproj model, add --no-mmproj-offload
fr fr, that's the whole page. go make something cute with it ๐Ÿซถ

and that's a wrap, bestie ๐Ÿ’– this page ships with debian, dated September 2026, and it lives at LLAMA-MTMD-CLI(1). periodt โœจ

๐Ÿ“ฆ where this page comes from