Environment Variables Reference - Skill Seekers
May 31, 2026 · View on GitHub
Version: 3.7.0
Last Updated: 2026-02-16
Complete environment variable reference
Table of Contents
- Overview
- API Keys
- Platform Configuration
- LLM Provider Selection
- Paths and Directories
- Scraping Behavior
- Enhancement Settings
- GitHub Configuration
- Vector Database Settings
- Debug and Development
- MCP Server Settings
- Examples
Overview
Skill Seekers uses environment variables for:
- API authentication (Claude, Gemini, OpenAI, GitHub)
- Configuration paths
- Output directories
- Behavior customization
- Debug settings
Variables are read at runtime and override default settings.
API Keys
ANTHROPIC_API_KEY
Purpose: Claude AI API access for enhancement and upload.
Format: sk-ant-api03-...
Used by:
skill-seekers enhance(API mode)skill-seekers upload(Claude target)- AI enhancement features
Example:
export ANTHROPIC_API_KEY=sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Alternative: Use --api-key flag per command.
GOOGLE_API_KEY
Purpose: Google Gemini API access for upload.
Format: AIza...
Used by:
skill-seekers upload(Gemini target)
Example:
export GOOGLE_API_KEY=AIzaSyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
OPENAI_API_KEY
Purpose: OpenAI (and OpenAI-compatible) API access for enhancement, upload, and embeddings.
Format: sk-...
Used by:
skill-seekers create/scan/enhance(AI enhancement, API mode)skill-seekers upload(OpenAI target)- Embedding generation for vector DBs
Example:
export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Combine with
OPENAI_BASE_URL+OPENAI_MODELto route enhancement through any OpenAI-compatible provider (OpenRouter, Groq, Cerebras, Mistral, NVIDIA NIM). See LLM Provider Selection.
MOONSHOT_API_KEY
Purpose: Moonshot AI (Kimi) API access for enhancement (API mode).
Format: sk-...
Used by:
skill-seekers create/scan/enhance(enhancement, Kimi/Moonshot)
Example:
export MOONSHOT_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
GITHUB_TOKEN
Purpose: GitHub API authentication for higher rate limits, plus authoring community-registry submissions.
Format: ghp_... (personal access token) or github_pat_... (fine-grained)
Used by:
skill-seekers create(GitHub repos)skill-seekers create --config(unified multi-source)skill-seekers scan(local codebases)skill-seekers scan— required to submit AI-generated configs to the community registry (the scan itself runs without it; the publish prompt is just skipped with a hint)
Benefits:
- 5000 requests/hour vs 60 for unauthenticated
- Access to private repositories
- Higher GraphQL API limits
- Enables opening community-config GitHub issues from
scan
Example:
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Create token: https://github.com/settings/tokens
Platform Configuration
ANTHROPIC_BASE_URL
Purpose: Custom Claude API endpoint.
Default: https://api.anthropic.com
Use case: Proxy servers, enterprise deployments, regional endpoints.
Example:
export ANTHROPIC_BASE_URL=https://custom-api.example.com
OPENAI_BASE_URL
Purpose: Custom OpenAI-compatible API endpoint for enhancement.
Default: https://api.openai.com/v1
Use case: Any OpenAI-compatible provider — OpenRouter, Groq, Cerebras, Mistral, NVIDIA NIM, local servers (Ollama, vLLM, LM Studio), proxies.
Example:
export OPENAI_BASE_URL=https://openrouter.ai/api/v1
Read automatically by the OpenAI SDK. Pair with
OPENAI_API_KEYandOPENAI_MODEL.
LLM Provider Selection
The AI enhancement step (create, scan, enhance) supports multiple providers
through one abstraction. The provider is chosen by the first API key found, in this
order: ANTHROPIC_API_KEY → ANTHROPIC_AUTH_TOKEN → MOONSHOT_API_KEY →
GOOGLE_API_KEY → OPENAI_API_KEY. If none is set, it falls back to LOCAL agent
mode (--agent, no API key required — uses your Claude Pro / ChatGPT Plus subscription).
Any OpenAI-compatible provider (OpenRouter, Groq, Cerebras, Mistral, NVIDIA NIM)
export OPENAI_API_KEY="<provider key>"
export OPENAI_BASE_URL="https://api.groq.com/openai/v1" # provider endpoint
export OPENAI_MODEL="llama-3.3-70b-versatile" # a model that provider offers
skill-seekers create <source>
| Provider | OPENAI_BASE_URL |
|---|---|
| OpenRouter | https://openrouter.ai/api/v1 |
| Groq | https://api.groq.com/openai/v1 |
| Cerebras | https://api.cerebras.ai/v1 |
| Mistral | https://api.mistral.ai/v1 |
| NVIDIA NIM | https://integrate.api.nvidia.com/v1 |
Set
OPENAI_MODEL— the OpenAI default (gpt-4o) won't exist on other providers. Ensure no higher-priority key (e.g.ANTHROPIC_API_KEY) is set, or it wins.
Subscriptions instead of API credits (LOCAL mode)
skill-seekers create <source> --agent codex # ChatGPT Plus via Codex CLI
skill-seekers create <source> --agent claude # Claude Pro/Max via Claude Code
Paths and Directories
SKILL_SEEKERS_HOME
Purpose: Base directory for Skill Seekers data.
Default:
- Linux/macOS:
~/.config/skill-seekers/ - Windows:
%APPDATA%\skill-seekers\
Used for:
- Configuration files
- Workflow presets
- Cache data
- Checkpoints
Example:
export SKILL_SEEKERS_HOME=/opt/skill-seekers
SKILL_SEEKERS_OUTPUT
Purpose: Default output directory for skills.
Default: ./output/
Used by:
- All scraping commands
- Package output
- Skill generation
Example:
export SKILL_SEEKERS_OUTPUT=/var/skills/output
SKILL_SEEKERS_CONFIG_DIR
Purpose: Directory containing preset configs.
Default: configs/ (relative to working directory)
Example:
export SKILL_SEEKERS_CONFIG_DIR=/etc/skill-seekers/configs
Scraping Behavior
SKILL_SEEKERS_RATE_LIMIT
Purpose: Default rate limit for HTTP requests.
Default: 0.5 (seconds)
Unit: Seconds between requests
Example:
# More aggressive (faster)
export SKILL_SEEKERS_RATE_LIMIT=0.2
# More conservative (slower)
export SKILL_SEEKERS_RATE_LIMIT=1.0
Override: Use --rate-limit flag per command.
SKILL_SEEKERS_MAX_PAGES
Purpose: Default maximum pages to scrape.
Default: 500
Example:
export SKILL_SEEKERS_MAX_PAGES=1000
Override: Use --max-pages flag or config file.
SKILL_SEEKERS_WORKERS
Purpose: Default number of parallel workers.
Default: 1
Maximum: 10
Example:
export SKILL_SEEKERS_WORKERS=4
Override: Use --workers flag.
SKILL_SEEKERS_TIMEOUT
Purpose: HTTP request timeout.
Default: 30 (seconds)
Example:
# For slow servers
export SKILL_SEEKERS_TIMEOUT=60
SKILL_SEEKERS_USER_AGENT
Purpose: Custom User-Agent header.
Default: Skill-Seekers/3.7.0
Example:
export SKILL_SEEKERS_USER_AGENT="MyBot/1.0 (contact@example.com)"
Enhancement Settings
SKILL_SEEKER_AGENT
Purpose: Default local coding agent for enhancement and scan detection/generation.
Default: claude
Options: claude, codex, copilot, opencode, kimi, custom, plus IDE-mode aliases (cursor, windsurf, cline, continue)
Used by:
skill-seekers enhanceskill-seekers scan(overridable per-invocation via--agent)
Example:
export SKILL_SEEKER_AGENT=cursor
SKILL_SEEKER_AGENT_CMD
Purpose: Custom CLI command template for --agent custom (LOCAL mode).
Used by: skill-seekers create / scan / enhance when SKILL_SEEKER_AGENT=custom.
Example:
export SKILL_SEEKER_AGENT=custom
export SKILL_SEEKER_AGENT_CMD="my-llm-cli --prompt-file {prompt_file}"
SKILL_SEEKER_MODEL
Purpose: Global model override for API-mode enhancement (wins over all per-provider model vars below).
Example:
export SKILL_SEEKER_MODEL=llama-3.3-70b-versatile
Per-provider model overrides
Used only when SKILL_SEEKER_MODEL is unset. Each falls back to a per-provider default.
| Variable | Provider | Default (if unset) |
|---|---|---|
ANTHROPIC_MODEL | Anthropic | claude-sonnet-4-20250514 |
OPENAI_MODEL | OpenAI/-compatible | gpt-4o |
GOOGLE_MODEL | Gemini | gemini-2.0-flash |
MOONSHOT_MODEL | Moonshot/Kimi | moonshot-v1-auto |
export OPENAI_MODEL=llama-3.3-70b-versatile
SKILL_SEEKER_ENHANCE_TIMEOUT
Purpose: Timeout for AI enhancement operations (seconds).
Default: 2700 (45 minutes)
Special values: unlimited, none, or 0 map to a 24-hour ceiling.
Example:
# For large skills
export SKILL_SEEKER_ENHANCE_TIMEOUT=3600
# No practical limit
export SKILL_SEEKER_ENHANCE_TIMEOUT=unlimited
GitHub Configuration
GITHUB_API_URL
Purpose: Custom GitHub API endpoint.
Default: https://api.github.com
Use case: GitHub Enterprise Server.
Example:
export GITHUB_API_URL=https://github.company.com/api/v3
GITHUB_ENTERPRISE_TOKEN
Purpose: Separate token for GitHub Enterprise.
Use case: Different tokens for github.com vs enterprise.
Example:
export GITHUB_TOKEN=ghp_... # github.com
export GITHUB_ENTERPRISE_TOKEN=... # enterprise
Vector Database Settings
CHROMA_URL
Purpose: ChromaDB server URL.
Default: http://localhost:8000
Used by:
skill-seekers upload --target chromaexport_to_chromaMCP tool
Example:
export CHROMA_URL=http://chroma.example.com:8000
CHROMA_PERSIST_DIRECTORY
Purpose: Local directory for ChromaDB persistence.
Default: ./chroma_db/
Example:
export CHROMA_PERSIST_DIRECTORY=/var/lib/chroma
WEAVIATE_URL
Purpose: Weaviate server URL.
Default: http://localhost:8080
Used by:
skill-seekers upload --target weaviateexport_to_weaviateMCP tool
Example:
export WEAVIATE_URL=https://weaviate.example.com
WEAVIATE_API_KEY
Purpose: Weaviate API key for authentication.
Used by:
- Weaviate Cloud
- Authenticated Weaviate instances
Example:
export WEAVIATE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
QDRANT_URL
Purpose: Qdrant server URL.
Default: http://localhost:6333
Example:
export QDRANT_URL=http://qdrant.example.com:6333
QDRANT_API_KEY
Purpose: Qdrant API key for authentication.
Example:
export QDRANT_API_KEY=xxxxxxxxxxxxxxxx
Debug and Development
SKILL_SEEKERS_DEBUG
Purpose: Enable debug logging.
Values: 1, true, yes
Equivalent to: --verbose flag
Example:
export SKILL_SEEKERS_DEBUG=1
SKILL_SEEKERS_LOG_LEVEL
Purpose: Set logging level.
Default: INFO
Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
Example:
export SKILL_SEEKERS_LOG_LEVEL=DEBUG
SKILL_SEEKERS_LOG_FILE
Purpose: Log to file instead of stdout.
Example:
export SKILL_SEEKERS_LOG_FILE=/var/log/skill-seekers.log
SKILL_SEEKERS_CACHE_DIR
Purpose: Custom cache directory.
Default: ~/.cache/skill-seekers/
Example:
export SKILL_SEEKERS_CACHE_DIR=/tmp/skill-seekers-cache
SKILL_SEEKERS_NO_CACHE
Purpose: Disable caching.
Values: 1, true, yes
Example:
export SKILL_SEEKERS_NO_CACHE=1
MCP Server Settings
MCP_TRANSPORT
Purpose: Default MCP transport mode.
Default: stdio
Options: stdio, http
Example:
export MCP_TRANSPORT=http
Override: Use --transport flag.
MCP_PORT
Purpose: Default MCP HTTP port.
Default: 8765
Example:
export MCP_PORT=8080
Override: Use --port flag.
MCP_HOST
Purpose: Default MCP HTTP host.
Default: 127.0.0.1
Example:
export MCP_HOST=0.0.0.0
Override: Use --host flag.
Examples
Development Environment
# Debug mode
export SKILL_SEEKERS_DEBUG=1
export SKILL_SEEKERS_LOG_LEVEL=DEBUG
# Custom paths
export SKILL_SEEKERS_HOME=./.skill-seekers
export SKILL_SEEKERS_OUTPUT=./output
# Faster scraping for testing
export SKILL_SEEKERS_RATE_LIMIT=0.1
export SKILL_SEEKERS_MAX_PAGES=50
Production Environment
# API keys
export ANTHROPIC_API_KEY=sk-ant-...
export GITHUB_TOKEN=ghp_...
# Custom output directory
export SKILL_SEEKERS_OUTPUT=/var/www/skills
# Conservative scraping
export SKILL_SEEKERS_RATE_LIMIT=1.0
export SKILL_SEEKERS_WORKERS=2
# Logging
export SKILL_SEEKERS_LOG_FILE=/var/log/skill-seekers.log
export SKILL_SEEKERS_LOG_LEVEL=WARNING
CI/CD Environment
# Non-interactive
export SKILL_SEEKERS_LOG_LEVEL=ERROR
# API keys from secrets
export ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY_SECRET}
export GITHUB_TOKEN=${GITHUB_TOKEN_SECRET}
# Fresh runs (no cache)
export SKILL_SEEKERS_NO_CACHE=1
Multi-Platform Setup
# All API keys
export ANTHROPIC_API_KEY=sk-ant-...
export GOOGLE_API_KEY=AIza...
export OPENAI_API_KEY=sk-...
export GITHUB_TOKEN=ghp_...
# Vector databases
export CHROMA_URL=http://localhost:8000
export WEAVIATE_URL=http://localhost:8080
export WEAVIATE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Configuration File
Environment variables can also be set in a .env file:
# .env file
ANTHROPIC_API_KEY=sk-ant-...
GITHUB_TOKEN=ghp_...
SKILL_SEEKERS_OUTPUT=./output
SKILL_SEEKERS_RATE_LIMIT=0.5
Load with:
# Automatically loaded if python-dotenv is installed
# Or manually:
export $(cat .env | xargs)
Priority Order
Settings are applied in this order (later overrides earlier):
- Default values
- Environment variables
- Configuration file
- Command-line flags
Example:
# Default: rate_limit = 0.5
export SKILL_SEEKERS_RATE_LIMIT=1.0 # Env var overrides default
# Config file: rate_limit = 0.2 # Config overrides env
skill-seekers create --rate-limit 2.0 # Flag overrides all
Security Best Practices
Never commit API keys
# Add to .gitignore
echo ".env" >> .gitignore
echo "*.key" >> .gitignore
Use secret management
# macOS Keychain
export ANTHROPIC_API_KEY=$(security find-generic-password -s "anthropic-api" -w)
# Linux Secret Service (with secret-tool)
export ANTHROPIC_API_KEY=$(secret-tool lookup service anthropic)
# 1Password CLI
export ANTHROPIC_API_KEY=$(op read "op://vault/anthropic/credential")
File permissions
# Restrict .env file
chmod 600 .env
Troubleshooting
Variable not recognized
# Check if set
echo $ANTHROPIC_API_KEY
# Check in Python
python -c "import os; print(os.getenv('ANTHROPIC_API_KEY'))"
Priority issues
# See effective configuration
skill-seekers config --show
Path expansion
# Use full path or expand tilde
export SKILL_SEEKERS_HOME=$HOME/.skill-seekers
# NOT: ~/.skill-seekers (may not expand in all shells)
See Also
- CLI Reference - Command reference
- Config Format - JSON configuration
For platform-specific setup, see Installation Guide