Files
loki/docs/ENVIRONMENT-VARIABLES.md
Alex Clarke 66801b5d07
CI / All (ubuntu-latest) (push) Failing after 5m29s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
feat: Added an environment variable that lets users bypass guard operations in bash scripts. This is useful for agent routing
2026-01-23 14:18:52 -07:00

9.3 KiB

Environment Variables

Loki is designed to be highly dynamic and customizable. As a result, Loki utilizes a number of environment variables that can be used to modify its behavior at runtime without needing to modify the existing configuration files.

Loki also supports defining environment variables via a .env file in the Loki configuration directory. This directory varies between systems, so you can find the location of your configuration directory using the following command:

loki --info | grep 'config_dir' | awk '{print $2}'

All configuration items in the global config file have environment variables that can be overridden at runtime. To see all configuration options and more thorough descriptions, refer to the example config file.

Below are the most commonly used configuration settings and their corresponding environment variables:

Setting Environment Variable
model LOKI_MODEL
temperature LOKI_TEMPERATURE
top_p LOKI_TOP_P
stream LOKI_STREAM
save LOKI_SAVE
editor LOKI_EDITOR
wrap LOKI_WRAP
wrap_code LOKI_WRAP_CODE
save_session LOKI_SAVE_SESSION
compression_threshold LOKI_COMPRESSION_THRESHOLD
function_calling_support LOKI_FUNCTION_CALLING_SUPPORT
enabled_tools LOKI_ENABLED_TOOLS
mcp_server_support LOKI_MCP_SERVER_SUPPORT
enabled_mcp_servers LOKI_ENABLED_MCP_SERVERS
rag_embedding_model LOKI_RAG_EMBEDDING_MODEL
rag_reranker_model LOKI_RAG_RERANKER_MODEL
rag_top_k LOKI_RAG_TOP_K
rag_chunk_size LOKI_RAG_CHUNK_SIZE
rag_chunk_overlap LOKI_RAG_CHUNK_OVERLAP
highlight LOKI_HIGHLIGHT
theme LOKI_THEME
serve_addr LOKI_SERVE_ADDR
user_agent LOKI_USER_AGENT
save_shell_history LOKI_SAVE_SHELL_HISTORY
sync_models_url LOKI_SYNC_MODELS_URL

The following environment variables are available for clients in Loki:

Environment Variable Description
{client}_API_KEY For clients that require an API key, you can define the keys either through environment variables or
using the vault. The variables are named after the client to which they apply;
e.g. OPENAI_API_KEY, GEMINI_API_KEY, etc.
LOKI_PLATFORM Combine with {client}_API_KEY to run Loki without a configuration file.
This variable is ignored if a configuration file exists.
LOKI_PATCH_{client}_CHAT_COMPLETIONS Patch chat completion requests to models on the corresponding client; Can modify the URL, body,
or headers.
LOKI_SHELL Specify the shell that Loki should be using when executing commands

You can also customize the files and directories that Loki loads its configuration files from:

Environment Variable Description Default Value
LOKI_CONFIG_DIR Customize the location of the Loki configuration directory. <user-config-dir>/loki
LOKI_ENV_FILE Customize the location of the .env file to load at startup. <loki-config-dir>/.env
LOKI_CONFIG_FILE Customize the location of the global config.yaml configuration file. <loki-config-dir>/config.yaml
LOKI_ROLES_DIR Customize the location of the roles directory. <loki-config-dir>/roles
LOKI_SESSIONS_DIR Customize the location of the sessions directory. <loki-config-dir>/sessions
LOKI_RAGS_DIR Customize the location of the rags directory. <loki-config-dir>/rags
LOKI_FUNCTIONS_DIR Customize the location of the functions directory. <loki-config-dir>/functions

You can also customize the location of full agent configurations using the following environment variables:

Environment Variable Description
<AGENT_NAME>_CONFIG_FILE Customize the location of the agent's configuration file; e.g. SQL_CONFIG_FILE
<AGENT_NAME>_MODEL Customize the model used for the agent; e.g SQL_MODEL
<AGENT_NAME>_TEMPERATURE Customize the temperature used for the agent; e.g. SQL_TEMPERATURE
<AGENT_NAME>_TOP_P Customize the top_p used for the agent; e.g. SQL_TOP_P
<AGENT_NAME>_GLOBAL_TOOLS Customize the global_tools that are enabled for the agent (a JSON string array); e.g. SQL_GLOBAL_TOOLS
<AGENT_NAME>_MCP_SERVERS Customize the mcp_servers that are enabled for the agent (a JSON string array); e.g. SQL_MCP_SERVERS
<AGENT_NAME>_AGENT_SESSION Customize the agent_session used with the agent; e.g. SQL_SESSION
<AGENT_NAME>_INSTRUCTIONS Customize the instructions for the agent; e.g. SQL_INSTRUCTIONS
<AGENT_NAME>_VARIABLES Customize the variables used for the agent (in JSON format of [{"key1": "value1", "key2": "value2"}]);
e.g. SQL_VARIABLES

The following variables can be used to change the log level of Loki or the location of the log file:

Environment Variable Description Default Value
LOKI_LOG_LEVEL Customize the log level of Loki INFO
LOKI_LOG_FILE Customize the location of the Loki log file <user-cache-dir>/loki/loki.log

Pro-Tip: You can always tail the Loki logs using the --tail-logs flag. If you need to disable color output, you can also pass the --disable-log-colors flag as well.

Miscellaneous Variables

Environment Variable Description Default Value
AUTO_CONFIRM Bypass all guard_* checks in the bash prompt helpers; useful for agent composition and routing