Artemis

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.

SettingPurpose
GOOGLE_API_KEYFor gemini- models via the Gemini API
OPENAI_API_KEYFor gpt-4o and other OpenAI models
ANTHROPIC_API_KEYFor Claude models
OPENROUTER_API_KEYFor OpenRouter (100+ models via one key)
OLLAMA_BASE_URLFor local Ollama inference (e.g. http://localhost:11434)
LMSTUDIO_BASE_URLFor 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:

SettingPurpose
VERTEX_AI_API_KEYDirect API key authentication
VERTEX_AI_PROJECTGCP project ID for project-based auth
VERTEX_AI_LOCATIONGCP 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:

SettingDefaultNotes
BASE_IP127.0.0.1Set 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:

SettingDefault
WEB_PORT4080
GATEWAY_PORT4081
WHATSAPP_PORT4082
CLASSIFIER_PORT4083

Channel Auth

For the platform-specific integrations:

SettingNotes
DISCORD_BOT_TOKENGrab this from the Discord Developer Portal
DISCORD_OWNER_IDYour personal Discord user ID. Without this, the bot refuses to talk.
TELEGRAM_BOT_TOKENGrab 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_IDFrom Google Cloud Console
GMAIL_CLIENT_SECRETAlso 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