Ceci n'est pas Magit.
A fast, keyboard-first git client in the spirit of Magit—no Emacs required.
Magritte is written in Rust using gpui, the framework that powers Zed. Magritte's asynchronous core ensures that it gracefully handles large repos and stays responsive even during slow git operations.
Installation
Via homebrew:
brew install lyallcooper/magritte/magritte Or download a binary from GitHub.
Basic Usage
After installation, launch Magritte from your terminal:
# Open the repo you're in
$ magritte
# Or pass a repo to open
$ magritte /dev/my-project
The main screen is the status view. It shows you the
information you'd see from running git status, such as
untracked, unstaged, and staged files. It also shows your stashes,
unpushed/unpulled changes, recent commits and more.
Use j / k to move. Press Tab on a file name in the status view to expand its diff. Stage and unstage changes using s and u. Open the commit menu with c.
Try it! Press ? or click the ? icon
in the bottom right to bring up the interactive, context-aware help menu.
Use v to enter the ever-useful multi-line visual selection mode. Use it to act on multiple files at once. You can even use it to surgically target specific lines within a diff hunk to act on.
The default keymap uses vim-like (emacs-evil) keybindings. If you prefer
traditional emacs-style, change the Keybindings to "Vanilla" from the
settings screen (accessible via ,). You can also set the keymap_preset to "vanilla" in the config file.
Basic keybindings, vim-style (default)
Basic keybindings, vanilla emacs-style
Transient menus
Magit and Magritte are both built upon keyboard-driven transient command menus, or transients for short. Transients guide you towards your goal by showing you the available options and actions you can take.
Transients are customizable. See the relevant docs section.
Configuration
You can configure essentials from the settings screen (accessible via ,). More advanced settings and custom commands are configurable via the
config.toml config file. See the configuration docs for more details.
Status
Magritte is under active development. Current limitations:
- macOS on Apple silicon is the supported release target; Linux x86_64 builds are best effort.
- Release builds are ad hoc signed, not notarized.
-
Requires
giton yourPATH; it refreshes on focus and after its own commands rather than watching the filesystem.