Skip to content

Configuration

ProGit is configured through a KDL file at .project/config.kdl in your project root. KDL is a document language — think TOML but more readable for nested data.

my-project/
├── .project/
│ ├── config.kdl ← main config (commit this)
│ └── issues/
└── .progit/ ← local cache (gitignore this)

ProGit works without any config file — everything has sensible defaults. The only reason you need config.kdl is for forge sync.

.project/config.kdl
sync {
provider "gitlab"
url "https://gitlab.com"
owner "my-org"
repo "my-project"
}
theme "dark" // "dark" | "light"

Change from inside the TUI: press : → type theme light → Enter.

sync {
provider "gitlab"
url "https://gitlab.com"
owner "my-org"
repo "my-project"
}
sync {
provider "forgejo"
url "https://git.example.com"
owner "my-org"
repo "my-project"
}
sync {
provider "gitlab"
url "https://gitlab.mycompany.com"
owner "team"
repo "backend"
}

Tokens are not stored in config — use environment variables:

Terminal window
export GITLAB_TOKEN="glpat-xxxx"
export FORGEJO_TOKEN="your-token"
export PROGIT_TOKEN="fallback-token" # tried first, works for any provider

Manage issues across multiple repos from one ProGit instance:

repo "frontend" {
path "../frontend"
sync {
provider "gitlab"
url "https://gitlab.com"
owner "my-org"
repo "frontend"
}
}
repo "backend" {
path "../backend"
sync {
provider "gitlab"
url "https://gitlab.com"
owner "my-org"
repo "backend"
}
}
plugins {
registry-url "https://git.sovereign-society.org/ProGit/progit-plugins"
}

Override built-in component colours:

style "issue-title" {
fg "cyan"
modifiers "bold"
}
style "status-done" {
fg "green"
modifiers "dim"
}
style "kanban-header" {
fg "yellow"
modifiers "bold" "underlined"
}

Supported modifiers: bold, italic, dim, underlined, crossed-out.

ProGit intentionally does not store in config:

  • Auth tokens (use env vars)
  • User identity (read from git config)
  • Editor preferences (reads $EDITOR)
.project/config.kdl
theme "dark"
sync {
provider "forgejo"
url "https://git.sovereign-society.org"
owner "ProGit"
repo "progit"
}
plugins {
registry-url "https://git.sovereign-society.org/ProGit/progit-plugins"
}
style "kanban-header" {
fg "cyan"
modifiers "bold"
}