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):
- Built-in defaults
- Global config (~/.config/abov3/abov3.json)
- Project config (.abov3/config.json)
- Environment variables
- 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)