Configuration
ProGit is configured through a config.toml file in your project’s .project/ directory.
Configuration File Location
Section titled “Configuration File Location”my-project/├── .git/├── .project/│ ├── config.toml # Main configuration│ ├── issues/│ ├── sprints/│ └── kanban/└── src/Basic Configuration
Section titled “Basic Configuration”[project]name = "my-project"description = "A brief description of the project"version = "0.1.0"
[git]# Auto-fetch from remote on startupauto_fetch = true# Default branch for new workdefault_branch = "main"# Enable virtual branchesvirtual_branches = true
[ui]# Theme: "dark", "light", or "system"theme = "dark"# Show relative or absolute datesdate_format = "relative"# Enable mouse supportmouse = true# Vim-style keybindingsvim_mode = true
[keybindings]# Override default keybindingsquit = "q"refresh = "r"new_issue = "n"search = "/"
[issues]# Default issue templatetemplate = """## Description
## Acceptance Criteria- [ ]
## Notes"""# Auto-label new issuesdefault_labels = ["triage"]
[kanban]# Board columnscolumns = ["Backlog", "Todo", "In Progress", "Review", "Done"]# WIP limits per columnwip_limits = { "In Progress" = 3, "Review" = 2 }
[sprints]# Sprint duration in weeksduration_weeks = 2# Velocity trackingtrack_velocity = true# Auto-close completed issuesauto_close = false
[ai]# Ollama endpointollama_url = "http://localhost:11434"# Default modelmodel = "codellama"# Enable AI suggestionssuggestions = trueGit Integration Settings
Section titled “Git Integration Settings”Virtual Branches
Section titled “Virtual Branches”Virtual branches let you work on multiple features simultaneously without constantly switching git branches.
[git.virtual_branches]# Enable virtual branchesenabled = true# Maximum concurrent virtual branchesmax_concurrent = 5# Auto-stash on branch switchauto_stash = trueConfigure git hooks through ProGit:
[git.hooks]# Run tests before commitpre-commit = ["cargo test", "cargo clippy"]# Update issues on commitpost-commit = "progit issue link"# Push to remote after successful mergepost-merge = "git push origin main"UI Customization
Section titled “UI Customization”Themes
Section titled “Themes”ProGit comes with built-in themes:
[ui]theme = "progit-dark" # or "progit-light", "high-contrast"Create custom themes:
[ui.custom_theme]background = "#0a0a0c"foreground = "#e8e6e3"accent = "#0091b8"success = "#39ff14"warning = "#ff9f1c"error = "#ff006e"border = "#2a2a32"Layout
Section titled “Layout”Customize the TUI layout:
[ui.layout]# Show/hide panelsshow_git_panel = trueshow_issues_panel = trueshow_kanban_panel = true# Panel sizes (percentage)sidebar_width = 25preview_height = 40Plugin Configuration
Section titled “Plugin Configuration”[plugins]# Auto-discover plugins in .project/plugins/auto_discover = true# Enabled pluginsenabled = ["gitlab-sync", "ai-assistant"]
[plugins.gitlab-sync]# Plugin-specific settingsgitlab_url = "https://gitlab.com"project_id = "12345"# Sync settingssync_issues = truesync_mrs = truewebhook_secret = "${GITLAB_WEBHOOK_SECRET}"
[plugins.ai-assistant]model = "codellama:7b-code"temperature = 0.7max_tokens = 2048Environment Variables
Section titled “Environment Variables”Use environment variables in config:
[integrations.gitlab]token = "${GITLAB_TOKEN}"
[integrations.slack]webhook = "${SLACK_WEBHOOK_URL}"
[ai]api_key = "${OPENAI_API_KEY}"ProGit will substitute these at runtime from:
- Shell environment
.envfile in project root.project/.envfile
Per-User Configuration
Section titled “Per-User Configuration”User-specific settings go in ~/.config/progit/config.toml:
[user]name = "Jane Doe"
[defaults]# Default project settingstheme = "dark"vim_mode = trueollama_url = "http://localhost:11434"
[aliases]# Command shortcutss = "sprint"i = "issue"k = "kanban"Configuration Validation
Section titled “Configuration Validation”Validate your configuration:
progit config checkThis will:
- Check TOML syntax
- Verify paths exist
- Validate plugin configurations
- Warn about deprecated options
Default Configuration
Section titled “Default Configuration”View the default configuration:
progit config defaultsThis outputs the built-in defaults, which you can use as a starting point.