loom is a lightweight TUI that replaces GIT_EDITOR for writing commit
messages and interactive rebasing. It provides syntax-highlighted commit
messages, conventional-commit autocomplete, co-author suggestions, a
scrollable diff view, and a floating suggestion popup styled after VSCode
and nvim-cmp.
- Commit message editor — syntax highlighting for conventional commits,
trailers (
Co-authored-by,Reviewed-by,Signed-off-by, etc.), and bullet points - Interactive rebase editor — change actions (pick, reword, edit, squash, fixup, drop), reorder commits, and expand inline diffs
- Floating autocomplete — VSCode/nvim-style suggestion popup at the cursor position, powered by the bubble-overlay library
- Conventional commit types —
feat,fix,docs,refactor, and more, with descriptions - Trailer autocomplete — suggests trailer names (
Co-authored-by:,Reviewed-by:, …) and person values from git history and a persistent local store - Persistent people — co-authors and reviewers are saved to
~/.loom/people.jsonand recalled across sessions - Diff view — scrollable, syntax-highlighted diff with line numbers for 15+ languages
brew tap floatpane/loom
brew install loomsudo snap install loomgo install github.com/floatpane/loom@latestDownload the latest binary from the releases page.
Set loom as your Git editor:
git config --global core.editor "loom"
git config --global sequence.editor "loom"Or use it ad-hoc:
GIT_EDITOR=loom git commit
GIT_EDITOR=loom git rebase -i HEAD~5loom automatically detects whether the file is a git-rebase-todo or a
commit message and launches the appropriate interface.
Pull requests are welcome. Please follow the PR template format.