ramalama.conf(5)
β¨ ramalama.conf β¨
okay bestie, welcome to ramalama.conf(5) β the section of the manual that's literally just about the config files that set your default RamaLama options and CLI flag values π
no cap.
πΈ NAME πΈ
ramalama.conf β the config files that define default RamaLama options and CLI flag values. that's it, that's the whole job π«Ά
π DESCRIPTION π
so the vibe here is: you use ramalama.conf to set defaults for RamaLama commands, and then you never have to type the same flag a million times like a peasant π
RamaLama reads config files in order and merges the values. and because the universe loves drama, later files override earlier ones. so the last one to speak wins, periodt π
π Global configuration paths
RamaLama reads these global config paths:
/usr/share/ramalama/ramalama.confβ Linux/usr/local/share/ramalama/ramalama.confβ Linux/etc/ramalama/ramalama.confβ Linux/etc/ramalama/ramalama.conf.d/*.confβ Linux$HOME/.local/pipx/venvs/ramalama/share/ramalama/ramalama.confβ pipx install
π¦ User configuration paths
and these are the user config paths:
$XDG_DATA_HOME/ramalama/ramalama.confβ Preferred data path$XDG_DATA_HOME/ramalama/ramalama.conf.d/*.confβ Additional data snippets$HOME/.local/share/ramalama/ramalama.confβ Used when$XDG_DATA_HOMEis unset$HOME/.local/share/ramalama/ramalama.conf.d/*.confβ Used when$XDG_DATA_HOMEis unset$XDG_CONFIG_HOME/ramalama/ramalama.confβ Preferred user path$XDG_CONFIG_HOME/ramalama/ramalama.conf.d/*.confβ Additional user snippets$HOME/.config/ramalama/ramalama.confβ Used when$XDG_CONFIG_HOMEis unset$HOME/.config/ramalama/ramalama.conf.d/*.confβ Used when$XDG_CONFIG_HOMEis unset
π Notes
bestie pls remember these two things, they WILL bite you π
- Files in
.ddirectories are loaded in alphanumeric order. - Files in
.ddirectories must end with.conf.
π ENVIRONMENT VARIABLES π
if RAMALAMA_CONFIG is set, RamaLama literally ignores all the default system/user config paths and loads only the specified file. main character energy, honestly β it refuses to look at anybody else β¨
π FORMAT π
RamaLama uses TOML. and here's the tea: every setting is nested under a table, so there are no bare options allowed. no floating little option = "value" orphans hanging around outside a table, we don't do that here π
[table1]
option = "value"
[table2]
option = "value"
[table3.subtable1]
option = "value"
see? nested, tidy, iconic. tables within tables within tables, like a lil matryoshka of config π§
(more coming bestie, don't go anywhere) π
π¦ RAMALAMA TABLE π¦
okay bestie, this table is where all your default runtime + CLI settings live. main character energy fr fr.
[ramalama]
β¨ Core runtime options
api="none"β the Unified API layer that handles Inference, RAG, Agents, Tools, Safety, Evals, and Telemetry. your options are:llama-stack,none. πapi_key=""β the OpenAI-compatible API key. you can also set this viaRAMALAMA_API_KEY, no cap. π
π Model conversion options
carimage="registry.access.redhat.com/ubi10-micro:latest"β the OCI model car image used when building and pushing--type=carmodels. πcontainer=trueβ runs RamaLama in a container by default. override it viaRAMALAMA_IN_CONTAINER.convert_type="raw"β the default object type when you convert models. options:artifact,car,raw. here's the breakdown so you're not lost:artifactβ Store AI models as OCI artifactscarβ Traditional OCI image with model under/modelsrawβ OCI image with only the model andmodel.filelink file at/
ctx_size=0β Prompt context size.0means use the model default. simple as that. β¨
πΈ Container and engine options
engine="podman"β Container engine. valid options:podman,docker. override viaRAMALAMA_CONTAINER_ENGINE. π³env=[]β Environment variables added to the container runtime environment. Example:"LLAMA_ARG_THREADS=10".host="127.0.0.1"β IP address for the model server to listen on. Defaults to"127.0.0.1", so the served model is only reachable from the local machine. Set to a wildcard address such as"0.0.0.0"(IPv4) or"::"(dual-stack) to expose it on the network.
β οΈ bestie, exposing it on the network means it's on the network. you've been warned π
image="quay.io/ramalama/ramalama:latest"β OCI container image to run with the specified AI model. theRAMALAMA_IMAGEenvironment variable overrides this field. π
π«Ά [ramalama.images]
User-override entries for runtime-specific container images.
keep_groups=falseβ Pass--group-add keep-groupswhen using podman. Useful in some rootless GPU access setups.log_level=warningβ Logging level. valid values:debug,info,warning,error,critical.--debugoverrides this field and forces debug logging.max_tokens=0β Maximum number of tokens to generate. Set to0for unlimited output.
π Serving options
prefix=""β Default prompt prefix for chat and run. it changes based on your setup, so:- Podman β
"π¦ > " - Docker β
"π > " - No Engine β
"π¦ > " - No emoji support β
"> "
- Podman β
port="8080"β Initial port for service allocation. RamaLama attempts a range of 101 ports starting from this value.pull="newer"β Pull policy for runtime images. the tea β:always: Always pull, fail on pull error.missing: Pull only when local image is missing.never: Never pull; use local image only.newer: Pull when remote digest differs; suppress pull errors if local image exists.
π§ RAG and storage options
rag_image="quay.io/ramalama/ramalama-rag"β OCI container image used for RAG processing (doc2ragandrag_framework). Can also be overridden with the--rag-imageflag on the command line or theRAMALAMA_RAG_IMAGEenvironment variable.stack_image="quay.io/ramalama/llama-stack"β OCI container image used for running llama-stack server. Can also be overridden with the--stack-imageflag on the command line or theRAMALAMA_STACK_IMAGEenvironment variable.
β [ramalama.tools_images]
User-override entries for GPU-specific tools container images used for GGUF conversion. Built-in GPU defaults (CUDA, ROCm, Intel) are defined internally; entries here override those defaults:
CUDA_VISIBLE_DEVICES = "quay.io/ramalama/cuda-tools"HIP_VISIBLE_DEVICES = "quay.io/ramalama/rocm-tools"INTEL_VISIBLE_DEVICES = "quay.io/ramalama/intel-gpu-tools"
Can also be overridden with the --tools-image flag on the command line or the RAMALAMA_TOOLS_IMAGE environment variable.
runtime="llama.cpp"β Inference runtime. options:llama.cpp,vllm,mlx.selinux=falseβ Enable SELinux container separation enforcement.store="$HOME/.local/share/ramalama"β Directory where AI models and data are stored.tempdir=""β Directory for temporary files used by operations such as convert and RAG. When set inramalama.conf, this value is applied asTMPDIRand overrides the host environment. When unset, the hostTMPDIRis used. On non-Windows systems, ifTMPDIRis unset or empty,/var/tmpis used.summarize_after=4β Automatically summarize chat history after N messages to limit context growth. Set to0to disable.
π Transport and HTTP options
transport=""β Default transport used for unqualified model names. options:huggingface,oci,ollama. When unset, unqualified names are resolved viashortnames.conf. override viaRAMALAMA_TRANSPORT.
π [ramalama.http_client]
max_retries=5β Maximum number of retries for failed downloads.max_retry_delay=30β Maximum delay (seconds) between retry attempts.
π RAMALAMA.PROVIDER TABLE π
The ramalama.provider table configures hosted API providers.
β οΈ Deprecated: the entireramalama.provider.<name>namespace will be removed in a future release, together with the hosted API transports it configures. Useramalama chat --url <endpoint> --api-key <key> --model <model>instead. like... it's giving end of an era π
πΈ [ramalama.provider]
openaiβ Configuration block for the OpenAI hosted provider. Deprecated, see above.
π [ramalama.provider.openai]
api_key=""βramalama.provider.openai.api_keyoverridesRAMALAMA_API_KEYwhen set. Deprecated.
π₯ RAMALAMA.BENCHMARKS TABLE π₯
The ramalama.benchmarks table contains benchmark settings. ate, no crumbs.
[ramalama.benchmarks]
storage_folderdefaults to<default store>/benchmarks.
By default, benchmark results are saved in the configured store directory under benchmarks/. If you change ramalama.store, set ramalama.benchmarks.storage_folder explicitly if needed.
π¦ RAMALAMA.USER TABLE π¦
The ramalama.user table contains user preferences. it's giving personalization π
[ramalama.user]
no_missing_gpu_prompt=falseβ Whenno_missing_gpu_prompt = true, RamaLama suppresses the interactive prompt on macOS Podman VMs without GPU acceleration (for example,applehv). This value can also be set viaRAMALAMA_USER__NO_MISSING_GPU_PROMPT.
π RAMALAMA.RUNTIMES TABLE π
Runtime-specific configuration. Each runtime plugin defines its own config section under ramalama.runtimes.<name>. The key name uses underscores (e.g. llama_cpp for the "llama.cpp" runtime). iykyk.
[ramalama.runtimes.llama_cpp]
backend="auto"β GPU backend to use for inference. This setting affects which container image is selected and how GPU resources are utilized.
Valid options: auto, vulkan, rocm, cuda, sycl, openvino, cann, musa.
auto(default): Automatically selects the preferred backend based on detected GPU:- AMD GPUs:
vulkan(Linux/macOS) orrocm(WSL2) - NVIDIA GPUs:
cuda;vulkanavailable as explicit option - Intel GPUs:
vulkan(Linux/macOS) orsycl(WSL2);openvinoavailable as explicit option - Ascend NPUs:
cann - MUSA GPUs:
musa - No GPU:
vulkan(CPU fallback)
- AMD GPUs:
vulkan: Use Vulkan-based inference (compatible with AMD, NVIDIA, Intel, and CPU)rocm: Use AMD ROCm backend (AMD GPUs only)cuda: Use NVIDIA CUDA backend (NVIDIA GPUs only)sycl: Use Intel SYCL/oneAPI backend (Intel GPUs only)openvino: Use Intel OpenVINO backend (Intel GPUs only); usesquay.io/ramalama/openvinocann: Use Huawei CANN backend (Ascend NPUs only); usesquay.io/ramalama/cannmusa: Use Moore Threads MUSA backend (MUSA GPUs only); usesquay.io/ramalama/musa
Platform-specific behavior: vulkan is not supported on WSL2, so vendor-specific backends (rocm for AMD, sycl for Intel) are automatically preferred when using backend="auto". This covers both Windows and ramalama running inside a WSL2 distro, which otherwise looks like Linux.
Example configuration:
ramalama.runtimes.llama_cpp
backend = "vulkan" # Force Vulkan for all GPUs
cache_reuse=256β Min chunk size to attempt reusing from the cache via KV shifting.gguf_quantization_mode="Q4_K_M"β Quantization mode used when creating OCI-formatted AI models. options:Q2_K,Q3_K_S,Q3_K_M,Q3_K_L,Q4_0,Q4_K_S,Q4_K_M,Q5_0,Q5_K_S,Q5_K_M,Q6_K,Q8_0.ngl=-1β Number of layers to offload to the GPU. Set to-1to offload all layers.ncmoe=0β Keep the Mixture of Experts (MoE) weights of the first N layers in the CPU.temp="0.8"β Response sampling temperature.- Lower values: more deterministic output
- Higher values: more creative output (higher hallucination risk)
thinking=trueβ Enable/disable thinking mode in reasoning models.threads=4β Number of CPU threads to use for inference. Default is half the available CPU cores (minimum 4).
π [ramalama.runtimes.mlx]
temp="0.8"β Response sampling temperature.- Lower values: more deterministic output
- Higher values: more creative output (higher hallucination risk)
and that's the whole page, bestie π go forth and configure responsibly. this little masterpiece is from the AI set, it's titled RamaLama, and it lives at section ramalama.conf(5). slay π«Άβ¨
π¦ where this page comes from
- fedora 43: ramalama 0.25.0-1.fc43 Β· MIT
- fedora 44: ramalama 0.25.0-1.fc44 Β· MIT
- nixpkgs unstable: ramalama 0.25.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms