Done / Passing
:white_check_mark: A task is complete, a check passed, or a box is ticked.
When: Mark a checklist item finished, signal a green CI run, or confirm a request is handled.
Used in: Slack, GitHub, Jira, commit
26 emoji you'll meet in Slack threads, GitHub PRs, Jira tickets, and commit messages β what each one signals, when to use it, and the alias to type it.
Last reviewed:
On distributed, async teams a single emoji carries a whole sentence. A β reaction closes a thread without a reply; a π says "I'm reviewing this"; a π in a channel means "we just shipped". Emoji are fast, scannable, and language-agnostic β which is exactly why the conventions below have settled into a shared vocabulary across companies.
:white_check_mark: A task is complete, a check passed, or a box is ticked.
When: Mark a checklist item finished, signal a green CI run, or confirm a request is handled.
Used in: Slack, GitHub, Jira, commit
:x: Something failed, was rejected, or is not done.
When: A test failed, a PR was declined, or an item is explicitly not happening.
Used in: Slack, GitHub, Jira
:large_green_circle: All healthy / operational. The "everything is fine" light.
When: Status dashboards, on-call channels, and incident threads to show services are up.
Used in: Slack, status pages
:large_yellow_circle: Degraded or warning β working, but not fully healthy.
When: Partial outage, elevated latency, or a metric trending the wrong way.
Used in: Slack, status pages
:red_circle: Down, blocked, or critical. The "stop, this is broken" light.
When: Outage declared, build broken, or a blocker that stops the team.
Used in: Slack, status pages
:dart: A goal, objective, or the thing we are aiming at.
When: Sprint goals, OKRs, or calling out the precise outcome a piece of work targets.
Used in: Slack, Jira
:construction: Under construction β not finished, handle with care.
When: Draft PRs, WIP commits, or sections of a doc that aren't ready.
Used in: Slack, GitHub, commit
:pause_button: Work is intentionally paused β not abandoned, just not active right now.
When: A ticket parked pending a decision, or a project waiting on a dependency.
Used in: Slack, Jira
:arrows_counterclockwise: In progress in a cyclical sense β under review, syncing, or being reprocessed.
When: A PR awaiting review, data syncing, or a retry loop in progress.
Used in: Slack, GitHub
:eyes: Someone is looking at it β acknowledging or actively reviewing.
When: React to a PR or message to say "I'm on it / I've seen this".
Used in: Slack, GitHub
:bulb: A suggestion, idea, or non-blocking proposal.
When: Offer an alternative in a review, or flag a thought without demanding a change.
Used in: Slack, GitHub
:rocket: Shipping it β a deploy, release, or launch.
When: Announce a release, kick off a deploy, or celebrate going live.
Used in: Slack, GitHub, commit
:boom: A change that breaks backward compatibility β consumers must update.
When: Flag a breaking API change in a PR title, changelog, or commit.
Used in: GitHub, commit
:zap: A performance or speed improvement.
When: Mark a commit or ticket that makes something faster or lighter.
Used in: GitHub, commit
:arrow_up: Bump a dependency to a newer version.
When: Dependency-update PRs and commits (often automated by bots).
Used in: GitHub, commit
:arrow_down: Roll a dependency back to an older version.
When: When a new version broke something and you need to revert it.
Used in: GitHub, commit
:bug: A defect β something behaves incorrectly.
When: Label a bug report, a fix commit, or a Jira issue type.
Used in: Slack, GitHub, Jira, commit
:fire: On fire β urgent, needs attention now.
When: Flag a production problem or an urgent fix going out fast.
Used in: Slack, commit
:ambulance: An emergency fix for a critical production issue.
When: A patch that goes straight out to stop active damage. Stronger than π₯.
Used in: GitHub, commit
:lock: A change that addresses a security vulnerability.
When: Security patches in commits and changelogs, often after a CVE.
Used in: GitHub, commit
:memo: Documentation β writing or updating it.
When: Commits and PRs that only touch docs, READMEs, or comments.
Used in: GitHub, commit
:sparkles: gitmoji: introduce a new feature.
When: The canonical gitmoji prefix for feature commits β "β¨ Add dark mode".
Used in: commit (gitmoji)
:recycle: gitmoji: refactor code without changing behaviour.
When: Restructuring or tidying code with no functional change.
Used in: commit (gitmoji)
:pencil2: gitmoji: fix a typo.
When: Tiny text corrections in code, docs, or copy.
Used in: commit (gitmoji)
:art: gitmoji: improve structure or format of the code.
When: Formatting, linting, and style-only changes.
Used in: commit (gitmoji)
:test_tube: gitmoji: add or update tests.
When: Commits that add, fix, or refactor tests.
Used in: commit (gitmoji)
gitmoji is a popular convention for emoji-driven commit messages. Each commit starts with an emoji that signals its intent, so a glance down the git log tells you what kind of change each commit is β feature, fix, refactor, docs β without reading every message.
β¨ Add user profile export
π Fix off-by-one in pagination
β»οΈ Refactor auth middleware
π§ͺ Add tests for token refresh
π Update README install steps
β‘ Cache the expensive lookup
π Patch XSS in comment renderer
Tooling like the gitmoji-cli helps you pick the right emoji interactively. Some teams pair it with
Conventional Commits (e.g. feat:, fix:); others use one or the other. Pick one convention and apply it consistently.
Emoji don't mean the same thing everywhere. A π thumbs-up reads as a friendly "got it" to many, but in parts of the Middle East and West Africa it can be offensive, and across much of Gen Z online it can come across as passive-aggressive or dismissive β a curt "fine, whatever". The π folded hands emoji is read as "thank you" or "please" by some, as "prayer" by others, and as a "high five" by a few.
On a global team, prefer unambiguous status markers (β β π§ π΄) for anything that matters, and use a quick word when a reaction could be misread. When in doubt, write the sentence.
A β reaction is a personal, low-key acknowledgement β "I saw this, it's handled" β that closes a thread without adding a new message. Posting π as a message (rather than a reaction) is a broadcast to the whole channel that something shipped or went live, meant to be seen by everyone, not just the thread participants.
gitmoji is a standard where each commit message starts with an emoji that categorises the type of change β β¨ for a new feature, π for a bug fix, β»οΈ for a refactor, π§ͺ for tests. Scanning a git log then tells you at a glance what kind of work each commit represents without reading every full message.
π₯ flags something urgent β a production problem that needs attention or a fix going out fast. π (critical hotfix) is a step above it: an emergency patch shipped specifically to stop active damage right now, reserved for the more severe case rather than general urgency.
gitmoji gives a fast visual scan of a git log, while Conventional Commits (feat:, fix:, chore:) provides a machine-parseable prefix that tooling like semantic-release can use to automate changelogs and version bumps. Teams that want both human scannability and automated tooling combine them, e.g. "β¨ feat: add dark mode," though most teams pick one to avoid redundancy.
π signals "I'm looking at this now" β an acknowledgement that review is actively happening or about to. π signals a cyclical in-progress state β the PR is awaiting another round, syncing with a branch, or going through a retry β a broader "still in motion" status rather than "I'm the one looking."
π reads as a friendly acknowledgement to many people, but is considered offensive in parts of the Middle East and West Africa, and can come across as dismissive or passive-aggressive in casual online use. π is read as "thank you," "please," "prayer," or even "high five" depending on the person, so its meaning isn't reliable across a distributed, multicultural team β unambiguous markers like β π§ π΄ are safer for anything that actually matters.
β¬οΈ marks bumping a dependency to a newer version, the far more common case and often generated automatically by bots like Dependabot or Renovate. β¬οΈ marks the less common case of deliberately rolling a dependency back to an older version, typically because the newer release broke something and the team needs to revert while a fix is pending.
π§ (work in progress) signals active, ongoing work that simply isn't finished yet β a draft PR or a section of a doc still being written. βΈοΈ (paused) signals work that was started but is now intentionally on hold, waiting on a decision or a dependency, rather than being actively worked on right now β the distinction matters because π§ implies "don't review yet, still moving," while βΈοΈ implies "nothing's happening here at the moment."
π marks a commit that fixes a defect β behaviour that was simply incorrect. π specifically marks a commit that addresses a security vulnerability, often following a CVE or security review, which is a narrower and typically more sensitive category than a general bug fix even though both are technically "fixes."
The individual emoji carry consistent meaning across contexts β π§ signals "not ready" whether it's in a Jira ticket title, a Slack thread, or a commit message β but which emoji show up where differs. Status-and-outcome emoji (β β π’ π΄) are common in Slack and status pages, while the gitmoji set is specific to commit messages and rarely used as a chat reaction.