feat(kugetsu): add local config file for user overrides #67

Closed
opened 2026-04-01 08:37:03 +02:00 by shoko · 0 comments
Owner

Feature Request

Add a local config file (~/.kugetsu/config) that allows users to override default settings without modifying the codebase.

Motivation

Currently, to override MAX_CONCURRENT_AGENTS, users must either:

  1. Modify the source code (not ideal)
  2. Use environment variables (clunky UX)

A config file provides persistent, user-friendly overrides.

Design

Config File

Location: ~/.kugetsu/config
Format: Bash-compatible variables

Example:

MAX_CONCURRENT_AGENTS=5

Load Order

  1. kugetsu script loads hardcoded defaults (e.g., MAX_CONCURRENT_AGENTS="${MAX_CONCURRENT_AGENTS:-3}")
  2. If ~/.kugetsu/config exists, source it
  3. User config overrides the defaults

Behavior

  • Config is sourced on each command call, not just during init
  • Changes to config take effect immediately on next command
  • No re-init required
  • Config file is optional - defaults work if file doesn't exist

Implementation

Add near the top of kugetsu script (after defaults, before functions):

# Load user config overrides (~/.kugetsu/config)
if [ -f "$KUGETSU_DIR/config" ]; then
    source "$KUGETSU_DIR/config"
fi

Tasks

  1. Add config file sourcing to kugetsu script
  2. Create default config file at ~/.kugetsu/config (optional, can be created by user)
  3. Document the config file in README or help text
  4. Test: change config, run command, verify override takes effect

Acceptance Criteria

  • Config file is sourced on each command call
  • Changes to config take effect immediately (no re-init)
  • Default values work when config file doesn't exist
  • Config file format is simple and documented
## Feature Request Add a local config file (`~/.kugetsu/config`) that allows users to override default settings without modifying the codebase. ## Motivation Currently, to override `MAX_CONCURRENT_AGENTS`, users must either: 1. Modify the source code (not ideal) 2. Use environment variables (clunky UX) A config file provides persistent, user-friendly overrides. ## Design ### Config File Location: `~/.kugetsu/config` Format: Bash-compatible variables Example: ```bash MAX_CONCURRENT_AGENTS=5 ``` ### Load Order 1. kugetsu script loads hardcoded defaults (e.g., `MAX_CONCURRENT_AGENTS="${MAX_CONCURRENT_AGENTS:-3}"`) 2. If `~/.kugetsu/config` exists, source it 3. User config overrides the defaults ### Behavior - Config is sourced on **each command call**, not just during init - Changes to config take effect immediately on next command - No re-init required - Config file is optional - defaults work if file doesn't exist ### Implementation Add near the top of kugetsu script (after defaults, before functions): ```bash # Load user config overrides (~/.kugetsu/config) if [ -f "$KUGETSU_DIR/config" ]; then source "$KUGETSU_DIR/config" fi ``` ## Tasks 1. Add config file sourcing to kugetsu script 2. Create default config file at `~/.kugetsu/config` (optional, can be created by user) 3. Document the config file in README or help text 4. Test: change config, run command, verify override takes effect ## Acceptance Criteria - [ ] Config file is sourced on each command call - [ ] Changes to config take effect immediately (no re-init) - [ ] Default values work when config file doesn't exist - [ ] Config file format is simple and documented
shoko closed this issue 2026-04-02 00:14:06 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shoko/kugetsu#67