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
Ready-to-paste message
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 gitmojiOr download just the file:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/gitmoji/SKILL.md -o SKILL.mdTechnical 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:
- A git diff — read it and identify what changed and why
- A list of staged/modified files — infer intent from file names and paths
- 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
Comments
- …
More skills from this repository
acquire-codebase-knowledge
Helps your agent understand and document an existing code project. It's useful for onboarding new people or getting an overview of the architecture.
github/awesome-copilot
acreadiness-assess
Enables your agent to assess a project's readiness for AI and generate a report. It's useful for understanding how well a project is prepared to use AI tools.
github/awesome-copilot
acreadiness-generate-instructions
Helps your agent create instructions for AI tools based on an assessment. It's useful for improving how AI interacts with code and closing identified gaps.
github/awesome-copilot
acreadiness-policy
Enables your agent to help define or apply policies for AI project assessment. It's useful for standardizing how projects are evaluated and ensuring compliance.
github/awesome-copilot
Similar skills
bun-runtime
Has your agent use Bun to run, organize, and test code. It helps choose Bun over other tools and migrate existing projects.
affaan-m/ECC
database-migrations
Helps your agent make safe changes to databases. It ensures changes can be undone and minimizes downtime.
affaan-m/ECC
deployment-patterns
Sets up deployment and CI/CD workflows, containerization, and rollback strategies to ensure safe releases.
affaan-m/ECC