Skip to content

Markdown Emoji Picker

Pick emoji for your README, changelog, and PRs โ€” Unicode or:shortcode:

A curated set of engineering-friendly emoji โ€” status, release, tooling, docs, writing, people, and reactions. Filter by keyword, browse by category, copy as Unicode or:shortcode:. Works for GitHub, GitLab, Slack, Discord, and static sites.

Click any tile to copy the character.

GitHub, GitLab, Slack, and most chat tools render :shortcode: emoji. Static renderers (CommonMark, many static-site generators) require the literal Unicode character. Toggle the mode to copy the format that works on your destination.

How to use the Markdown emoji picker

  1. Pick a category (Status, Release, Tooling, Docs, Writing, People, Reactions).
  2. Filter by keyword โ€” try bug, launch, docs, warn.
  3. Choose copy mode โ€” Unicode for static renderers, :shortcode: for GitHub / Slack.
  4. Click any tile to copy. Paste straight into your README, PR description, release note, or chat message.

Why use emoji in Markdown at all?

Emoji aren't decoration for its own sake โ€” they're visual anchors in long-form documents. A small icon next to a section header is more scannable than a wall of bold prose.

Common patterns:

  • READMEs: a tiny set of icons in the Features list (โœจ New, ๐Ÿ› Fixed, โšก Performance) makes a 50-line release section scannable in 5 seconds.
  • Changelogs: Keep-a-Changelog purists keep emoji out of the spec, but many open-source projects (Vite, Next.js, others) use them to label sections.
  • PR templates: emoji checkboxes (โœ… tests pass, ๐Ÿ“ docs updated, ๐Ÿ”’ security review) communicate status faster than text.
  • Commit messages: gitmoji convention (โœจ Add login, ๐Ÿ› Fix crash) gives git log a visual rhythm.
  • Docs callouts: โš ๏ธ for warnings, ๐Ÿ’ก for tips, โ„น๏ธ for info โ€” recognizable from any other doc system.

Categories at a glance

CategoryBest for
StatusChecklists, build states, decision pages.
ReleaseChangelogs, version tags, ship posts.
ToolingCI / build / config sections.
DocsReference indexes, "see also" links.
WritingSection openers, callouts in long prose.
PeopleAcknowledgements, contributor lists, welcome notes.
ReactionsPR review comments, support messages, chat.

Unicode vs shortcode โ€” quick decision guide

  • Targeting GitHub UI, GitLab, Slack, Discord? Use shortcodes โ€” they're more readable in source and render the same.
  • Targeting a static site, Pandoc, or unknown renderer? Use Unicode โ€” guaranteed to render.
  • Mixed audience? Default to Unicode. It works everywhere; shortcodes don't.

Accessibility tips

  • Don't rely on emoji as the only signal. Pair with text: โœ… Done, not just โœ….
  • Avoid carriers of cultural meaning that translate poorly across regions (๐Ÿ‘Œ, ๐Ÿค in some locales).
  • Skin-tone modifiers can be picked from your OS emoji panel โ€” this picker keeps the catalog neutral.
  • Screen readers read the emoji name aloud (๐Ÿš€ โ†’ "rocket"), which can be surprising in a serious announcement. Hide decorative emoji with aria-hidden when the surrounding text already conveys the meaning.

Companion tools

Privacy & data

The picker is a fully client-side catalog. Nothing is uploaded; the clipboard write happens locally.

Frequently asked questions

Do I have to use shortcodes for emoji in Markdown?
It depends on where the Markdown is rendered. GitHub, GitLab, Slack, Discord, and most chat tools translate `:rocket:` to ๐Ÿš€ automatically. Static-site generators (CommonMark renderers, many Hugo themes, vanilla Marked) do not โ€” they need the literal Unicode character. Toggle the copy mode at the top to grab the format your destination expects.
Why a curated list instead of every emoji?
Most emoji never end up in a README or release note. This picker focuses on the ~50 emoji engineering teams actually use โ€” status, release, tooling, docs, and reactions โ€” so you find the right one in two seconds instead of scrolling a 3000-emoji catalog.
Can I filter by keyword?
Yes. The filter input matches names, keywords, and shortcodes. Try queries like `release`, `bug`, `docs`, `thanks`, `warn`. Combine with a category pill to narrow further.
What's the difference between Unicode and :shortcode: mode?
Unicode mode copies the actual character (๐Ÿš€). Shortcode mode copies the GitHub-style identifier (`:rocket:`). Use Unicode when your renderer doesn't expand shortcodes; use shortcodes when sharing in chat tools or GitHub UI where they render automatically.
Is this tied to gitmoji?
It overlaps. Gitmoji is a convention for prefixing git commits with emoji to signal intent (โœจ for new features, ๐Ÿ› for fixes). The release and tooling categories here align with that convention, but you can also use this picker for general README and docs work without committing to gitmoji.
Are the emoji accessible?
Each rendered emoji is decorative when used as a label decoration. If an emoji carries meaning on its own (e.g., '๐Ÿšจ Important'), pair it with text and consider an `aria-label` so screen readers don't read 'police car' for what you meant as 'alert'.