Configuration

Space Settings

Navigate to Space Settings (gear icon in the sidebar) to configure:

Agent

  • Model: Which Claude model powers the agent (e.g., claude-sonnet-4-6)
  • Temperature: Creativity level (0.0 = deterministic, 1.0 = creative)
  • Identity / Name: Custom agent persona and display name
  • Custom Instructions: Additional context injected into every agent system prompt
  • Tier 1: Toggle the lightweight fast agent on/off for web and channel contexts

Features

Enable or disable sections per space:

  • Projects — Project tracking and management
  • Activity — Cross-channel activity feed
  • Automations — Scheduled and event-triggered workflows
  • Skills — Reusable agent knowledge base

Channels

Add credentials for each external service. Each channel requires:

  1. API credentials — Tokens, keys, or secrets (stored encrypted)
  2. Webhook secret — Auto-generated, used to validate incoming events

Example — connecting GitHub:

  1. Go to Space Settings > Channels > GitHub
  2. Enter your GitHub Personal Access Token (needs repo, workflow, pull-request scopes)
  3. Copy the webhook URL shown
  4. In GitHub repo settings, add a webhook pointing to that URL with the displayed secret

Webhooks

Register these URLs in your external services to receive events:

ServiceWebhook URLEvents
GitHubhttps://yourhost/webhooks/githubPull requests, issues, comments, pushes
Linearhttps://yourhost/webhooks/linearIssues, comments
Sentryhttps://yourhost/webhooks/sentryIssue alerts
Teamshttps://yourhost/webhooks/teamsChannel messages
Telegramhttps://yourhost/webhooks/telegramMessages, voice notes

Webhook authentication varies by service — GitHub uses HMAC signatures, Linear uses JWT, Telegram uses signed requests. Themis handles validation automatically via WebhookSpaceResolver.

Admin Settings

Global settings available at /admin/settings (admin users only):

  • Model configuration — Map short model names to full API model IDs
  • Default temperature — Global fallback for agent creativity
  • Cost tracking — Cumulative API spend across providers

Environment Variables

Per-space settings take precedence, but these env vars provide instance-wide defaults:

VariablePurposeDefault
THEMIS_BOT_LOGINSComma-separated GitHub usernames that identify the bot (for self-mention filtering).themis-bot
THEMIS_BOT_NAMEGit author name for code generation commits.first configured bot login
THEMIS_BOT_EMAILGit author email for code generation commits.themis-bot@users.noreply.github.com
THEMIS_LINEAR_ORG_SLUGLinear org slug used to build issue URLs.(none — Linear links omitted if unset)
THEMIS_LINEAR_BOT_NAMESComma-separated Linear display names / email fragments used to detect the bot.agent display name
THEMIS_DOCS_URLTarget for the sidebar Docs link.https://github.com/themis-ai/themis
ALLOW_PASSWORD_LOGINExpose the email/password login form on the sign-in page alongside Google OAuth. Enabled by default in docker-compose.yml so the seeded admin can sign in.false
METABASE_MCP_COMMANDOverride path to the Metabase MCP server binary.metabase-server
LANGFUSE_PUBLIC_KEYEnables OpenTelemetry tracing to Langfuse when set.(disabled)
API_JOB_THREADS / API_JOB_PROCESSESDedicated worker pool sizing for the api Solid Queue queue.3 / 1

Useful Commands

# Development
bin/dev                                    # Start all services
bin/rails console                          # Interactive Rails shell
bin/rails db:migrate                       # Run pending migrations
bundle exec rubocop -a                     # Auto-fix lint issues

# Testing
bin/rails test                             # Run all tests
bin/rails test test/path/to/file.rb:42     # Single test at line

# Data
bin/rails support:sync                     # Sync config-as-code automations

# Production (Kamal)
kamal deploy                               # Deploy to production
kamal app exec -i --reuse 'bin/rails console'  # Production console
kamal app logs -f                          # Stream logs