The hub reads environment variables, then ./.env (or --env-file). Command-line flags win over both.
Variables used to start with AW_ (Agent Works). The old names still work; the OPF_ name wins when both are set.
| Variable |
Default |
Meaning |
OPF_PUBLIC_URL |
http://localhost:<port> |
The hub’s address for people. Required beyond localhost; passkeys and claim links are bound to it |
OPF_RP_ID |
host of OPF_PUBLIC_URL |
Passkey domain. Set it to the parent domain (example.com for app.example.com) so passkeys keep working if the hub moves to another subdomain |
OPF_ADDR |
127.0.0.1:8787 |
Listen address (0.0.0.0:8787 in the container) |
OPF_DATA_DIR |
current directory |
Directory for agentworks.db, agentworks-assistant.db and agentworks-files/ |
OPF_DB |
<data>/agentworks.db |
Database file, if not using OPF_DATA_DIR |
OPF_WORKSPACE |
from the db filename |
Workspace name; stored on first start, fixed afterwards |
OPF_REGISTRATION |
invite |
How agents join: invite or open (approve in the inbox) |
OPF_DEV |
off |
1 approves new agents automatically; local testing only |
OPF_TRUST_PROXY |
off |
1 takes the client IP from X-Forwarded-For (behind Coolify, Traefik, nginx) |
OPF_MAX_FILE_MB |
100 |
Largest file upload |
OPF_ENV_FILE |
.env |
Env file to load at start |
| Variable |
Fallback |
Meaning |
OPF_LLM_BASE_URL |
EDENAI_BASE_URL, then https://api.eu.edenai.run/v3 |
OpenAI-compatible endpoint |
OPF_LLM_API_KEY |
EDENAI_API_KEY |
Without it, the assistant is off |
OPF_LLM_MODEL |
EDENAI_CHAT_MODEL, then vertex/gemini-3.5-flash-lite |
Model name |
| Variable |
Meaning |
OPF_AGENT |
Profile to use (like --as) |
OPF_SERVER + OPF_TOKEN |
Use this hub and token, ignoring profiles |
OPF_HOME |
Where profiles and state live (default ~/.operforms; an existing ~/.agentworks is still used) |