Environment Variables
llmist uses environment variables for provider authentication and configuration.
Provider API Keys
Section titled “Provider API Keys”Set these environment variables to enable provider auto-discovery:
# OpenAIexport OPENAI_API_KEY="sk-..."
# Anthropicexport ANTHROPIC_API_KEY="sk-ant-..."
# Google Geminiexport GEMINI_API_KEY="..."
# OpenRouter (400+ models via unified gateway)export OPENROUTER_API_KEY="sk-or-..."
# HuggingFace (free tier, serverless inference)export HF_TOKEN="hf_..."Auto-Discovery Behavior
Section titled “Auto-Discovery Behavior”When you create an agent without specifying a provider, llmist:
- Checks for API keys in environment variables
- Registers providers with valid keys
- Selects the appropriate provider based on model name
// Auto-discovers providers from environmentconst agent = LLMist.createAgent() .withModel('sonnet'); // Uses Anthropic if ANTHROPIC_API_KEY is setLogging Configuration
Section titled “Logging Configuration”| Variable | Description | Values |
|----------|-------------|--------|
| LLMIST_LOG_LEVEL | Logging verbosity | silly, trace, debug, info, warn, error, fatal |
| LLMIST_LOG_FILE | Write logs to a file instead of console | File path |
| LLMIST_LOG_RESET | Truncate log file on startup | true, false |
| LLMIST_LOG_TEE | Also write to stdout when file logging is active | true, false |
Example Logging Setup
Section titled “Example Logging Setup”# Enable debug loggingexport LLMIST_LOG_LEVEL="debug"
# Log to file AND stdout (useful for Docker/containers)export LLMIST_LOG_FILE="/tmp/agent.log"export LLMIST_LOG_TEE="true"CLI-Specific Flags
Section titled “CLI-Specific Flags”These can also be set via command-line flags:
| Flag | Environment Variable | Description |
|------|---------------------|-------------|
| --log-level | LLMIST_LOG_LEVEL | Set log level |
# Via flag npx @llmist/cli agent "Hello" --log-level debug
# Via environment LLMIST_LOG_LEVEL=debug npx @llmist/cli agent "Hello"Provider-Specific Variables
Section titled “Provider-Specific Variables”OpenAI
Section titled “OpenAI”| Variable | Description |
|----------|-------------|
| OPENAI_API_KEY | API key (required) |
| OPENAI_ORG_ID | Organization ID (optional) |
| OPENAI_BASE_URL | Custom API endpoint (optional) |
Anthropic
Section titled “Anthropic”| Variable | Description |
|----------|-------------|
| ANTHROPIC_API_KEY | API key (required) |
| ANTHROPIC_BASE_URL | Custom API endpoint (optional) |
Google Gemini
Section titled “Google Gemini”| Variable | Description |
|----------|-------------|
| GEMINI_API_KEY | API key (required) |
OpenRouter
Section titled “OpenRouter”| Variable | Description |
|----------|-------------|
| OPENROUTER_API_KEY | API key (required) |
| OPENROUTER_SITE_URL | Your app URL for analytics (optional) |
| OPENROUTER_APP_NAME | Your app name for analytics (optional) |
HuggingFace
Section titled “HuggingFace”Access thousands of open-source models via HuggingFace's serverless inference router.
| Variable | Description |
|----------|-------------|
| HF_TOKEN | HuggingFace access token (primary, required) |
| HUGGING_FACE_API_KEY | Fallback token if HF_TOKEN is not set (optional) |
| HF_ENDPOINT_URL | Custom inference endpoint URL (optional, for dedicated endpoints) |
# Standard serverless inference (router.huggingface.co)export HF_TOKEN="hf_..."
# Dedicated endpoint (overrides the default router URL)export HF_TOKEN="hf_..."export HF_ENDPOINT_URL="https://xxx.endpoints.huggingface.cloud"Best Practices
Section titled “Best Practices”- Never commit API keys - Use
.envfiles or secret managers - Use different keys per environment - Separate dev/staging/production
- Rotate keys regularly - Update keys periodically for security
Using .env Files
Section titled “Using .env Files”# .env (add to .gitignore!)OPENAI_API_KEY=sk-...ANTHROPIC_API_KEY=sk-ant-...Load with your preferred method:
- Node.js:
dotenvpackage - Bun: Built-in
.envsupport - Shell:
source .envorexport $(cat .env | xargs)