compose-email-with-emojis▌
emojis.directory/compose-email-with-emojis-uk7ipo · updated May 21, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
Look up matching emojis on emojis.directory for each idea in an email's copy, then return a structured email payload (subject + body + emojis_used audit) with emojis interleaved through the body for the caller to paste into their own mail client.
| name | compose-email-with-emojis |
| title | Compose Email with Emojis for Your Ideas |
| description | >- Look up matching emojis on emojis.directory for each idea in an email's copy, then return a structured email payload (subject + body + emojis_used audit) with emojis interleaved through the body for the caller to paste into their own mail client. |
| website | emojis.directory |
| category | productivity |
| tags | - email - emojis - writing - copywriting - communication |
| source | 'browserbase: agent-runtime 2026-05-19' |
| updated | '2026-05-19' |
| recommended_method | url-param |
| alternative_methods | - method: browser rationale: >- Use a browser only for visual confirmation of rendered emoji styling, or when invoking the JS-driven /emoji-keyboard/ tool whose grid is populated client-side. Search and detail pages are fully server-rendered HTML — fetch them directly. - method: hybrid rationale: >- If the caller wants both a structured payload AND a screenshot proof of the source page (e.g. for content-review workflows), combine direct GETs for data with one browser session for the screenshot of the chosen emoji's detail page. |
| verified | false |
| proxies | false |
Compose Email with Emojis for Your Ideas
Purpose
Look up emojis on emojis.directory that match the key ideas/concepts in an email body, then assemble an email-ready text payload (subject + body) with those emojis interleaved through the copy. The site itself is a static emoji lookup directory — it does not send mail, and it does not expose any mailto: composer; the deliverable of this skill is structured text ({subject, body, emojis_used[]}) that the caller is expected to paste into their own mail client (Gmail compose, Outlook, Apple Mail, etc.). Read-only: never submits, posts, or interacts with anything beyond GETting public HTML.
When to Use
- A user has draft email copy (or a topic + tone) and wants suggested emojis sprinkled through the body to emphasize ideas.
- You need to look up the canonical Unicode emoji character (not an image) for a specific concept ("brainstorm", "celebrate", "next steps") to drop into outgoing text.
- You need a batch of conceptually-related emojis (e.g. all the "mailbox / envelope" variants) and want a stable, JS-free source that doesn't require an API key.
- You want to avoid hallucinating wrong code points — emojis.directory page URLs map 1:1 to Unicode CLDR short-names, so fetched results are verifiable.
Workflow
emojis.directory is a static Astro site fronted by Cloudflare. There is no API, but the search results page and every emoji detail page are fully server-rendered HTML — no JS execution required to extract emoji characters. The optimal path is direct HTTPS GETs against three URL shapes; a browser session is only needed when the caller wants visual confirmation or to use the dynamic Emoji Keyboard tool.
-
Decompose the email idea-by-idea. Take the draft body (or topic if no draft) and produce an ordered list of 3–8 concept tokens — single words or short phrases that name an idea per sentence/paragraph. Examples for a launch email:
["new product", "team effort", "rocket / launch", "feedback request", "thanks"]. These tokens become your search queries in step 2. -
Resolve each concept → emoji via the search endpoint.
GET https://emojis.directory/?s={query}The query matches as a substring against the emoji's Unicode CLDR short-name (the same string used in the URL slug). It is not semantic — see the "semantic queries fail" gotcha below. Parse the response HTML:
- Emoji characters appear as:
<span class="icon-item">{emoji}</span>in the results grid. - The link/label next to each is:
<a href="/{slug}-emoji-copy-paste/">{human-readable name}</a>. - Regex:
/icon-item">([^<]+)<\/span>[\s\S]*?<a href="(\/[a-z0-9-]+-emoji-copy-paste\/)">([^<]+)<\/a>/g. - "No matches" response: the page renders
<p>No emojis found matching <strong>{query}</strong>. Try a different search.</p>— detect that string before iterating results.
If a query returns zero results, retry with a different word-stem from the same concept (e.g.
idea→bulb,brain,think;target→direct hit;email→mailorenvelope). See the lexicon in the gotchas section. - Emoji characters appear as:
-
(Optional) Pull the canonical character from the detail page. When you need exactly one emoji for a concept and the search returns several, GET the specific detail page:
GET https://emojis.directory/{slug}-emoji-copy-paste/The page exposes the canonical character in two redundant places:
<span class="icon-item">{emoji}</span>inside<div class="single-icon">.<button class="btn cpybtn copy-btn ..." data-clipboard-text="{emoji}">Copy</button>— thisdata-clipboard-textattribute is the byte-for-byte string the site itself ships to the clipboard, including any variation-selector / ZWJ sequences. Prefer it over scraping the<span>when codepoint exactness matters.- Page
<title>is"{Name} Emoji Copy Paste ― {emoji}"(em-dash separator―, U+2015).
-
(Optional) Browse a category for thematic packs. For sets-of-related emojis (holiday card, food-themed newsletter, country flags), GET a category page instead of running multiple searches:
GET https://emojis.directory/{category}-emojis/Known categories:
person,country-flags,animals-and-nature,food-and-drinks,travel-and-places,hands-and-other-body-parts,christmas,thanksgiving,halloween,cursed,cute. Plus/kaomoji/,/kawaii/,/emoticons/,/lenny-faces/,/text-faces/,/shrug-faces/(no trailing-emojissegment for those six). The same<span class="icon-item">…</span>selector applies. -
Assemble the email. Build the output object with
subject,body, and aemojis_used[]audit trail. Sensible interleaving conventions:- Subject: one leading emoji + space + headline. Example:
🚀 Launching next Tuesday. - Body: place one emoji before the sentence that introduces each idea (not at the end — leading emojis are more accessible for screen readers and don't collide with terminal punctuation). Keep density to ≤ 1 emoji per ~25–40 words; more reads as spammy.
- For multi-codepoint emojis (skin-tone modifiers, flags, ZWJ family sequences), always use the exact
data-clipboard-textvalue from step 3 — splitting the bytes will render as separate broken glyphs in most mail clients.
- Subject: one leading emoji + space + headline. Example:
-
Return the assembled payload to the caller. Do not attempt to open Gmail / Outlook / Apple Mail to actually send — this skill is text-generation only.
Browser fallback
A residential proxy / stealth session is not required for any of the above (Cloudflare serves cached HTML at the edge). Use a browser only when:
- The caller wants screenshots of the rendered detail page (e.g. to confirm Apple-style vs. Google-style emoji rendering — both are just font fallbacks; the underlying codepoint is identical).
- You need to use the Emoji Keyboard at
/emoji-keyboard/, where the random-emoji grid is populated client-side via JS on tag click. Usebrowse open+browse clickon the.keyboard-tag-select[data-tag="…"]chips, then read<span class="icon-item">nodes from the rendered DOM viabrowse snapshot. Detail pages and search results do not need this — they are fully server-rendered.
Site-Specific Gotchas
- Search is substring-on-slug, not semantic.
?s=ideareturns zero results — no Unicode emoji has "idea" in its CLDR short-name. To find idea-related emojis you must query stem keywords:bulb→ 💡,brain→ 🧠,think→ 🤔. Other dead-end semantic queries observed:email(usemailorenvelopeinstead —?s=mailreturns 📪📫📧📭📬,?s=envelopereturns ✉️📩📨🧧),target(usedirect hit, the actual CLDR name of 🎯),idea,success,productivity. Build a small per-call concept→stem lexicon before issuing searches. - Concept → known-good stem cheatsheet (verified 2026-05-19):
- idea / insight →
bulb(💡),brain(🧠),think(🤔),sparkle(✨) - launch / start →
rocket(🚀) - target / goal →
direct hit(🎯 — slug isdirect-hit-emoji-copy-paste, NOTtarget) - check / approve →
check(✅ ☑️),thumbs up - celebrate / win →
party(🎉🥳),tada,clap,trophy - email itself →
mail(📧 e-mail, 📪📫📭📬 mailboxes),envelope(✉️📩📨) - team / collaboration →
handshake,people,family - thanks →
pray,bow,heart - calendar / scheduling →
calendar,clock,alarm clock(⏰) - urgent / warning →
warning,siren,fire(🔥)
- idea / insight →
- URL slug naming uses Unicode CLDR short-names with spaces → hyphens. "E-mail" is
/e-mail-emoji-copy-paste/(note the hyphen inside the name). "Light bulb" is/light-bulb-emoji-copy-paste/. "Direct hit" is/direct-hit-emoji-copy-paste/. Guess-and-fetch is risky for compound names; prefer search-then-follow over hand-crafting detail URLs. - The site is fully cached at the Cloudflare edge (HTTP
Server: cloudflare,Cf-Cache-Statuspresent, content served from PDX POP in our trace). No rate-limiting observed on direct GETs from a sandbox IP at < 5 rps. No anti-bot challenge. No--proxies/--verifiedflags needed. data-clipboard-textis the authoritative bytes. Some emoji (variation-selector-16, skin-tone modifiers, flag regional-indicator pairs, ZWJ sequences like 👨👩👧) render as multiple Unicode codepoints. Thedata-clipboard-textattribute on the Copy button on each detail page is what the site itself puts on the clipboard — copy that string verbatim. Extracting from the visible<span class="icon-item">…</span>also works but is one step further from the canonical source and risks dropping a VS16 if your HTML parser normalizes whitespace.- There is no
mailto:or compose action on emojis.directory itself. Anyone reading this skill expecting to "send" an email through the site is wrong — the skill's deliverable is text. The actual email-send must happen elsewhere (caller's MUA, an SES/Postmark API in the caller's stack, etc.) and is out of scope. - Don't waste turns on the Emoji Merge / Guess / Blog pages.
/emoji-merge/is a Genmoji-style toy (random-pair generator),/guess/is a game,/blog/is editorial — none expose emoji data in a structured way. Stick to search + detail + category. /emoji-keyboard/is JS-rendered, unlike everything else. The tag chips at the top (<li class="keyboard-tag-select" data-tag="…">) populate the grid only after a client-side click handler runs. Use a browser session if you must use this tool; otherwise prefer the static category pages (same data, no JS).- No emoji has CLDR name "idea" / "success" / "target" / "email" / "happy". Be ready to fail-soft: when a search returns the no-results sentinel, fall back to a stem from the cheatsheet rather than retrying close variants.
Expected Output
{
"input_topic": "Pitching a new feature idea to the team",
"emojis_used": [
{
"concept": "idea / insight",
"query_used": "bulb",
"name": "light bulb",
"emoji": "💡",
"slug_url": "https://emojis.directory/light-bulb-emoji-copy-paste/"
},
{
"concept": "team / collaboration",
"query_used": "handshake",
"name": "handshake",
"emoji": "🤝",
"slug_url": "https://emojis.directory/handshake-emoji-copy-paste/"
},
{
"concept": "launch / next steps",
"query_used": "rocket",
"name": "rocket",
"emoji": "🚀",
"slug_url": "https://emojis.directory/rocket-emoji-copy-paste/"
},
{
"concept": "feedback request",
"query_used": "mail",
"name": "e-mail",
"emoji": "📧",
"slug_url": "https://emojis.directory/e-mail-emoji-copy-paste/"
}
],
"email": {
"subject": "💡 New feature idea — would love your take",
"body": "Hi team,\n\n💡 I've been turning over a small idea I think could move the needle on retention — short version below, full doc linked at the bottom.\n\n🤝 I'd really value a sanity-check from each of you before I bring it to the wider product review; you've all shipped enough of these to know where the cliffs are.\n\n🚀 If the gut-check goes well, I'd love to scope a 2-week spike for the next cycle and report back at the following team sync.\n\n📧 Hit reply with thoughts (even one-liners are great), or grab 15 min on my calendar this week — link in my signature.\n\nThanks!\n— Alex"
}
}
Alternative success shape — concept that hit the no-results path and required a stem fallback:
{
"concept": "target / goal",
"query_used": "target",
"search_result": "no_match",
"fallback_query": "direct hit",
"name": "direct hit",
"emoji": "🎯",
"slug_url": "https://emojis.directory/direct-hit-emoji-copy-paste/"
}
How to use compose-email-with-emojis on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your development machine
- ›Node.js version 16.0+ with npm package manager (verify with
node --version) - ›Active project directory or workspace where you want to add compose-email-with-emojis
Execute installation command
Execute the skills CLI command in your project's root directory to begin installation:
The skills CLI fetches compose-email-with-emojis from GitHub repository emojis.directory/compose-email-with-emojis-uk7ipo and configures it for Cursor.
Select Cursor when prompted
The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Reload or restart Cursor to activate compose-email-with-emojis. Access the skill through slash commands (e.g., /compose-email-with-emojis) or your agent's skill management interface.
Security & Verification Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases▌
User Story & Requirements Generation
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Competitive Analysis
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Roadmap Prioritization
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
Make data-driven prioritization decisions faster
Stakeholder Communication
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Implementation Guide▌
Prerequisites
- ›Claude Desktop or compatible AI client
- ›Access to product documentation and roadmap tools (Jira, Notion, etc.)
- ›Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
- ›Stakeholder contact information and communication channels
Time Estimate
30-60 minutes to see productivity improvements
Installation Steps
- 1.Install product management skill
- 2.Start with user story generation for known feature
- 3.Progress to competitive analysis: research 2-3 competitors
- 4.Use for roadmap prioritization: apply RICE/ICE scoring
- 5.Draft stakeholder communications and refine based on feedback
- 6.Build template library for recurring PM tasks
- 7.Share effective prompts with product team
Common Pitfalls
- ⚠Not validating competitive research—verify facts before sharing
- ⚠Accepting user stories without involving engineering team
- ⚠Over-relying on frameworks without qualitative judgment
- ⚠Not customizing outputs to company culture and communication style
- ⚠Skipping stakeholder validation of generated requirements
Best Practices▌
✓ Do
- +Validate research and competitive analysis with real data
- +Collaborate with engineering when generating technical requirements
- +Customize frameworks and templates to your company context
- +Use skill for first drafts, refine with stakeholder input
- +Document successful prompt patterns for PM tasks
- +Combine AI efficiency with human judgment and intuition
✗ Don't
- −Don't publish competitive analysis without fact-checking
- −Don't finalize user stories without engineering review
- −Don't make prioritization decisions solely on AI scoring
- −Don't skip customer validation of generated requirements
- −Don't ignore company-specific context and culture
💡 Pro Tips
- ★Provide context: company goals, constraints, customer feedback
- ★Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
- ★Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
- ★Use skill for 70% generation + 30% customization to company needs
When to Use This▌
✓ Use When
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid When
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
Learning Path▌
- 1Basic: user stories, feature specs, status updates
- 2Intermediate: competitive analysis, prioritization frameworks, PRDs
- 3Advanced: product strategy, go-to-market planning, OKR setting
- 4Expert: product vision, market positioning, business model innovation
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.4★★★★★38 reviews- ★★★★★Ishan Nasser· Dec 24, 2024
Solid pick for teams standardizing on skills: compose-email-with-emojis is focused, and the summary matches what you get after install.
- ★★★★★Nikhil Reddy· Dec 12, 2024
compose-email-with-emojis has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Dhruvi Jain· Dec 8, 2024
We added compose-email-with-emojis from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Oshnikdeep· Nov 27, 2024
compose-email-with-emojis fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Ishan Abbas· Nov 15, 2024
Registry listing for compose-email-with-emojis matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Kabir Jackson· Nov 15, 2024
compose-email-with-emojis is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Nikhil Bhatia· Nov 3, 2024
compose-email-with-emojis reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Kabir Garcia· Oct 22, 2024
I recommend compose-email-with-emojis for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Ganesh Mohane· Oct 18, 2024
compose-email-with-emojis is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Harper Mehta· Oct 6, 2024
Keeps context tight: compose-email-with-emojis is the kind of skill you can hand to a new teammate without a long onboarding doc.
showing 1-10 of 38