Environment variables

Every variable both packages read.

Every variable either package reads. None is required to start — the defaults resolve to something local that works.

The two packages read different names, and neither reads the other's. Setting only one pair leaves the other on its default, quietly.

Model endpoint

Runspace

VariableDefaultMeaning
AI_BASE_URLhttps://api.openai.com/v1Any OpenAI-compatible endpoint
AI_API_KEYKey for the above
CODEX_MODELgpt-5.4-codexModel the Codex vision backend asks for

Agentino

VariableDefaultMeaning
AGENTINO_BASE_URLhttps://api.openai.com/v1Any OpenAI-compatible endpoint
AGENTINO_API_KEYKey for the above
AGENTINO_PROVIDERdetected from the URLopenai, openai-codex or anthropic
ANTHROPIC_API_KEY · ANTHROPIC_SETUP_TOKENKey fallbacks, tried before the OpenAI one
OPENAI_API_KEYKey fallback
AGENTINO_CODEX_REASONING_EFFORTCaps reasoning effort on Codex models
AGENTINO_LLM_TRACEoffWrites the raw request and response to disk

OPENAI_BASE_URL is not read. Only AGENTINO_BASE_URL selects the endpoint. After the key variables, agentino reads ~/.agentino/auth.json, then ~/.codex/auth.json — which is why an agent can reach a model on a machine with nothing set.

Storage

VariableDefaultMeaning
STORE_BACKENDfilefile, memory or supabase
STORE_FILE_ROOTproject-localWhere the file store writes
DATA_DIRproject-localFallback root for the above
STORAGE_BACKENDlocalFile storage: local or supabase
STORAGE_LOCAL_ROOT · FILE_STORAGE_ROOTproject-localWhere uploads land
STORAGE_SUPABASE_BUCKETBucket name when storage is Supabase
MESSAGING_DB_PATH.runspace/messaging.sqliteChannels and messages, when Supabase is not configured
SUPABASE_URL · SUPABASE_KEYBoth required together, or the SQLite path is used
SUPABASE_SERVICE_KEYService-role key, where one is needed
APP_MODELegacy shortcut: sandbox flips the store to file

Messaging goes to SQLite unless both Supabase variables are set. Setting one without the other keeps the SQLite path, deliberately — a half-configured database should not half-work.

Redis is available as a session store but is selected in code (RedisSessionStore(redis_url=...)), not by an environment variable.

Vision, embeddings and speech

VariableDefaultMeaning
VISION_BACKENDfixturecodex or fixture
VISION_API_KEYCredential for the vision backend
VISION_FIXTURES_DIRproject-localScripted responses for the fixture backend
EMBEDDINGS_BACKENDfixtureopenai or fixture
EMBEDDINGS_BASE_URL · EMBEDDINGS_API_KEYEndpoint and key
EMBEDDINGS_MODEL · EMBEDDINGS_DIMENSIONSModel name and vector width
AGENTINO_EMBEDDING_URL · _KEY · _MODELAgentino's own embedding settings
AGENTINO_STT_BASE_URL · _API_KEY · _MODELSpeech-to-text

Knowledge retrieval

VariableDefaultMeaning
AGENTINO_TOP_K5How many passages to return
AGENTINO_MIN_SCOREFloor below which a match is discarded
AGENTINO_DENSE_WEIGHTBalance between TF-IDF and dense scores
AGENTINO_LANGUAGE_BOOSTWeight for matching the query's language

Workspace and tenancy

VariableDefaultMeaning
WORKSPACE_YMLPath to the workspace file, when not given as an argument
TENANT_IDthe workspace directory's nameMust match, or the registry cannot resolve it
WORKSPACE_TENANTS_ROOTWhere tenant directories live
WORKSPACE_FILES_DIR · WORKSPACE_MEMORY_ROOTproject-localPer-tenant files and agent memory
WORKSPACE_PUBLIC_URLBase URL used when linking to an attachment
WORKSPACE_WRITE_DISABLEDoffRead-only mode
HOST · PORT · LOG_LEVEL0.0.0.0 · 8000 · infoUvicorn, when serving directly

Channels

VariableDefaultMeaning
TELEGRAM_BOT_TOKENBot credential
TELEGRAM_WEBHOOK_SECRETShared secret when using webhooks rather than polling
TRANSPORT_BACKENDinboxtelegram, or a file inbox for replaying a frozen conversation
TRANSPORT_INBOX_DIR · INBOX_DIRproject-localWhere the file transport reads

Tools and agents

VariableDefaultMeaning
AGENTINO_PROJECT_DIRcwdRoot the file tools, coder and knowledge base work in
AGENTINO_PROJECT_DIFF · AGENTINO_PROJECT_STATUSOverride how project state is reported
AGENTINO_CONFIG_DIR · AGENTINO_FILES_DIRproject-localConfig and file roots
AGENTINO_SHELL_TIMEOUTSeconds before a shell tool is killed
BRAVE_API_KEY · OPENCLAW_BRAVE_API_KEYWeb search
GROQ_API_KEYGroq, where a tool uses it
CRAWLER_MODELModel the crawl helpers ask for
OPENCLAW_PROFILE · OPENCLAW_TIMEOUT_Sdefault · —Settings for the OpenClaw runtime
RUNSPACE_CLI_TIMEOUTSeconds before a CLI runtime is killed
RUNSPACE_TOOL_USAGE_PATHWhere tool-usage counts are written
DEMO_TODAYFreezes "today" so a demo reads the same tomorrow

A note on naming

There are no deployment-specific variable names in either package. If you need one, put it in your YAML as ${YOUR_NAME} and let interpolation carry it — the library should not know what your deployments are called.