The file is created with defaults the first time kabactl runs. On each start it is re-read and rewritten in canonical form, so keys added by a newer version appear with their defaults and you can edit them in place. A file that fails to parse is left untouched and defaults are used for that run. Restart the server after editing.
If you write the file by hand, it must contain jwt_exp_time, jwt_secret, cert_path, key_path, tls, and the [memory_options] and [adblock_options] tables. Every other section is optional and falls back to its defaults. The simplest route is to let kabactl create the file, then edit it.
Key
Default
Description
jwt_secret
random, 33 characters
Signs session tokens and the proxy credentials used by off-box clients. Generated on first run. Treat it as a secret.
jwt_exp_time
28800
Session lifetime in seconds (8 hours).
cert_path, key_path
<storage>/certs/kaba.cert, kaba.key
The TLS certificate and key the API serves. See certs.
cert_format_version
1
Managed by kabactl. When lower than the current format, certificates are regenerated on start.
headless
unset
true or false forces whether this node presents as headless. Unset, it is decided at runtime from whether a real user account exists.
Base model variant this node serves: e2b (about 2B effective parameters) or e4b (about 4B).
lora
unset
Adapter applied by default when a request does not name one.
accept_remote_inference
true
Let cluster peers run inference here.
accept_remote_training
true
Let cluster peers train here.
serve_remote_large_model
true
Serve the larger variant to peers that ask for it.
llama_max_ctx
unset
Upper bound on the context window, in tokens.
mmproj_on_demand
true
Load the model without the multimodal projector and attach it on the first image or audio request. false always attaches it, at a cost of several hundred MB per load.
inference_use_persona_block
true
Include the built-in persona in prompts.
inference_ground_with_retrieval
false
Retrieve related memories into every prompt.
default_lora_rank
16
Training default.
default_epochs
3
Training default.
default_peak_lr
0.0001
Training default.
default_min_records
200
Minimum memories required to train.
summary_cache_max_entries
0
Size of the summary cache.
cluster_min_unique_hostnames
50
Minimum distinct sites before memories are clustered for training.
cluster_min_embedding_coverage
0.3
Minimum share of memories with embeddings before clustering.