Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Environment Variables

🌍 Configure ReasonKit through environment variables.

Environment variables provide a way to configure ReasonKit without modifying config files, making it ideal for CI/CD, Docker, and multi-environment setups.

API Keys

LLM Provider Keys

# Anthropic Claude (Recommended)
export ANTHROPIC_API_KEY="sk-ant-..."

# OpenAI
export OPENAI_API_KEY="sk-..."

# OpenRouter (300+ models)
export OPENROUTER_API_KEY="sk-or-..."

# Google Gemini
export GOOGLE_API_KEY="..."

# Local (Ollama) - no key needed
# Just ensure Ollama is running

Priority Order

If multiple keys are set, ReasonKit uses this priority:

  1. ANTHROPIC_API_KEY (Claude)
  2. OPENAI_API_KEY (GPT)
  3. OPENROUTER_API_KEY (OpenRouter)
  4. GOOGLE_API_KEY (Gemini)
  5. Local Ollama (if available)

Override with --provider:

rk-core think "question" --provider openai

Configuration Variables

Core Settings

# Default profile
export RK_PROFILE="balanced"

# Default provider
export RK_PROVIDER="anthropic"

# Default model
export RK_MODEL="claude-sonnet-4-20250514"

# Output format
export RK_OUTPUT="pretty"  # pretty, json, markdown

# Timeout (seconds)
export RK_TIMEOUT="180"

# Verbosity
export RK_VERBOSE="false"

Path Settings

# Config file location
export RK_CONFIG="$HOME/.config/reasonkit/config.toml"

# Cache directory
export RK_CACHE_DIR="$HOME/.cache/reasonkit"

# Log file location
export RK_LOG_FILE="$HOME/.local/share/reasonkit/reasonkit.log"

Feature Flags

# Enable/disable features
export RK_STREAMING="true"      # Stream output as it generates
export RK_CACHE="true"          # Cache responses
export RK_TELEMETRY="false"     # Anonymous usage stats
export RK_COLOR="auto"          # auto, always, never

Provider-Specific Variables

Anthropic (Claude)

export ANTHROPIC_API_KEY="sk-ant-..."
export ANTHROPIC_MODEL="claude-sonnet-4-20250514"
export ANTHROPIC_MAX_TOKENS="4096"

OpenAI

export OPENAI_API_KEY="sk-..."
export OPENAI_MODEL="gpt-4-turbo"
export OPENAI_ORG_ID="org-..."  # Optional
export OPENAI_BASE_URL="https://api.openai.com/v1"  # For proxies

OpenRouter

export OPENROUTER_API_KEY="sk-or-..."
export OPENROUTER_MODEL="anthropic/claude-sonnet-4"
export OPENROUTER_SITE_URL="https://yourapp.com"  # For rankings
export OPENROUTER_SITE_NAME="YourApp"

Ollama (Local)

export OLLAMA_HOST="http://localhost:11434"
export OLLAMA_MODEL="llama3.2"

Profile Variables

Override profile settings:

# GigaThink settings
export RK_GIGATHINK_PERSPECTIVES="15"
export RK_GIGATHINK_INCLUDE_CONTRARIAN="true"

# LaserLogic settings
export RK_LASERLOGIC_DEPTH="deep"
export RK_LASERLOGIC_FALLACY_DETECTION="true"

# ProofGuard settings
export RK_PROOFGUARD_SOURCES="5"
export RK_PROOFGUARD_REQUIRE_CITATION="true"

# BrutalHonesty settings
export RK_BRUTALHONESTY_SEVERITY="high"

Development Variables

# Debug mode
export RK_DEBUG="true"

# Log level
export RK_LOG_LEVEL="debug"  # trace, debug, info, warn, error

# Disable SSL verification (dev only!)
export RK_INSECURE="false"

# Mock responses (for testing)
export RK_MOCK="false"

Docker Usage

FROM rust:latest
RUN cargo install reasonkit-core

ENV ANTHROPIC_API_KEY=""
ENV RK_PROFILE="balanced"
ENV RK_OUTPUT="json"

ENTRYPOINT ["rk-core"]
docker run -e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
    reasonkit think "question"

CI/CD Examples

GitHub Actions

jobs:
  analyze:
    runs-on: ubuntu-latest
    env:
      ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
      RK_PROFILE: balanced
      RK_OUTPUT: json
    steps:
      - uses: actions/checkout@v4
      - name: Install ReasonKit
        run: cargo install reasonkit-core
      - name: Run Analysis
        run: rk-core think "Is this ready to ship?" > analysis.json

GitLab CI

analyze:
  variables:
    ANTHROPIC_API_KEY: $ANTHROPIC_API_KEY
    RK_PROFILE: balanced
  script:
    - cargo install reasonkit-core
    - rk-core think "question" --output json

Precedence Order

Settings are applied in this order (later overrides earlier):

  1. Built-in defaults
  2. Config file (~/.config/reasonkit/config.toml)
  3. Environment variables (RK_*)
  4. Command-line flags (--profile, etc.)