-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
Forge is a terminal-based Git-aware project management system. It lets you manage Git repositories, view diffs, track tasks, and collaborate with team members all from your terminal without breaking your coding flow.
- Integrated workflow — Git operations + project management in one TUI
- Visual context — See diffs, branches, and project status side-by-side
- Keyboard-driven — Designed for developers who live in the terminal
- No context switching — Everything you need without tabs/windows
Not yet. Forge validates a design concept for Git-integrated project management. Core features work well, but some advanced features are still in development.
Yes! Forge works with any existing Git repository. It reads from and writes to Git normally—you can continue using your usual Git commands alongside Forge.
Yes, Forge requires Git 2.0+ to be installed on your system. Install via:
-
macOS:
brew install git -
Ubuntu/Debian:
sudo apt-get install git - Windows: Download from git-scm.com
Yes, but terminal support varies. Use Windows Terminal for best results. Cygwin or WSL2 also work.
Any terminal with 256-color support works well:
- macOS: Terminal.app, iTerm2, Alacritty
- Linux: Gnome Terminal, Konsole, Alacritty, xterm
- Windows: Windows Terminal, ConEmu
cd /path/to/forge
git pull origin main
cargo build --release
cp target/release/forge ~/.local/bin/# Navigate to a Git repository
cd /path/to/your/repo
# Run Forge
forgeForge looks for a .git folder. If you're in a non-Git directory:
git init # Initialize a new repo
# or
cd /path/to/git/repo # Navigate to an existing repo- Go to the Changes screen (Tab navigation)
- Use arrow keys to select files
- Press Space to toggle staging
- Type a commit message
- Press Enter to commit
Use standard Git commands:
git reset --soft HEAD~1 # Undo last commit, keep changes staged
git revert HEAD # Create a new commit that undoes changes
git amend # (if using Git 2.32+) Amend last commitNot yet. Remote operations (push, pull, fetch) are not yet implemented. Use the Git CLI for now:
git push origin main
git pull origin main- Go to Merge Visualizer screen
- Use arrow keys to select conflicted files
- View local and incoming versions side-by-side
- Press Space to mark as resolved
- Use Git CLI to finalize:
git merge --continue
Not yet. Keybindings are currently hardcoded. Future versions will support custom configuration.
- Go to Project Board
- Press n to create new module
- Enter module name and details
- Press Enter to save
Developers are extracted from Git commit history automatically. Each unique commit author is added as a developer.
Yes, go to Module Manager and press n to create a new developer manually.
Progress is a 0-100% indicator for module completion. Set manually based on actual development status.
-
Modules & Developers:
.forge(JSON file in repo root) -
Merge tracking:
.git/forge(JSON file in Git directory) - Settings: System configuration (theme, preferences)
- Check terminal size (minimum 80×24 characters)
- Ensure you're in a valid Git repository
- Try updating Rust:
rustup update - Check for large repositories (>100MB history may be slow)
- Press ? to see available keybindings for current screen
- Some terminal emulators don't support certain key combinations
- Try a different terminal if issues persist
- Check that your terminal is in focus
- Ensure the file is modified (check with
git status) - Try selecting a different file and back
- Verify terminal has enough columns to display diff
- Check permissions on
.forgefile - Ensure you're in a writable directory
- Try deleting
.forgeand restarting Forge
- Your terminal may not support 256 colors
- Try a different terminal emulator
- Disable High Contrast theme in settings
- Your repository may be empty or corrupted
- Try:
git statusto verify repo health - If corrupted, consider cloning from remote
Current Behavior:
Forge uses libgit2 for all Git operations and will display errors when corruption is detected:
- Missing/corrupted HEAD: Branch name may show as empty, some operations will fail
- Corrupted index: File staging, commits, and change listing will fail with error messages
- Missing objects: Diffs may appear empty or operations may fail
-
Locked index: Operations fail if
.git/index.lockexists (another Git process running)
Recommended Actions:
-
Check repository health: Run
git fsckin a terminal to diagnose corruption -
Remove index lock: If operations fail with "index is locked", remove
.git/index.lock -
Rebuild index: Run
git read-tree HEADto rebuild a corrupted index - Restore from backup: For severe corruption, clone from remote or restore from backup
- Use standard Git: Forge doesn't currently auto-repair repositories (see Roadmap)
Prevention:
- Don't force-quit Forge during commit operations
- Avoid running multiple Git clients simultaneously on the same repo
- Keep repository backups and push to remotes regularly
Future Improvements (Planned - see Roadmap):
- Repository health check on startup
- Automatic detection and repair of common index corruption
- Graceful degradation (read-only mode when index is corrupted)
- Better error messages with actionable recovery steps
- Shallow clone large repos:
git clone --depth 1 - Use more powerful hardware for large repositories
- Exclude large files from staging
Forge works with repositories of any size, but very large histories (>10,000 commits) may show slower performance. The commit history view limits to last 50 commits to maintain responsiveness.
No, Forge doesn't cache data locally. It reads from your existing Git repository.
- Git data: Standard Git repository (
.gitfolder) - Forge metadata:
.forgeJSON file in repo root - No data is sent to external servers
Forge doesn't add any security features beyond Git itself. If your Git repository is secure, your Forge data is secure.
Yes:
rm .forge # Delete module/developer data
rm -rf .git/forge # Delete merge tracking dataOpen an issue on GitHub Issues with:
- Steps to reproduce
- Expected vs actual behavior
- Terminal/OS information
Open a discussion or feature request on GitHub.
Yes! See the Development guide for contribution workflow.
Not yet. Forge works with your current branch. Switch branches using the Branch Manager.
Forge executes Git normally, so Git hooks run as expected.
Forge treats the entire repository as one unit. For monorepos, it shows all modules and developers across the entire codebase.
Can't find your answer? Open an issue on GitHub Issues or ask in Discussions.