No description
- Lua 67.1%
- Shell 29.5%
- Rust 3.4%
|
|
||
|---|---|---|
| .github/workflows | ||
| csv-export | ||
| forgejo-notify | ||
| git-hooks | ||
| gitlab-ci | ||
| jira-sync | ||
| plugins | ||
| schema | ||
| slack-notify | ||
| symbio-expert | ||
| syntax-highlight | ||
| .gitignore | ||
| categories.json | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
ProGit Plugin Registry
The official plugin index for ProGit — the git-first, terminal-native project management suite.
Browse and install from plugins.progit.dev · Build your own with the Plugin SDK
Installing Plugins
# Search the registry
prog plugin search forgejo
# Install a plugin
prog plugin install forgejo-notify
# Install a specific version
prog plugin install git-hooks@1.0.0
# Install directly from a git URL
prog plugin install --git https://git.example.org/you/my-plugin.git
# List installed plugins
prog plugin list
Official Plugins
| Plugin | Category | Description |
|---|---|---|
| git-hooks | Utility | Commit hygiene enforcement + issue auto-close via closing keywords |
| forgejo-notify | Integration | Post status changes and sync events as Forgejo/Gitea MR comments |
| gitlab-ci | Integration | GitLab CI/CD pipeline status in the ProGit TUI |
Registry Structure
plugins/
├── integrations/ # External system sync (Forgejo, GitLab, GitHub, Jira …)
├── analytics/ # Metrics, reports, dashboards
└── utilities/ # Automation, quality checks, notifications
<plugin-name>/ # Source for ProGit Team plugins (Lua)
│ └── main.lua
schema/ # JSON Schema for plugin manifests
categories.json # Category definitions
Publishing Your Plugin
1. Write the plugin
Plugins are Lua scripts (LuaJIT). The sandbox provides:
-- HTTP client
local resp = http.get("https://api.example.org/data", { ["Authorization"] = "Bearer " .. token })
local resp = http.post(url, json.encode(payload), { ["Content-Type"] = "application/json" })
-- resp = { status = 200, body = "...", ok = true }
-- JSON codec
local encoded = json.encode({ key = "value" })
local decoded = json.decode(resp.body)
Every plugin declares a plugin table:
plugin = {
name = "my-plugin",
version = "1.0.0",
author = "Your Name",
description = "What it does",
hooks = {
on_status_changed = true,
on_sync_push = true,
},
}
function on_status_changed(data)
-- data.id, data.title, data.old_status, data.new_status
return { notified = true }
end
Full SDK docs: sdk.progit.dev
2. Create a manifest
Add a JSON file to plugins/<category>/<your-plugin>.json:
{
"name": "my-plugin",
"version": "1.0.0",
"description": "What your plugin does (10–256 chars)",
"author": "Your Name",
"license": "MIT",
"plugin_type": "integration",
"runtime": "lua",
"source_url": "https://git.example.org/you/my-plugin.git",
"source_tag": "v1.0.0",
"sdk_version": ">=0.1.0",
"hooks": ["on_status_changed"]
}
Validate against the schema.
3. Submit a pull request
Fork → add manifest → open PR. We review for:
- Manifest completeness and schema validity
- No obvious malicious behaviour in the Lua source
- Working
source_urlpointing to a public repo
That's it. No fees, no gatekeeping.
Licensing
The registry index and all ProGit Team plugins are released under the Libertaria Unbound License (LUL) v1.0 — essentially public domain with attribution. Do anything with it.
Your own plugins may use any license you choose.
See LICENSE for the full text.