gimoji
August 16, 2026 ยท View on GitHub

A CLI tool that makes it easy to add emojis to your git commit messages. It's very similar to (and is based on) gitmoji-cli but written in Rust.
Try in your browser
A WebAssembly build of the same picker is hosted at https://zeenix.github.io/gimoji/. It runs entirely in the browser, with no server roundtrip; clicking or pressing Enter on a row copies the selected emoji to your clipboard. It works on touch screens too: tap the search box to bring up the on-screen keyboard, drag the list to scroll it, and tap a row to copy.
To run it locally during development:
./scripts/serve-web.sh # builds, bundles, and serves at http://localhost:8000
Installation
Fedora (>= 37)
sudo dnf install gimoji
Other OSes
cargo install -f gimoji
Usage
gimoji is primarily intended to be used as a git prepare-commit-msg hook. Once installed, ask
gimoji to install the hook in your repository:
cd /path/to/your/project/
gimoji --init
Now, whenever you run git commit, gimoji will kick in and prompt you to choose an emoji.
If you launch gimoji directly without any arguments, it will prompt you to choose an emoji and
then copy your choice to the system clipboard.
Use --help to see all the available options.
lefthook
If you'd prefer to use lefthook, you may add something like the following to your .lefthook.toml:
[prepare-commit-msg.commands.gimoji]
interactive = true
run = "gimoji --hook {1} {2} || true"
use_stdin = true
Remember to lefthook install to activate your hooks.
Rationale
gitmoji-cli while being a great tool, can be considerably slow. Hence this project. gimoji has a
few differences:
- it will launch a full-screen terminal UI to choose an emoji, hence emojis on the console.
- it will only add an emoji prefix to the commit if one is not already present in the commit
message (e.g when using
-moption ofgit commit, or when amending a commit). - it does not add anything other than an emoji (like scope, summary etc.) to the commit message and lets you do that in your preferred editor.
- Unlike gitmoji-cli that downloads and caches its emoji database at runtime,
gimojiuses a pre-compiled database that is included in the binary itself, hence it's much faster to start up and does not need Internet access.
The philosophy here is to enable you to quickly and easily choose an emoji and get out of your way.