Configuration

Customize ABOV3 to match your workflow with comprehensive configuration options.

⚙️ Configuration Overview

ABOV3 can be configured through JSON files, environment variables, and interactive menus. Most settings have sensible defaults.

Configuration Files

  • 📁 ~/.config/abov3/
    • 📄 abov3.json - Main configuration
    • 📁 agent/ - Custom agents
    • 📁 command/ - Custom commands
    • 📁 prompt/ - Custom prompts
  • 📁 ~/.local/share/abov3/
    • 📄 auth.json - Authentication tokens
    • 📁 sessions/ - Session history
    • 📁 log/ - Application logs
  • 📁 .abov3/ - Project-specific config
    • 📄 config.json - Project overrides
    • 📁 agent/ - Project agents
    • 📁 command/ - Project commands

Main Configuration (abov3.json)

Complete Configuration Example

{
  "defaultModel": "anthropic/claude-3-sonnet",
  "temperature": 0.7,
  "maxTokens": 4096,
  "streaming": true,

  "provider": {
    "anthropic": {
      "apiKey": "sk-ant-api03-...",
      "maxTokens": 4096,
      "temperature": 0.7
    },
    "openai": {
      "apiKey": "sk-...",
      "organization": "org-..."
    },
    "ollama": {
      "baseUrl": "http://localhost:11434"
    }
  },

  "ui": {
    "theme": "default",
    "showLineNumbers": true,
    "syntaxHighlighting": true,
    "autoScroll": true,
    "tabSize": 2,
    "wordWrap": true
  },

  "keybind": {
    "leader": "ctrl+x",
    "submit": "alt+enter",
    "newSession": "ctrl+n",
    "switchAgent": "tab",
    "scrollUp": "ctrl+u",
    "scrollDown": "ctrl+d"
  },

  "tools": {
    "bash": {
      "timeout": 30000,
      "workingDirectory": ".",
      "shell": "/bin/bash"
    },
    "edit": {
      "autoFormat": true,
      "validateSyntax": true
    }
  },

  "session": {
    "autoSave": true,
    "saveInterval": 60,
    "maxHistory": 100,
    "compressOld": true
  },

  "logging": {
    "level": "info",
    "file": "~/.local/share/abov3/log/abov3.log",
    "maxSize": "10MB",
    "maxFiles": 5
  }
}

Configuration Options

Model Settings

Option Type Default Description
defaultModel string "anthropic/claude-3-sonnet" Default AI model to use
temperature number 0.7 Response randomness (0.0-1.0)
maxTokens number 4096 Maximum response length
streaming boolean true Stream responses in real-time
contextWindow number 200000 Context window size

UI Settings

Option Type Default Description
theme string "default" Color theme (default, dark, light)
showLineNumbers boolean true Show line numbers in code
syntaxHighlighting boolean true Enable syntax highlighting
autoScroll boolean true Auto-scroll to new content
tabSize number 2 Tab width in spaces

Interactive Configuration

Using the Config Command

# Open interactive configuration menu
./abov3-linux-x64 config

# Or in TUI
/config

# This allows you to:
# - Select default model
# - Configure providers
# - Set UI preferences
# - Manage keybindings
# - Configure tools

Project Configuration

Project-Specific Settings

Create .abov3/config.json in your project root:

{
  "defaultModel": "ollama/qwen2.5-coder:14b",
  "agent": {
    "default": "build"
  },
  "context": {
    "include": ["src/**/*.ts", "docs/*.md"],
    "exclude": ["node_modules", "dist", "*.test.ts"]
  },
  "tools": {
    "bash": {
      "workingDirectory": "./src"
    }
  },
  "command": {
    "test": {
      "template": "Run tests: `npm test`\n$ARGUMENTS",
      "description": "Run project tests"
    }
  }
}

💡 Configuration Priority

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

  1. Built-in defaults
  2. Global config (~/.config/abov3/abov3.json)
  3. Project config (.abov3/config.json)
  4. Environment variables
  5. Command-line arguments

Environment Variables

Supported Variables

# Model selection
export ABOV3_MODEL="anthropic/claude-3-opus"

# Provider credentials
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
export OLLAMA_BASE_URL="http://192.168.1.100:11434"

# Configuration paths
export ABOV3_CONFIG_DIR="$HOME/.config/abov3"
export ABOV3_DATA_DIR="$HOME/.local/share/abov3"

# Logging
export LOG_LEVEL="DEBUG"
export LOG_FILE="/var/log/abov3.log"

# UI preferences
export ABOV3_THEME="dark"
export ABOV3_NO_COLOR="false"

# Performance
export ABOV3_MAX_WORKERS="4"
export ABOV3_CACHE_SIZE="1GB"

Tool Configuration

Bash Tool Settings

{
  "tools": {
    "bash": {
      "timeout": 30000,           // Command timeout in ms
      "workingDirectory": ".",    // Default working directory
      "shell": "/bin/bash",       // Shell executable
      "env": {                     // Environment variables
        "NODE_ENV": "development"
      },
      "allowedCommands": ["npm", "git", "ls"],  // Whitelist
      "blockedCommands": ["rm -rf", "sudo"]     // Blacklist
    }
  }
}

Edit Tool Settings

{
  "tools": {
    "edit": {
      "autoFormat": true,         // Auto-format code
      "validateSyntax": true,     // Syntax validation
      "backupBeforeEdit": true,   // Create backups
      "maxFileSize": "10MB",      // Max file size
      "tabsToSpaces": true,       // Convert tabs
      "trimWhitespace": true      // Trim trailing spaces
    }
  }
}

Custom Themes

Creating a Custom Theme

Create ~/.config/abov3/themes/mytheme.json:

{
  "name": "My Custom Theme",
  "colors": {
    "background": "#1a1a2e",
    "foreground": "#eee",
    "accent": "#f39c12",
    "secondary": "#3498db",
    "error": "#e74c3c",
    "warning": "#f39c12",
    "success": "#2ecc71",
    "muted": "#7f8c8d"
  },
  "syntax": {
    "keyword": "#e74c3c",
    "string": "#2ecc71",
    "comment": "#95a5a6",
    "function": "#3498db",
    "variable": "#f39c12",
    "number": "#9b59b6"
  }
}

Then set in config:

{
  "ui": {
    "theme": "mytheme"
  }
}

Session Management

Session Settings

{
  "session": {
    "autoSave": true,           // Auto-save sessions
    "saveInterval": 60,         // Save interval in seconds
    "maxHistory": 100,          // Max sessions to keep
    "compressOld": true,        // Compress old sessions
    "resumeOnStart": true,      // Resume last session
    "location": "~/.local/share/abov3/sessions/"
  }
}

Security Settings

Security Configuration

{
  "security": {
    "requireConfirmation": {
      "bash": true,             // Confirm bash commands
      "edit": false,            // Confirm file edits
      "delete": true            // Confirm deletions
    },
    "sandbox": {
      "enabled": false,         // Run in sandbox
      "allowNetwork": true,     // Allow network access
      "allowFileSystem": true   // Allow file access
    },
    "encryption": {
      "sessions": false,        // Encrypt sessions
      "credentials": true       // Encrypt credentials
    }
  }
}

Troubleshooting

Reset Configuration

# Backup current config
cp ~/.config/abov3/abov3.json ~/.config/abov3/abov3.json.bak

# Reset to defaults
rm ~/.config/abov3/abov3.json
./abov3-linux-x64 config

Validate Configuration

# Check config syntax
./abov3-linux-x64 config validate

# View effective configuration
./abov3-linux-x64 config show

# Test specific provider
./abov3-linux-x64 run --print-logs "test"

Common Issues

  • Config not loading: Check file permissions and JSON syntax
  • Settings ignored: Check for project overrides
  • Provider errors: Verify API keys and connectivity
  • Performance issues: Adjust maxTokens and streaming settings

💡 Configuration Best Practices

  • Keep API keys in environment variables, not config files
  • Use project configs for team-shared settings
  • Regularly backup your configuration
  • Test changes with --print-logs flag
  • Use comments in JSON with the // syntax (ABOV3 supports it)