Skip to main content
DevDaily uses a JSON configuration file to customize behavior, appearance, and integrations. Configuration supports both local (per-project) and global (user-wide) settings with JSON Schema support for IDE autocomplete.

Configuration File Locations

DevDaily searches for configuration files in the following order:
ScopePathPurpose
Local (per-project).devdaily.jsonProject-specific settings
Global~/.config/devdaily/config.jsonUser-wide defaults
Secrets~/.config/devdaily/secrets.json or .devdaily.secrets.jsonAPI tokens and webhook URLs
Local configuration overrides global configuration. Settings are merged, with local values taking precedence.

JSON Schema Support

Enable autocomplete and validation in your IDE by adding the $schema field:
.devdaily.json
{
  "$schema": "https://raw.githubusercontent.com/hempun10/devdaily/main/schemas/devdaily.schema.json",
  "version": 1
}
This provides:
  • IntelliSense/autocomplete in VS Code, JetBrains IDEs, and other editors
  • Inline documentation for all configuration options
  • Validation warnings for invalid values

Example Configuration

Here’s a complete example .devdaily.json file:
.devdaily.json
{
  "$schema": "https://raw.githubusercontent.com/hempun10/devdaily/main/schemas/devdaily.schema.json",
  "version": 1,
  
  "theme": {
    "primary": "blue",
    "success": "green",
    "warning": "yellow",
    "error": "red",
    "accent": "cyan",
    "muted": "gray"
  },
  
  "ascii": true,
  "animations": true,
  "compactMode": false,
  
  "aliases": {
    "standup": ["s", "su", "daily"],
    "pr": ["p", "pull"],
    "week": ["w", "weekly"],
    "dash": ["d", "dashboard"]
  },
  
  "output": {
    "format": "markdown",
    "copyToClipboard": true,
    "showStats": true,
    "verbose": false
  },
  
  "git": {
    "defaultBranch": "main",
    "excludeAuthors": [],
    "excludePatterns": ["merge commit", "Merge branch"]
  },
  
  "projects": [],
  
  "shortcuts": {
    "quit": "q",
    "help": "?",
    "refresh": "r",
    "copy": "c",
    "create": "enter",
    "back": "esc",
    "nextProject": "tab",
    "prevProject": "shift+tab"
  },
  
  "projectManagement": {
    "tool": "github",
    "jira": {
      "useApiToken": true
    },
    "linear": {
      "useApi": true
    },
    "notion": {
      "useApi": true
    }
  },
  
  "notifications": {
    "slack": {
      "enabled": false
    },
    "discord": {
      "enabled": false
    },
    "standupTimezone": "America/New_York"
  },
  
  "journal": {
    "autoSnapshot": true,
    "gitHooks": false,
    "quiet": true
  },
  
  "copilot": {
    "timeout": 30000,
    "retries": 2
  },
  
  "standup": {
    "defaultDays": 1,
    "includeWIP": false,
    "sections": ["completed", "in-progress", "blockers"],
    "groupBy": "none",
    "includeTicketLinks": true,
    "scheduleDays": ["monday", "tuesday", "wednesday", "thursday", "friday"]
  },
  
  "pr": {
    "defaultBase": "main",
    "autoLabels": true,
    "defaultLabels": [],
    "defaultReviewers": [],
    "defaultAssignees": [],
    "titleFormat": "conventional",
    "includeTicketInTitle": true,
    "includeDiff": true,
    "maxDiffLines": 200
  },
  
  "week": {
    "startDay": "monday",
    "includeWeekends": false
  }
}

Configuration Categories

Display Settings

theme
object
Color theme for terminal output
ascii
boolean
default:"true"
Show ASCII art banners
animations
boolean
default:"true"
Enable loading spinners and animations
compactMode
boolean
default:"false"
Use compact output with less whitespace

Command Aliases

aliases
object
Custom command aliases for faster access

Output Preferences

output
object
Output formatting and behavior

Git Settings

git
object
Git repository configuration

Multi-Project Support

projects
array
List of projects for cross-project summaries
"projects": [
  {
    "name": "frontend",
    "path": "/path/to/frontend",
    "defaultBranch": "main",
    "team": ["alice", "bob"]
  },
  {
    "name": "backend",
    "path": "/path/to/backend"
  }
]
activeProject
string
Currently active project name

Keyboard Shortcuts

shortcuts
object
Keyboard shortcuts for interactive commands

Journal / Auto-Snapshots

journal
object
Work journal and auto-snapshot configuration. See Git Hooks for details.

AI/Copilot Settings

copilot
object
GitHub Copilot CLI configuration

Managing Configuration

View Current Configuration

devdaily config

Edit Configuration

devdaily config --edit        # Opens in $EDITOR
devdaily config --path        # Show config file path

Reset to Defaults

Delete the configuration file and run devdaily init:
rm .devdaily.json
devdaily init

Secrets Management

Sensitive values like API tokens and webhook URLs should be stored in a separate secrets file:
{
  "jira": {
    "email": "your@email.com",
    "apiToken": "your-jira-api-token",
    "baseUrl": "https://yourcompany.atlassian.net"
  },
  "linear": {
    "apiKey": "lin_api_..."
  },
  "notion": {
    "apiKey": "secret_...",
    "databaseId": "..."
  },
  "slack": {
    "webhookUrl": "https://hooks.slack.com/services/..."
  },
  "discord": {
    "webhookUrl": "https://discord.com/api/webhooks/..."
  }
}
Never commit .devdaily.secrets.json to version control. DevDaily automatically adds it to .gitignore during devdaily init.

Environment Variables

Configuration values can also be set via environment variables:
# Project Management
export JIRA_BASE_URL="https://yourcompany.atlassian.net"
export JIRA_EMAIL="your@email.com"
export JIRA_API_TOKEN="your-token"
export LINEAR_API_KEY="lin_api_..."
export NOTION_API_KEY="secret_..."
export NOTION_DATABASE_ID="..."

# Notifications
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..."
export DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/..."

Next Steps

Git Hooks

Set up automatic snapshots with git hooks

Project Management

Integrate with GitHub, Jira, or Linear

Notifications

Configure Slack and Discord webhooks

PR Templates

Customize PR descriptions with templates