Key Generation

The router uses Argon2id-hashed keys for authentication — no plaintext secrets are stored.

# Print keys to stdout (for manual setup)
auxot-router setup

# Write keys to .env file
auxot-router setup --write-env

# Print as Fly.io secrets (fly secrets set format)
auxot-router setup --fly

# Print CLI worker configuration
auxot-router setup --cli --model opus

Required Environment Variables

VariableDescription
AUXOT_ADMIN_KEY_HASHArgon2id hash of the GPU/worker registration key (adm_xxx)
AUXOT_API_KEY_HASHArgon2id hash of the API key for callers (rtr_xxx)

Both hashes are generated by auxot-router setup. Never store the raw keys in the environment — only the hashes.


Model Policy

VariableDefaultDescription
AUXOT_MODELQwen3.5-35B-A3BModel name from the embedded registry
AUXOT_QUANTIZATION(auto-selected)Quantization level (e.g. Q4_K_S, Q8_0). Auto-selected based on available VRAM if omitted
AUXOT_CTX_SIZE131072Context window size in tokens
AUXOT_MAX_PARALLEL2Concurrent inference jobs per GPU worker

Optional Variables

VariableDescription
AUXOT_REDIS_URLExternal Redis connection string. Leave empty to use embedded miniredis
AUXOT_TOOLS_KEY_HASHArgon2id hash of the tools worker key. Required to enable tools workers
AUXOT_ALLOWED_TOOLSComma-separated list of permitted tools (e.g. code_executor,web_search). Empty = all
AUXOT_PORTHTTP port (default: 8080)
AUXOT_HOSTBind address (default: 0.0.0.0)
AUXOT_JOB_TIMEOUTMax inference job duration (default: 5m)
AUXOT_LOG_LEVELLog verbosity: debug, info, warn, error (default: info)

Per-Tool Credentials

Tools workers read credentials from environment variables using the pattern AUXOT_TOOLS_{TOOL}_{VAR}:

# Brave Search
AUXOT_TOOLS_WEB_SEARCH__BRAVE_SEARCH_API_KEY=BSA...

# Any tool credential follows the same pattern
AUXOT_TOOLS_{TOOL_NAME}__{CREDENTIAL_NAME}=value

Double underscores (__) separate the tool name from the credential name because tool names themselves may contain underscores.