#git #diff #unstaged #tui #editor

bin+lib mamediff

A TUI editor for managing unstaged and staged Git diffs

14 releases (5 breaking)

Uses new Rust 2024

0.5.1 Oct 9, 2025
0.4.1 Aug 31, 2025
0.3.1 Jun 26, 2025
0.2.1 Mar 15, 2025

#2365 in Command line utilities

MIT license

270KB
2.5K SLoC

mamediff

mamediff Documentation Actions Status License

A TUI editor for managing unstaged and staged Git diffs. Inspired by Magit, this tool focuses on providing a simpler, specialized interface for staging, unstaging, and discarding diffs.

mamediff

Installation

Pre-built binaries

Pre-built binaries for Linux and MacOS are available in the releases page.

// An example to download the binary for Linux.
$ VERSION=0.4.0
$ curl -L https://github.com/sile/mamediff/releases/download/v${VERSION}/mamediff-${VERSION}.x86_64-unknown-linux-musl -o mamediff
$ chmod +x mamediff
$ ./mamediff -h

With Cargo

If you have installed cargo (the package manager for Rust), you can install mamediff with the following command:

$ cargo install mamediff
$ mamediff -h

Usage

Just execute mamediff command within a Git directory. The available key bindings will be displayed in the top-right corner of the window.

$ mamediff
->| Unstaged changes (1 files)                     | (q)uit [ESC,C-c]
  :   modified src/main.rs (1 chunks, -1 +1 lines) | ()        [C-n]
  :     @@ -1,3 +1,3 @@                            | ()        [C-f]
  :        fn main() {                             | (t)oggle   [TAB]
  :       -    println!("Hello, World!");          | (s)tage
  :       +    println!("Hello, mamediff!");       | (D)iscard
  :        }                                       +---- (H)ide -----
  | Staged changes (0 files)

You Might Also Be Interested In

Dependencies

~2MB
~31K SLoC