magit-git-toolbelt is an Emacs package that integrates @nvie’s git-toolbelt CLI utility into Magit. It provides a Transient menu interface to access git-toolbelt commands directly from Emacs without leaving your workflow.
Features include:
- Branch management (cleanup merged branches, list recent/local/remote branches)
- Commit info (initial commit, current branch, SHA)
- Diff & inspection (modified, untracked)
- Merge status (merged, unmerged)
- Actions (undo last commit)
Requirements:
- Emacs 26.1+
- Magit 3.0.0+
- git-toolbelt (installed separately)
(use-package magit-git-toolbelt
:ensure t
:after magit)Then you can access magit-git-toolbelt from the Magit status menu by typing @ or m-x magit-git-toolbelt.
Screenshot of magit-git-toolbelt from the Magit status menu
There are still a lot of commands left to integrate into this interface as this first pass initially aims to integrate the commands that simply return information. Some of these commands are covered natively in Magit, so there is not a big need to create the interface to it here unless it offers novel functionality.
- [X] git-cleanup
- [X] git-current-branch
- [ ] git-main-branch
- [ ] git-fixup
- [ ] git-fixup-with
- [X] git-active-branches
- [ ] git-diff-since
- [X] git-local-branches
- [X] git-local-commits
- [ ] git-local-merges
- [X] git-merged / git-unmerged / git-merge-status
- [ ] git-branches-containing
- [X] git-recent-branches
- [X] git-remote-branches
- [X] git-remote-tracking-branch
- [ ] git-repo
- [ ] git-root
- [X] git-initial-commit
- [X] git-sha
- [ ] git-stage-all
- [ ] git-unstage-all
- [ ] git-update-all
- [ ] git-workon
- [X] git-modified
- [ ] git-modified-since
- [ ] git-separator
- [ ] git-spinoff
- [ ] git-wip
- [ ] git-committer-info
- [ ] git-drop-local-changes
- [ ] git-stash-everything
- [ ] git-push-current
- [X] git-undo-commit
- [ ] git-undo-merge
- [ ] git-skip / git-unskip / git-show-skipped
- [ ] git-commit-to
- [ ] git-cherry-pick-to
- [ ] git-delouse
- [ ] git-shatter-by-file
- [ ] git-cleave