This is a fork of lusingander/serie with additional features:
--watch [SECONDS]/--fetchβ auto-refresh the view on an interval (default 30s), optionally runninggit fetch --allfirst so commits pushed to remotes appear without manual intervention. See PR #2.--protocol asciiβ Unicode box-drawing fallback that works in any terminal (gnome-terminal, alacritty, xterm, Windows Terminal, etc.) without needing the Kitty or iTerm2 image protocols. Auto-detect now picks this when no image protocol is available instead of unconditionally trying iTerm2. See PR #1.
cargo install --locked --git https://github.com/jpeletier/serieA rich git commit graph in your terminal, like magic π
(This demo shows Ratatui repository!)
Serie (/zΓ©ΛriΙ/) is a TUI application that renders commit graphs like git log --graph --all, using a terminal emulator's image-display protocol for high-quality output where available and a Unicode box-drawing fallback in any other terminal.
While some users prefer to use Git via CLI, they often rely on a GUI or feature-rich TUI to view commit logs. Others may find git log --graph sufficient.
Personally, I found the output from git log --graph difficult to read, even with additional options. Learning complex tools just to view logs seemed cumbersome.
- Provide a rich
git log --graphexperience in the terminal. - Offer commit graph-centric browsing of Git repositories.
- Implement a fully-featured Git client.
- Create a TUI application with a complex UI.
- Works in any terminal environment.
For detailed usage, configuration, and advanced features, see the full documentation.
- Git
- Supported terminal emulator
- Refer to Compatibility for details.
If you're using Cargo:
$ cargo install --locked serie
For other download options, see Installation.
Run serie in the directory where your git repository exists.
$ cd <your git repository>
$ serie
Serie - A rich git commit graph in your terminal, like magic π
Usage: serie [OPTIONS]
Options:
-n, --max-count <NUMBER> Maximum number of commits to render
-p, --protocol <TYPE> Image protocol to render graph [default: auto] [possible values: auto, iterm, kitty, kitty-unicode, ascii]
-o, --order <TYPE> Commit ordering algorithm [default: chrono] [possible values: chrono, topo]
-g, --graph-width <TYPE> Commit graph image cell width [default: auto] [possible values: auto, double, single]
-s, --graph-style <TYPE> Commit graph image edge style [default: rounded] [possible values: rounded, angular]
-i, --initial-selection <TYPE> Initial selection of commit [default: latest] [possible values: latest, head]
--watch [<SECONDS>] Auto-refresh the view on an interval (seconds) [default: 30]
--fetch Run `git fetch --all` before each auto-refresh (implies --watch)
-h, --help Print help
-V, --version Print version
For details on each option, see Command Line Options.
You can see the keybindings by pressing the ? key.
The default key bindings can be overridden. See Custom Keybindings for more information.
Config files are loaded in the following order of priority:
$SERIE_CONFIG_FILE- If
$SERIE_CONFIG_FILEis set but the file does not exist, an error occurs.
- If
$XDG_CONFIG_HOME/serie/config.toml- If
$XDG_CONFIG_HOMEis not set,~/.config/will be used instead.
- If
If the config file does not exist, the default values will be used for all items. If the config file exists but some items are not set, the default values will be used for those unset items.
For detailed information about the config file format, see Config File Format.
The User command feature allows you to execute custom external commands.
You can display the output of commands like git diff in a dedicated view, execute commands like branch deletion in the background, or run interactive commands like vim by suspending the application.
For details on how to set commands, see User Command.
These rendering modes are supported:
- Inline Images Protocol (iTerm2)
- Terminal graphics protocol (kitty)
- Supports both the existing graphics protocol mode and the Unicode placeholder mode.
- ASCII / Unicode box-drawing fallback (works in any terminal)
- Used automatically when
autocannot identify a graphics-capable terminal, or selected explicitly with--protocol ascii.
- Used automatically when
For more information, see Compatibility.
- tmux is supported only when using the kitty Unicode placeholder protocol (image rendering) or the ASCII fallback.
- Sixel graphics is not supported.
- Other terminal multiplexers (screen, Zellij, etc.) other than those listed in Partially supported environments are not supported.
- Windows is not officially supported. Please refer to the related issue.
The following repositories are used as these examples:
To get started with contributing, please review CONTRIBUTING.md.
Contributions that do not follow these guidelines may not be accepted.
MIT







