Skip to content
Skillpedia
Deploy & cloud (DevOps)40k · #5174

gitmoji

Lets your agent write commit messages with emojis. It picks the right emoji for the change and creates a clear, organized message.

What it does

This assistant creates 'commit' messages for programmers, using emojis to indicate what the code change does. It helps organize the code's change history.

When to use it

  • ✓When you want to add an emoji to a commit message.
  • ✓When you need help choosing the right emoji for a code change.
  • ✓When you want to follow the emoji commit message standard.

Example of what to ask your AI

“Write a gitmoji commit message for this change: I updated the login page to use a new design.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/github/awesome-copilot/blob/main/skills/gitmoji/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/github/awesome-copilot/blob/main/skills/gitmoji/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

It analyzes the changes you made to the code. Then, it picks the emoji that best represents the type of change (like adding a feature, fixing a bug, etc.) and writes the complete message.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add github/awesome-copilot --skill gitmoji

Or download just the file:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/gitmoji/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Gitmoji

Generates commit messages that follow the gitmoji convention: every commit starts with an emoji that identifies the intent of the change at a glance. Given a diff, a list of staged files, or a plain description of a change, this skill picks the single most appropriate gitmoji and writes a concise, well-formed commit message around it.

This skill only generates the message — it never runs git commit or any other git command. The output is a copyable message for the user to use.

When to Use This Skill

  • User says "write a gitmoji commit", "gitmoji this change", or "add an emoji to my commit message"
  • User asks "which gitmoji should I use for this?"
  • User pastes a git diff or describes a change in a project that uses gitmoji-style commit history
  • User wants an expressive, scannable commit history using emojis

When not to use: if the project follows plain Conventional Commits (feat:, fix:, ...) without emojis, use the conventional-commit or commit-message-storyteller skill instead. If unsure which convention the project uses, ask the user to provide recent commit history (for example, the output of git log --oneline -10).

Message Format

The gitmoji specification:

<intention> [scope?][:?] <message>
  • intention — exactly one gitmoji expressing the goal of the commit
  • scope (optional) — the section of the codebase affected, in parentheses
  • message — a brief imperative explanation of the change

Examples:

✨ add multi-tenant support to the billing service
🐛 (auth) prevent token refresh loop on expired sessions
♻️ (api): extract pagination logic into shared helper

Emoji Style: Unicode vs Shortcode

Gitmoji supports two equivalent notations:

Style Example When to prefer
Unicode ✨ add dark mode Default — renders everywhere, shorter subject line
Shortcode :sparkles: add dark mode Platforms that render shortcodes (GitHub, GitLab) or teams that grep commit logs by code

Match the repository's existing history. If recent commits use :sparkles:-style shortcodes, generate shortcodes; otherwise default to unicode emojis.

How It Works

Step 1: Understand the Change

Work from whatever the user provides:

  1. A git diff — read it and identify what changed and why
  2. A list of staged/modified files — infer intent from file names and paths
  3. A plain description — use it directly

If the intent is genuinely ambiguous (e.g. "updated auth.js" could be a fix, a feature, or a refactor), ask one short clarifying question rather than guessing.

Step 2: Identify the Dominant Intent

Determine the primary purpose of the change. Common intents and their gitmojis:

Emoji Shortcode Intent
✨ :sparkles: Introduce new features
🐛 :bug: Fix a bug
🚑️ :ambulance: Critical hotfix
📝 :memo: Add or update documentation
♻️ :recycle: Refactor code (no behavior change)
✅ :white_check_mark: Add, update, or pass tests
⚡️ :zap: Improve performance
🎨 :art: Improve structure / format of the code
🔥 :fire: Remove code or files
🔒️ :lock: Fix security or privacy issues
⬆️ :arrow_up: Upgrade dependencies
🔧 :wrench: Add or update configuration files
💄 :lipstick: Add or update the UI and style files
💥 :boom: Introduce breaking changes
🚨 :rotating_light: Fix compiler / linter warnings
🌐 :globe_with_meridians: Internationalization and localization

This is only the most common subset — always consult references/gitmoji-reference.md for the full official list of 75 gitmojis before settling on one; a more specific emoji often exists (e.g. 🩹 for a trivial fix, ✏️ for a typo, 🚚 for a file move).

Step 3: Pick Exactly One Emoji

Rules for ambiguous cases:

  • Specific beats generic — a typo fix is ✏️, not 🐛; moving files is 🚚, not ♻️; a trivial non-critical fix is 🩹, not 🐛
  • Tests: ✅ for adding/updating passing tests; 🧪 only for intentionally failing tests (e.g. TDD red step)
  • Fix vs hotfix: 🚑️ only for urgent production fixes; everyday bug fixes are 🐛
  • Security fix: 🔒️ wins over 🐛 when the bug is a security issue

…

FAQ

What is a 'commit'?

It's like saving your code's progress. Each 'commit' records a set of changes, and a message explains what was done.

What is 'gitmoji'?

It's a convention that uses emojis to give a quick idea of what each code 'commit' does, making the history more visual and easier to understand.

Does this assistant make the code changes for me?

No, it only creates the text message for the 'commit'. You still need to apply the changes to your code and use Git's 'commit' command.

Details

Original description by the author

Generates commit messages following the gitmoji convention (https://gitmoji.dev) — picks the right emoji for the intent of the change and writes a well-formed message. Use when asked to "write a gitmoji commit", "add an emoji to my commit message", "which gitmoji should I use", "gitmoji this change", or when a project uses gitmoji-style commit messages. Works from a git diff, staged changes, or a

repo: github/awesome-copilot

Popularity

GitHub stars
40k
Ranking position
#5174
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills