Configuration
Variables and model selection parameters.
Everything starts with the .env file in the project root. The gateway expects this file to exist before it will boot.
For the future I plan on adding a config.json to the existing data dir in ~/.artemis
API Keys
You only need to supply keys for the models you actually intend to use.
| Setting | Purpose |
|---|---|
GOOGLE_API_KEY | For gemini- models via the Gemini API |
OPENAI_API_KEY | For gpt-4o and other OpenAI models |
ANTHROPIC_API_KEY | For Claude models |
OPENROUTER_API_KEY | For OpenRouter (100+ models via one key) |
OLLAMA_BASE_URL | For local Ollama inference (e.g. http://localhost:11434) |
LMSTUDIO_BASE_URL | For local LM Studio (e.g. http://localhost:1234) |
I designed the routing layer to automatically fall back to whichever provider has a valid key configured, but you can pin a specific model from the CLI or Web UI if you prefer.
Vertex AI
Vertex AI (GCP-hosted Gemini) supports three authentication methods—use whichever fits your setup:
| Setting | Purpose |
|---|---|
VERTEX_AI_API_KEY | Direct API key authentication |
VERTEX_AI_PROJECT | GCP project ID for project-based auth |
VERTEX_AI_LOCATION | GCP region (defaults to us-central1) |
If none of these are set, the provider falls back to Application Default Credentials (ADC). This means gcloud auth application-default login or a service account attached to your environment is sufficient—no .env entry needed. Vertex AI models are always listed in /api/models regardless of which auth method you use.
Network Binding
By default all services bind to 127.0.0.1 (localhost only). To expose the gateway to your local network or a container network, set:
| Setting | Default | Notes |
|---|---|---|
BASE_IP | 127.0.0.1 | Set to 0.0.0.0 to listen on all interfaces |
This single variable is respected by the gateway, the WhatsApp internal API, Discord, and Gmail subprocesses.
Ports
If you run local dev servers, you'll eventually run into port collisions. You can override the defaults:
| Setting | Default |
|---|---|
WEB_PORT | 4080 |
GATEWAY_PORT | 4081 |
WHATSAPP_PORT | 4082 |
CLASSIFIER_PORT | 4083 |
Channel Auth
For the platform-specific integrations:
| Setting | Notes |
|---|---|
DISCORD_BOT_TOKEN | Grab this from the Discord Developer Portal |
DISCORD_OWNER_ID | Your personal Discord user ID. Without this, the bot refuses to talk. |
TELEGRAM_BOT_TOKEN | Grab this from Telegram's BotFather |
TELEGRAM_PROVIDER | (Optional) Overrides default provider for Telegram bot |
TELEGRAM_MODEL | (Optional) Overrides default model for Telegram bot |
GMAIL_CLIENT_ID | From Google Cloud Console |
GMAIL_CLIENT_SECRET | Also from Google |
Model Selection
Supported models:
gemini-2.5-pro/gemini-2.5-flash(Google Gemini)gemini-2.5-pro-preview-05-06/gemini-3.0-flash-preview(Vertex AI)gpt-4o/gpt-4o-mini(OpenAI)claude-sonnet-4-20250514(Anthropic)- Any Ollama model (e.g.,
qwen3:14b,llama3.3) - Any OpenRouter model slug (e.g.,
meta-llama/llama-3.3-70b-instruct)
For the full list of Vertex AI models, see the Inference Providers page.
Workspace Path
By default, Artemis stores workspace files in ~/.artemis/workspace/. This can be customized by setting the ARTEMIS_WORKSPACE environment variable:
ARTEMIS_WORKSPACE=/path/to/custom/workspace