No description
  • Rust 98.1%
  • Shell 1%
  • Lua 0.9%
Find a file
Markus Maiwald 4f7fbf3840
backlog: add Git Worktree Support issue
Added issue f8c2a1b4-9d3e-4f5a-b6c7-d8e9f0a1b2c3 to backlog:
- List/create/remove/prune worktrees via CLI
- TUI navigation between worktrees
- Status bar worktree indicator
- Implementation via git2 crate (Repository::worktrees, Worktree::add/prune)

Effort: 10 (Large)
Tags: phase-3, git, workflow
2026-03-16 22:51:49 +01:00
.project backlog: add Git Worktree Support issue 2026-03-16 22:51:49 +01:00
docs perf: reduce binary size 17M → 11M (-35%) 2026-01-16 01:35:33 +01:00
examples feat(plugins): make registry URL configurable via config.kdl with git remote fallback 2026-01-30 12:46:32 +01:00
legal chore: add legal/ folder with all license files 2026-03-13 16:09:08 +01:00
plugins feat: complete Phase 2 (Collaboration Layer) with CI/CD integration and code review 2026-01-30 15:47:10 +01:00
progit-market/plugins feat: complete Phase 2 (Collaboration Layer) with CI/CD integration and code review 2026-01-30 15:47:10 +01:00
scripts feat(infra): add two-branch version control strategy with automation 2025-12-11 14:07:28 +01:00
src feat: public beta polish — Phases A-D complete 2026-03-14 19:04:10 +01:00
tests feat: public beta polish — Phases A-D complete 2026-03-14 19:04:10 +01:00
.envrc bump: v0.7.0-alpha — reclassify as alpha, call for testers 2026-03-15 13:36:27 +01:00
.gitignore feat: complete ProGit initial release 2025-12-10 09:44:43 +01:00
Cargo.toml fix: standardize all URLs to git.sovereign-society.org 2026-03-15 15:01:50 +01:00
CHANGELOG.md fix: standardize all URLs to git.sovereign-society.org 2026-03-15 15:01:50 +01:00
CODE_OF_CONDUCT.md docs: CODE OF CONDUCT 1.0 2025-12-11 14:10:10 +01:00
COMPARISON.md docs: update README, COMPARISON and roadmap for JSON storage and CLI completeness 2025-12-11 00:07:28 +01:00
CONTRIBUTING.md docs: add branch strategy (forge → main → stable) 2026-03-15 15:18:16 +01:00
Detail-View.webp feat: complete ProGit initial release 2025-12-10 09:44:43 +01:00
Kanban-View.webp feat(ui): implement Merge Request Dashboard 2025-12-11 13:46:31 +01:00
LICENSE legal: simplify to LCL-1.0 only for core, SDK stays in separate repo 2026-01-05 21:11:57 +01:00
List-View.webp feat(ui): implement Merge Request Dashboard 2025-12-11 13:46:31 +01:00
README.md docs: add branch strategy (forge → main → stable) 2026-03-15 15:18:16 +01:00

ProGit

A blazingly fast, AI-powered Git workflow manager with virtual branches

License: LCL-1.0 Version Rust

Status: Alpha Phase 1-2 Complete | Phase 3 (Ecosystem) In Progress | Looking for testers

🎯 What is ProGit?

ProGit is a terminal-based Git workflow manager that combines the power of:

  • Virtual Branches (GitButler-style) - Work on multiple features simultaneously
  • Code Review - Line-level commenting with inline indicators
  • CI/CD Integration - Real-time pipeline status from GitLab/GitHub
  • AI Agents - Refactor code, generate tests, find bugs, write docs
  • Conflict Resolution - Visual conflict detection and resolution
  • Local-First - Your data lives in your repo, not the cloud
  • Lightning Fast - 10MB binary, <100ms cold start

The Pitch: "GitButler's virtual branches + GitHub Copilot's AI + GitUI's speed = ProGit"


Key Features

🌿 Virtual Branches

Work on multiple changes simultaneously without traditional Git branching chaos:

  • Parallel Workflows: Edit different features side-by-side
  • Hunk-Level Control: Assign code changes to different virtual branches
  • Visual Lanes: See all your work streams at once
  • Conflict Detection: Real-time warnings when hunks overlap
  • Easy Staging: Drag-and-drop hunks between branches
┌──────────────┬──────────────┬──────────────┐
│ Feature A    │ Bug Fix B    │ Refactor C   │
├──────────────┼──────────────┼──────────────┤
│ + add_user() │ - fix null   │ ~ rename var │
│ + tests      │ + validation │ ~ extract fn │
└──────────────┴──────────────┴──────────────┘

🤖 AI-Powered Workflow

Built-in AI agent with 7 curated actions:

Action Description
📖 Explain Changes Code review assistant
🧪 Generate Tests Unit test generator
♻️ Refactor Code Structure improvements
📝 Add Documentation Docstring generator
🐛 Find Bugs Static analysis
Optimize Performance Algorithm optimizer
💬 Generate Commit Msg Conventional Commits

Usage:

  1. Press a in Lanes view
  2. Select an AI action
  3. Agent analyzes your code and applies changes

📝 Code Review Mode (Phase 2 )

Line-level code review system with inline comments:

  • Enter Review: :review <file> [commit]
  • Navigate: j/k keys to move between lines
  • Comment: Press c to add a comment on any line
  • Inline Indicators: 💬 emoji shows commented lines
  • Persistent: Comments stored in .project/reviews/
  • Sidebar View: See author, date, and comment text
┌────────────────────────────────┬────────────────────────┐
│ 42 💬 fn calculate_total() {   │ Comments               │
│ 43    let sum = 0;             │                        │
│ 44    for item in items {      │ alice • 2025-01-30     │
│ 45        sum += item.price;   │ Consider using iter()  │
│ 46    }                         │ .sum() here for better │
│ 47    sum                       │ readability.           │
└────────────────────────────────┴────────────────────────┘

🔄 CI/CD Integration (Phase 2 )

Real-time pipeline status in Merge Request Dashboard:

  • Status Icons: ✓ passed, ✗ failed, ● running, ○ pending
  • Color-Coded: Green/red/yellow indicators
  • Plugin-Based: Uses GitLab CI plugin (extensible)
  • No Browser: Check CI status without leaving terminal
MR State CI Title Author
!42 Open Add auth alice
!41 Open Fix bug bob
!40 Open Refactor charlie

Configuration:

plugins {
    gitlab-ci {
        gitlab_api_url "https://gitlab.com/api/v4"
        gitlab_token "glpat-xxxxxxxxxxxxxxxxxxxx"
    }
}

🔍 Conflict Resolution

Visual conflict detection and resolution:

  • Real-time Detection: ⚠️ indicators when hunks overlap
  • Side-by-side View: Compare conflicting changes
  • Smart Merging: Resolve conflicts with keyboard navigation
  • Prevention First: See conflicts before they become problems

🎨 Beautiful TUI

  • Themes: Cyberpunk, Nord, Dracula, Solarized, custom themes
  • Vim Keybindings: j/k navigation, modal editing
  • Fuzzy Palette (Ctrl+P): Jump to any issue/file/commit
  • Status Bar: Context-aware help text

🚀 Quick Start

Installation

# From source
git clone https://git.sovereign-society.org/ProGit/progit
cd progit
cargo build --release

# Binary will be at target/release/prog
sudo cp target/release/prog /usr/local/bin/

First Run

# Navigate to a Git repo
cd your-project/

# Initialize ProGit
prog init

# Start the TUI
prog

Basic Workflow

# Open ProGit
prog

# Create virtual branches (press 'n' in Lanes view)
# Make code changes in your editor
# Assign hunks to branches (press 'h'/'l' to switch lanes)
# Stage hunks (press 'Space')
# Commit branch (press 'C')

# Use AI agent (press 'a')
# Select action → Agent analyzes code → Auto-apply changes

📖 Documentation


🏗️ Architecture

ProGit is built with a clean separation of concerns:

┌─────────────────────────────────────┐
│  TUI (LCL-1.0)                      │  ← You interact here
│  - Virtual branches                 │
│  - Conflict resolution              │
│  - Agent menu                       │
└─────────────────────────────────────┘
           ↓ JSON Events
┌─────────────────────────────────────┐
│  Plugin SDK (LSL-1.0)               │  ← Write plugins here
│  - Event system                     │
│  - LuaJIT runtime                   │
└─────────────────────────────────────┘
           ↓ File System
┌─────────────────────────────────────┐
│  Data Layer                         │
│  - Issues: .project/issues/*.json   │
│  - Config: .project/config.kdl      │
│  - State: .progit/ (gitignored)     │
└─────────────────────────────────────┘

License Architecture

Component License Why
Core TUI LCL-1.0 File-level copyleft, modifications stay open
Plugin SDK LSL-1.0 File-level copyleft + patent grant, commercial-friendly
Your Data Yours JSON in your repo, you own it

🔌 Plugin System

Extend ProGit with Lua plugins:

-- hello.lua
local plugin = {
    metadata = {
        name = "hello",
        version = "1.0.0"
    }
}

function plugin:on_event(event)
    if event.type == "IssueCreated" then
        print("New issue: " .. event.data.issue_id)
    end
end

return plugin

Community Plugins (coming soon):

  • Jira Sync
  • Slack Notifications
  • CI/CD Integration
  • Custom Git Hooks

See Plugin SDK Documentation for details.


🎯 Roadmap

v0.7.0-alpha (Current)

  • Virtual branches + conflict resolution
  • AI agent (Ollama, 7 actions)
  • Plugin SDK v0.1.0 (LuaJIT)
  • Code review mode
  • CI/CD integration (GitLab/Forgejo)
  • Forge sync (bidirectional)
  • Website launch (progit.dev)
  • Binary diet (syntect to plugin)
  • Plugin registry (prog plugin install)
  • Alpha bug triage

v1.0.0 (TBD)

  • WASM plugin runtime (optional)
  • GitHub sync
  • Release management in TUI
  • Enterprise features

See CHANGELOG.md for version history.


🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for the full guide.

Branch Strategy

forge  →  main  →  stable
 (dev)    (integration)  (releases)
  • forge where contributors and AI agents land their work
  • main reviewed, tested code
  • stable tagged releases only

Branch off forge, open MRs targeting forge. See CONTRIBUTING.md for details.

Quick Links:


📊 Comparison

vs GitButler

Feature ProGit GitButler
Binary Size ~10MB ~200MB
Cold Start <100ms ~2s
AI Integration Built-in No
Local-First Yes Yes
Plugin System Lua/WASM No
License LCL-1.0 (file-level copyleft) Proprietary

vs GitHub CLI

Feature ProGit GitHub CLI
Virtual Branches Yes No
TUI Full ⚠️ Limited
AI Agents 7 actions No
Offline Work Full ⚠️ Limited
Issue Management Built-in Via API

vs GitUI/lazygit

Feature ProGit GitUI lazygit
Virtual Branches Yes No No
AI Assistance Yes No No
Plugin System Yes No No
Speed Fast Fast Fast
Issue Tracking Built-in No No

🙏 Credits

ProGit stands on the shoulders of giants:

  • GitButler - Virtual branches inspiration
  • GitHub Copilot - AI-assisted coding vision
  • GitUI/lazygit - TUI excellence
  • Ratatui - Terminal UI framework
  • LuaJIT - Lightning-fast plugin runtime

📜 License

ProGit Core: LCL-1.0 (Libertaria Commonwealth License) Plugin SDK: LSL-1.0 (Libertaria Sovereign License)

Both licenses use file-level copyleft (modifications to our files stay open, your larger works stay yours). LSL-1.0 includes explicit patent grant for corporate use.

See LICENSE for full text.


🌟 Star History

If you find ProGit useful, please star the repo!


Made with ❤️ by the ProGit Team

WebsiteDocumentationSourceDiscord