Daily Vibe

Configuration

Configure Daily Vibe with your preferred LLM providers and settings

Configuration

Daily Vibe uses cosmiconfig for flexible configuration management. You can configure it through command-line options, configuration files, or environment variables.

Configuration Methods

Daily Vibe automatically loads configuration from the following sources (in order of preference):

  1. Command-line arguments
  2. Environment variables
  3. Configuration files
  4. Default values

Configuration Files

Daily Vibe searches for configuration in these files:

  • package.json (under dailyVibe property)
  • .dailyviberc.json
  • .dailyviberc.js
  • dailyvibe.config.js
  • .config/daily-vibe.json

LLM Provider Configuration

OpenAI Configuration

# Basic OpenAI setup
daily-vibe config set --provider openai --api-key sk-proj-your-api-key

# With custom model
daily-vibe config set --provider openai --api-key sk-proj-your-api-key --model gpt-4-turbo

# View current configuration
daily-vibe config set --show
.dailyviberc.json
{
  "llm": {
    "provider": "openai",
    "apiKey": "sk-proj-your-api-key",
    "model": "gpt-4",
    "baseUrl": "https://api.openai.com/v1"
  }
}
export DAILY_VIBE_LLM_PROVIDER=openai
export DAILY_VIBE_LLM_API_KEY=sk-proj-your-api-key
export DAILY_VIBE_LLM_MODEL=gpt-4

Anthropic Claude Configuration

# Basic Claude setup
daily-vibe config set --provider anthropic --api-key sk-ant-your-api-key

# With specific model
daily-vibe config set --provider anthropic --api-key sk-ant-your-api-key --model claude-3-sonnet-20240229
.dailyviberc.json
{
  "llm": {
    "provider": "anthropic",
    "apiKey": "sk-ant-your-api-key",
    "model": "claude-3-sonnet-20240229"
  }
}
export DAILY_VIBE_LLM_PROVIDER=anthropic
export DAILY_VIBE_LLM_API_KEY=sk-ant-your-api-key
export DAILY_VIBE_LLM_MODEL=claude-3-sonnet-20240229

Generic OpenAI-Compatible APIs

Daily Vibe supports any OpenAI-compatible API, such as DashScope, DeepSeek, or local deployments.

# Alibaba Cloud DashScope
daily-vibe config set \
  --provider generic \
  --base-url https://dashscope.aliyuncs.com/compatible-mode/v1 \
  --api-key sk-your-dashscope-key \
  --model qwen-plus
# DeepSeek API
daily-vibe config set \
  --provider generic \
  --base-url https://api.deepseek.com \
  --api-key sk-your-deepseek-key \
  --model deepseek-coder
# Local OpenAI-compatible server
daily-vibe config set \
  --provider generic \
  --base-url http://localhost:11434/v1 \
  --api-key local-key \
  --model llama2

Complete Configuration Reference

Example Configuration File

.dailyviberc.json
{
  "llm": {
    "provider": "openai",
    "apiKey": "sk-proj-your-api-key",
    "model": "gpt-4",
    "baseUrl": "https://api.openai.com/v1",
    "temperature": 0.1,
    "maxTokens": 4096
  },
  "timezone": "Asia/Shanghai",
  "outputDir": "./reports",
  "redact": {
    "enabled": true,
    "patterns": [
      "sk-[a-zA-Z0-9]{20,}",
      "ghp_[a-zA-Z0-9]{36}",
      "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}",
      "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b"
    ],
    "replacement": "[REDACTED]"
  },
  "dataSources": {
    "claudeCode": {
      "enabled": true,
      "paths": ["~/.claude/projects/**/*.jsonl"]
    },
    "codexCli": {
      "enabled": true,
      "sessionPaths": ["~/.codex/sessions/**/*.jsonl"],
      "historyPaths": ["~/.codex/history/**/*.jsonl"]
    },
    "specStory": {
      "enabled": true,
      "paths": ["**/.specstory/history/**"]
    },
    "vscode": {
      "enabled": true
    }
  },
  "analysis": {
    "chunkSize": 10000,
    "parallelism": 4,
    "includeSystemMessages": false,
    "minSessionDuration": 300
  }
}

Configuration Options

LLM Settings

OptionTypeDescriptionDefault
providerstringLLM provider (openai, anthropic, generic)openai
apiKeystringAPI key for the provider-
modelstringModel name to usegpt-4
baseUrlstringBase URL for OpenAI-compatible APIs-
temperaturenumberSampling temperature (0-1)0.1
maxTokensnumberMaximum tokens per request4096

General Settings

OptionTypeDescriptionDefault
timezonestringTimezone for date filteringSystem timezone
outputDirstringDefault output directory./reports

Data Redaction

OptionTypeDescriptionDefault
redact.enabledbooleanEnable/disable redactiontrue
redact.patternsarrayRegex patterns to redactBuilt-in patterns
redact.replacementstringReplacement text[REDACTED]

Data Sources

OptionTypeDescriptionDefault
dataSources.claudeCode.enabledbooleanEnable Claude Code data sourcetrue
dataSources.codexCli.enabledbooleanEnable Codex CLI data sourcetrue
dataSources.specStory.enabledbooleanEnable SpecStory data sourcetrue
dataSources.vscode.enabledbooleanEnable VS Code data sourcetrue

Analysis Settings

OptionTypeDescriptionDefault
analysis.chunkSizenumberText chunk size for processing10000
analysis.parallelismnumberNumber of parallel analysis tasks4
analysis.includeSystemMessagesbooleanInclude system messages in analysisfalse
analysis.minSessionDurationnumberMinimum session duration in seconds300

Environment Variables

All configuration options can be set via environment variables using the prefix DAILY_VIBE_:

# LLM configuration
export DAILY_VIBE_LLM_PROVIDER=openai
export DAILY_VIBE_LLM_API_KEY=sk-proj-your-key
export DAILY_VIBE_LLM_MODEL=gpt-4
export DAILY_VIBE_LLM_BASE_URL=https://api.openai.com/v1

# General settings
export DAILY_VIBE_TIMEZONE=America/New_York
export DAILY_VIBE_OUTPUT_DIR=./my-reports

# Redaction
export DAILY_VIBE_REDACT_ENABLED=true
export DAILY_VIBE_REDACT_REPLACEMENT="***"

Configuration Validation

Daily Vibe validates your configuration on startup. Common validation errors:

Missing API Key: Ensure your API key is properly set in configuration or environment variables.

Invalid Model: Check that the model name is supported by your chosen provider.

Invalid Base URL: Verify the base URL is accessible and follows the correct format.

Testing Your Configuration

Verify your configuration is working correctly:

# Show current configuration
daily-vibe config set --show

# Test data source scanning
daily-vibe sources scan

# Run a quick analysis test
daily-vibe analyze today --json --out ./test

Configuration Profiles

You can maintain multiple configuration profiles by using different configuration files:

# Development profile
daily-vibe --config .dailyviberc.dev.json analyze today

# Production profile  
daily-vibe --config .dailyviberc.prod.json analyze range --from yesterday --to today

Security Best Practices

API Key Security: Never commit API keys to version control. Use environment variables or local configuration files that are gitignored.

  1. Use Environment Variables: Set API keys via environment variables in production
  2. Restrict File Permissions: Ensure configuration files are readable only by you
    chmod 600 .dailyviberc.json
  3. Use .gitignore: Exclude configuration files from version control
    .dailyviberc.json
    .dailyviberc.js
    dailyvibe.config.js

Next Steps

With configuration complete, you're ready to: