Skip to content

Configuration

Jason L. West edited this page Feb 3, 2026 · 2 revisions

Configuration

All configuration is done through environment variables. Copy the example files and edit as needed:

cp .env.example .env                    # Core agent
cp .env.swarm.example .env.swarm        # Swarm system

Core Agent

Variable Default Description
NEBULUS_BASE_URL http://localhost:5000/v1 LLM server URL
NEBULUS_API_KEY admin API key for LLM server
NEBULUS_MODEL Meta-Llama-3.1-8B-Instruct-exl2-8_0 Model name
NEBULUS_TIMEOUT 300 Request timeout in seconds
NEBULUS_STREAMING true Enable streaming responses
COMPOSE_PROJECT_NAME nebulus-atom Docker Compose project name

Slack Integration

Variable Default Description
SLACK_BOT_TOKEN - Slack Bot OAuth Token (xoxb-...)
SLACK_APP_TOKEN - Slack App-Level Token for Socket Mode (xapp-...)
SLACK_CHANNEL_ID - Channel ID to monitor

Setting Up Slack

  1. Create a Slack App at api.slack.com/apps
  2. Enable Socket Mode and generate an App-Level Token
  3. Add Bot Token scopes: chat:write, channels:read, channels:history
  4. Install app to workspace
  5. Copy the Bot Token and App Token to your .env
  6. Invite the bot to your channel

GitHub Integration

Variable Default Description
GITHUB_TOKEN - Personal Access Token
GITHUB_WATCHED_REPOS - Comma-separated repos (e.g., owner/repo1,owner/repo2)
GITHUB_DEFAULT_REPO - Default repository for Slack commands

Required Token Scopes

  • repo - Full repository access
  • read:org - Read org membership (for private repos)

Minion Configuration

Variable Default Description
MAX_CONCURRENT_MINIONS 3 Maximum concurrent minion containers
MINION_TIMEOUT_MINUTES 30 Minion timeout before being killed

LLM Backend (Minions)

Variable Default Description
NEBULUS_BASE_URL http://localhost:5000/v1 LLM server URL for minions
NEBULUS_MODEL qwen3-coder-30b Model for minion work
NEBULUS_TIMEOUT 600 LLM request timeout
NEBULUS_STREAMING false Enable streaming

Overlord LLM (Command Parsing)

Variable Default Description
OVERLORD_LLM_ENABLED true Enable LLM-powered command parsing
OVERLORD_LLM_BASE_URL http://localhost:5000/v1 LLM server for Overlord
OVERLORD_LLM_MODEL llama-3.1-8b Small model for fast parsing
OVERLORD_LLM_TIMEOUT 5.0 Parsing timeout (seconds)
OVERLORD_LLM_CONFIDENCE 0.7 Minimum confidence threshold
OVERLORD_LLM_CONTEXT_MAX 10 Max context entries per channel
OVERLORD_LLM_CONTEXT_TTL 30 Context TTL in minutes

Model Routing

Variable Default Description
ROUTING_ENABLED false Enable multi-LLM routing
ROUTING_COMPLEXITY_THRESHOLD 5 Score threshold (0-10) for heavy tier
ROUTING_DEFAULT_TIER heavy Fallback tier when routing fails
ROUTING_MODELS - JSON string with model profiles (see below)

Model Profiles JSON

ROUTING_MODELS='{
  "light": {
    "name": "llama-3.1-8b",
    "base_url": "http://localhost:5000/v1",
    "timeout": 300
  },
  "heavy": {
    "name": "qwen3-coder-30b",
    "base_url": "http://gpu-server:8080/v1",
    "timeout": 600
  }
}'

See Model Router for details.

Cron Configuration

Variable Default Description
CRON_ENABLED true Enable cron-triggered queue sweeps
CRON_SCHEDULE 0 2 * * * Cron expression (default: 2 AM daily)

PR Reviewer

Variable Default Description
REVIEWER_ENABLED true Enable automated PR review
REVIEWER_AUTO_REVIEW true Auto-review minion PRs
REVIEWER_AUTO_MERGE false Auto-merge approved PRs
REVIEWER_MERGE_METHOD squash Merge method (squash/merge/rebase)
REVIEWER_MIN_CONFIDENCE 0.8 Minimum confidence to approve

Overlord Settings

Variable Default Description
OVERLORD_STATE_DB /var/lib/overlord/state.db SQLite state database path
OVERLORD_HEALTH_PORT 8080 Health check / API port

Logging

Variable Default Description
LOG_LEVEL INFO Log level (DEBUG, INFO, WARNING, ERROR)
LOG_FORMAT console Output format (console or json)
LOG_FILE - Optional log file path

Clone this wiki locally