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 presents git
status information, 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.
? icon in the bottom right
to bring up the interactive, context-aware help menu. It shows all the
actions you can take. It's helpful!
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.
- Paths that are not valid UTF-8 may display with replacement characters.
-
Requires
giton yourPATH; it refreshes on focus and after its own commands rather than watching the filesystem.