Easily add emojis to your git commit messages 😎

Related tags

Utilities gimoji
Overview

gimoji

Build Status gitmoji badge

./screenshot

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.

Installation

cargo install -f gimoji

Usage

gimoji is primarily intended to be used as a git commit hook. Once installed, ask gimoji to install the hook in your respositry:

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.

Updating the emoji cache

On the first run, gimoji will download the emoji list from gitmoji and cache it locally. If you want to update the cache, run:

gimoji --update-cache

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 to the commit if it's a completely new commit without any existing message (e.g it won't kick in when a message is already specified through -m option of git commit, or when ammending 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.

The philosophy here is to enable you to quickly and easily choose an emoji and get out of your way.

License

MIT

You might also like...
Easily sync your clipboard between devices. This is a work in progress app.

Clipboard Sync Description Easily sync your clipboard between devices. This is a work in progress app. Stack Frontend: React Tauri isomorphic-ws TSX,

Verify that registry crates in your Cargo.lock are reproducible from the git repository

cargo-goggles Verify that registry crates in your Cargo.lock are reproducible from the git repository. This cargo subcommand analyzes the following pr

Better error messages for axum framework.

axum-debug This is a debugging crate that provides better error messages for axum framework. axum is a great framework for developing web applications

Log defmt messages over the serial port.
Log defmt messages over the serial port.

defmt-serial A defmt target for logging over a serial port. Messages can e.g. be read using socat and passed through defmt-print, see example-artemis

A low-ish level tool for easily writing and hosting WASM based plugins.

A low-ish level tool for easily writing and hosting WASM based plugins. The goal of wasm_plugin is to make communicating across the host-plugin bounda

Annotation to easily define ad-hoc / one-shot extension traits

Annotation to easily define ad-hoc / one-shot extension traits

Convert Hygea calendar to an iCal file to easily import it to Google Calendar (Rust version)

Hygea to iCal Goal Hygea provides a calendar via PDF and an application called Recycle. I just wanted to use an iCal file to import it in my calendar.

PM-Tools - a simple Rust util to easily create server directories

PM-Tools PM-Tools is a simple Rust util to easily create server directories or plugins without the hassle of unzipping or creating directories Progres

Easily customizable command runner made with Rust πŸ¦€
Easily customizable command runner made with Rust πŸ¦€

Easily customizable command runner made with Rust πŸ¦€ πŸ“¦ Usage Install by the following command: cargo install rxe Or build from the source. git clone

Comments
  • πŸ”₯ Remove exec line from git hook

    πŸ”₯ Remove exec line from git hook

    I copied over that line from the git hook gitmoji-cli installs and still not sure what it does. I had assumed it's needed but it seems it isn't.

    Also while I don't know if the git hook works on Windows at all, this line will very likely fail there.

    opened by zeenix 14
  • On Mac git hook does not work

    On Mac git hook does not work

    The hook ends up with the following output:

    + exec
    + gimoji --hook .git/COMMIT_EDITMSG
    Error: Custom { kind: Other, error: "Failed to initialize input reader" }
    
    bug question 
    opened by rimbi 2
  • There seems to be something wrong with the alembic

    There seems to be something wrong with the alembic

    I copied alembic βš—οΈ to the clipboard and then pasted it to the console (iterm2) and here is what I see:

    image

    That does not happen with, for instance, lock icon: image

    Also, it looks ok when I paste the alembic to another medium, such as here: βš—οΈ

    One more thing: I have noticed that with lock, there is a space between the icon and to in the message Copied πŸ”’οΈ to the clipboard, while with alembic it does not exist.

    opened by rimbi 1
  • Show progress of emoji download

    Show progress of emoji download

    Although the database is a 10K file, it could still take a few seconds on a congested/slow network. It would be good to show progress is possible. ratatui has two widgets we can use for showing the progress.

    opened by zeenix 0
Releases(0.3.0)
  • 0.3.0(May 25, 2023)

    ✨ Copy the selected emoji to the clipboard in standalone mode (#7). 🚸 Case-insensitive search for emojis (#9). βž• Depend on arboard. βž• Depend on regex crate.

    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(May 24, 2023)

    🚸 Esc key for clearing the search & quitting the app πŸ“ Specify path to the screenshot in the README. 🚸 Ensure search entry gets enough space πŸ“¦οΈ Add missing data to Cargo.toml file 🩹 Fix typo in link name

    Source code(tar.gz)
    Source code(zip)
Owner
Zeeshan Ali Khan
Free Software dev, Ecomodernist, into flying & Rust, and love cats. https://gitlab.freedesktop.org/zeenix
Zeeshan Ali Khan
Generate commit messages using GPT3 based on your changes and commit history.

Commit Generate commit messages using GPT-3 based on your changes and commit history. Install You need Rust and Cargo installed on your machine. See t

Brian Le 40 Jan 3, 2023
A gitmoji interactive client for using gitmojis on commit messages.

gitmoji in Rust This is just an opinionated version of gitmoji-cli written in Rust . A gitmoji interactive client for using gitmojis on commit message

igor 2 Aug 16, 2022
A CLI tool that automatically writes commit messages for you.

Automagically-generated commit messages A CLI tool that generates commit messages from your staged changes, built in Rust and using OpenAI's Codex. In

Miguel Piedrafita 839 Jan 6, 2023
Add nice user-facing diagnostics to your errors without being weird about it.

thisdiagnostic is a Rust library for adding rich diagnostic metadata to errors, for some really fancy and customizable error reporting!

Kat MarchΓ‘n 14 Feb 2, 2022
Spot coupling by finding out which files are always in the same commit

git moves-together This tells you when files in the repository frequently move together. This lets you identify where the coupling is in the system. C

Billie Thompson 14 Oct 31, 2022
Mirror of oxipng for pre-commit.

oxipng pre-commit mirror Mirror of oxipng for pre-commit. Installation Add to your pre-commit config: - repo: https://github.com/adamchainz/pre-comm

Adam Johnson 11 Jan 15, 2022
Openfare - Monetize software with one commit.

OpenFare ?? Monetize software with one commit. ?? OpenFare monetizes any software library with one code change. The goal: fund the next million softwa

null 172 Dec 2, 2022
Universal changelog generator using conventional commit+ with monorepo support. Written in Rust.

chlog Universal changelog generator using conventional commit+ with monorepo support. chlog can generate the changelog from the conventional commits w

Jeff Yang 3 Nov 27, 2022
A partial reimplementation of pre-commit in Rust

preco A partial reimplementation of pre-commit in Rust. Important Heavily just a proof-of-concept and work-in-progress. There are bits that could prob

Aarni Koskela 8 Feb 22, 2024
Hosts EDitor, it will add/update/delete host entries for you

Host EDitor A command-line tool to easily manage you hosts file. View Demo Β· Report Bug Β· Request Feature Table of Contents About The Project Built Wi

Arjen Wiersma 10 Nov 2, 2022