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.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versioncompose-email-with-emojisExecute the skills CLI command in your project's root directory to begin installation:
Fetches compose-email-with-emojis from emojis.directory/compose-email-with-emojis-uk7ipo and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate compose-email-with-emojis. Access via /compose-email-with-emojis in your agent's command palette.
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 environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
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
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
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
0
total installs
0
this week
0
upvotes
Run in your terminal
0
installs
0
this week
—
stars
| 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 |
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.
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:
<span class="icon-item">{emoji}</span> in the results grid.<a href="/{slug}-emoji-copy-paste/">{human-readable name}</a>./icon-item">([^<]+)<\/span>[\s\S]*?<a href="(\/[a-z0-9-]+-emoji-copy-paste\/)">([^<]+)<\/a>/g.<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 → mail or envelope). See the lexicon in the gotchas section.
(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> — this data-clipboard-text attribute 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.<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 -emojis segment for those six). The same <span class="icon-item">…</span> selector applies.
Assemble the email. Build the output object with subject, body, and a emojis_used[] audit trail. Sensible interleaving conventions:
🚀 Launching next Tuesday.data-clipboard-text value from step 3 — splitting the bytes will render as separate broken glyphs in most mail clients.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.
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:
/emoji-keyboard/, where the random-emoji grid is populated client-side via JS on tag click. Use browse open + browse click on the .keyboard-tag-select[data-tag="…"] chips, then read <span class="icon-item"> nodes from the rendered DOM via browse snapshot. Detail pages and search results do not need this — they are fully server-rendered.?s=idea returns 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 (use mail or envelope instead — ?s=mail returns 📪📫📧📭📬, ?s=envelope returns ✉️📩📨🧧), target (use direct hit, the actual CLDR name of 🎯), idea, success, productivity. Build a small per-call concept→stem lexicon before issuing searches.bulb (💡), brain (🧠), think (🤔), sparkle (✨)rocket (🚀)direct hit (🎯 — slug is direct-hit-emoji-copy-paste, NOT target)check (✅ ☑️), thumbs upparty (🎉🥳), tada, clap, trophymail (📧 e-mail, 📪📫📭📬 mailboxes), envelope (✉️📩📨)handshake, people, familypray, bow, heartcalendar, clock, alarm clock (⏰)warning, siren, fire (🔥)/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.Server: cloudflare, Cf-Cache-Status present, 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 / --verified flags needed.data-clipboard-text is the authoritative bytes. Some emoji (variation-selector-16, skin-tone modifiers, flag regional-indicator pairs, ZWJ sequences like 👨👩👧) render as multiple Unicode codepoints. The data-clipboard-text attribute 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.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./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).{
"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/"
}
Make data-driven prioritization decisions faster
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
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ 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.
davila7/claude-code-templates
hvpandya/stop-slop
sammcj/agentic-coding
kagurananaga/official-document-writing-skill
shadowcz007/skills
coreyhaines31/marketingskills
Solid pick for teams standardizing on skills: compose-email-with-emojis is focused, and the summary matches what you get after install.
compose-email-with-emojis has been reliable in day-to-day use. Documentation quality is above average for community skills.
We added compose-email-with-emojis from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
compose-email-with-emojis fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
Registry listing for compose-email-with-emojis matched our evaluation — installs cleanly and behaves as described in the markdown.
compose-email-with-emojis is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
compose-email-with-emojis reduced setup friction for our internal harness; good balance of opinion and flexibility.
I recommend compose-email-with-emojis for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
compose-email-with-emojis is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
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