Skip to main content

Configuration Reference

Every configuration option, where it lives, and how to change it.


Config file location

ModePath
Linux user mode~/.hali/config.json
Linux service mode/var/lib/hali/config.json
macOS~/.hali/config.json
Windows%ProgramData%\Hali\config.json

The file is JSONC (JSON with comments). hali materializes it automatically on first run with all defaults.


Precedence


All configuration keys

streaming_hash

PropertyValue
Typeboolean
Defaulttrue
Env overrideENABLE_STREAMING_HASH
CLI keystreaming_hash

Hash file pieces concurrently during HuggingFace HTTP download. When enabled, piece hashes arrive precomputed — the daemon can start seeding immediately without a second read pass over the file. For a 70 GB model, this saves 1–3 minutes.

hali config set streaming_hash true

debug

PropertyValue
Typeboolean
Defaultfalse
Env override
CLI keydebug

Enable verbose daemon diagnostics. Logs LAN announcement accept/reject decisions, peer connection attempts, and piece transfer details. Useful for troubleshooting LAN visibility issues.

hali config set debug true

telemetry.enabled

PropertyValue
Typeboolean
Defaulttrue
Env override
CLI keytelemetry.enabled

Enable anonymous pull-event telemetry. When enabled, the daemon reports model downloads to the registry with your publisher key and signature. These reports feed trust scoring and search ranking. When disabled, manifests are generated but not submitted, and pull events are queued on disk but never sent.

hali config set telemetry.enabled true

Also controllable via:

hali telemetry enable
hali telemetry disable
hali telemetry status

See Telemetry Reference for what's collected.


telemetry.ingest_url

PropertyValue
Typestring (URL)
DefaultRegistry ingest endpoint
Env override
CLI keytelemetry.ingest_url

The backend URL for telemetry ingestion. Set to default to use the built-in registry URL, or specify a custom endpoint.

hali config set telemetry.ingest_url https://my-registry.example.com
hali config set telemetry.ingest_url default

models_dir

PropertyValue
Typestring (path)
DefaultPlatform default
Env overrideHALI_MODELS_DIR
CLI keymodels_dir

Custom model storage path. Overrides the default cache location.

PlatformDefault
Linux (user)~/.hali/cache/
Linux (service)/var/lib/hali/models/
Windows%ProgramData%\Hali\models\
hali config set models_dir /mnt/data/llama-models

lmstudio_models_dir

PropertyValue
Typestring (path)
DefaultAuto-detected
Env overrideLMSTUDIO_MODELS_DIR
CLI keylmstudio_models_dir

Path to LM Studio's models directory. Used by hali export lmstudio to know where to copy GGUFs.

hali config set lmstudio_models_dir /home/you/.lmstudio/models

ollama_models_dir

PropertyValue
Typestring (path)
DefaultAuto-detected
Env overrideOLLAMA_HOME
CLI keyollama_models_dir

Path to Ollama's models directory. Used by hali export ollama to know where to create manifests.

hali config set ollama_models_dir /home/you/.ollama/models

daemon_listen_addr

PropertyValue
Typestring
Default127.0.0.1
Options127.0.0.1, 0.0.0.0, default
Env override
CLI keydaemon_listen_addr

Controls which network interface the daemon's HTTP API (web dashboard) binds to.

ValueEffect
127.0.0.1Localhost only — dashboard only accessible from this machine (default)
0.0.0.0All interfaces — dashboard accessible from any machine on the LAN

On Linux, you can toggle this via hali service enable-lan / hali service disable-lan.

hali config set daemon_listen_addr 0.0.0.0
hali config set daemon_listen_addr default

max_upload_mbps

PropertyValue
Typeinteger
Default0 (unlimited)
Env override
CLI keymax_upload_mbps

Cap BitTorrent upload speed in megabits per second. 0 means no limit.

hali config set max_upload_mbps 50 # Cap at 50 Mbps
hali config set max_upload_mbps 0 # Unlimited

max_download_mbps

PropertyValue
Typeinteger
Default0 (unlimited)
Env override
CLI keymax_download_mbps

Cap BitTorrent download speed in megabits per second. 0 means no limit. Does not affect HuggingFace HTTP downloads.

hali config set max_download_mbps 200 # Cap at 200 Mbps
hali config set max_download_mbps 0 # Unlimited

lan.hmac_enabled

PropertyValue
Typeboolean
Defaultfalse
Env override
CLI keylan.hmac_enabled

Enables HMAC-SHA256 authentication on LAN multicast announcements. When enabled, every announcement is signed with a shared secret. Machines without the matching secret cannot inject fake announcements.

hali config set lan.hmac_enabled true

lan.hmac_shared_secret

PropertyValue
Typestring (64-char hex)
DefaultAuto-generated (<DataDir>/lan.secret)
Env override
CLI keylan.hmac_shared_secret

The shared secret used for LAN HMAC authentication. Each machine auto-generates a random secret on first run. For LAN sharing to work with HMAC enabled, all machines must use the same secret. Copy the lan.secret file or set a manual hex key.

hali config set lan.hmac_shared_secret 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
hali config set lan.hmac_shared_secret default # Use auto-generated secret

Environment variables

Precedence: env vars > config.json > defaults

VariableOverrides
HALI_MODELS_DIRconfig.json: models_dir
ENABLE_STREAMING_HASHconfig.json: streaming_hash
LMSTUDIO_MODELS_DIRconfig.json: lmstudio_models_dir
OLLAMA_HOMEconfig.json: ollama_models_dir

Linux/macOS

export HALI_MODELS_DIR="/mnt/data/llama-models"
export ENABLE_STREAMING_HASH="true"
export LMSTUDIO_MODELS_DIR="/home/you/.lmstudio/models"
export OLLAMA_HOME="/home/you/.ollama"

Add to ~/.bashrc or ~/.zshrc for persistence.

Windows

$env:HALI_MODELS_DIR = "D:\Models\Llama"
$env:ENABLE_STREAMING_HASH = "true"
$env:LMSTUDIO_MODELS_DIR = "C:\Users\you\.lmstudio\models"
$env:OLLAMA_HOME = "C:\Users\you\.ollama"

Set permanently via System Properties → Environment Variables.


Example config file

~/.hali/config.json
{
"streaming_hash": true,
"debug": false,
"telemetry_enabled": true,
"registry_ingest_url": "https://registry.hali.dev",
"models_dir": "/mnt/data/llama-models",
"lmstudio_models_dir": "/home/you/.lmstudio/models",
"ollama_models_dir": "/home/you/.ollama/models",
"daemon_listen_addr": "127.0.0.1",
"max_upload_mbps": 0,
"max_download_mbps": 0,
"lan_hmac_enabled": false,
"lan_hmac_shared_secret": ""
}