Fixed all license references in README.md to reflect the actual Libertaria License Stack: - Core TUI: LCL-1.0 (Libertaria Commonwealth License) - Plugin SDK: LSL-1.0 (Libertaria Sovereign License) Both licenses use file-level copyleft instead of project-level copyleft. Bumped version badge to v0.6.1-beta for this documentation release. |
||
|---|---|---|
| .project | ||
| docs | ||
| examples | ||
| plugins | ||
| progit-market/plugins | ||
| scripts | ||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| COMPARISON.md | ||
| CONTRIBUTING.md | ||
| Detail-View.webp | ||
| Kanban-View.webp | ||
| LICENSE | ||
| List-View.webp | ||
| PHASE2_COMPLETE.md | ||
| PHASE2_STATUS.md | ||
| README.md | ||
| RELEASE_NOTES.md | ||
| RELEASE_NOTES_v0.2.0.md | ||
| RELEASE_NOTES_v0.3.0.md | ||
| ROADMAP.md | ||
| SHIPPED.md | ||
ProGit
A blazingly fast, AI-powered Git workflow manager with virtual branches
Status: Beta - Phase 2 (Collaboration) Complete | Phase 3 (Ecosystem) In Progress
🎯 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:
- Press
ain Lanes view - Select an AI action
- 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
cto 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://github.com/yourusername/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
- Virtual Branches Guide - Complete guide to virtual branches
- Plugin SDK - Write Lua plugins (Apache 2.0)
- Contributing - How to contribute
- Changelog - Version history
- Roadmap - Planned features
🏗️ 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.5.0-beta (Current)
- Virtual branches
- Conflict detection
- AI agent menu
- Plugin SDK (foundation)
- LuaJIT runtime integration
- Example plugins
v1.0.0 (Q2 2025)
- Web UI (separate product)
- Cloud sync (optional)
- Mobile companion app
- Enterprise features
See ROADMAP.md for full details.
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for:
- Development setup
- Code style guide
- Testing requirements
- PR workflow
Quick Links:
📊 Comparison
vs GitButler
| Feature | ProGit | GitButler |
|---|---|---|
| Binary Size | 5MB | ~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
Website • Documentation • Discord • Twitter