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.
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
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
Submit your Claude Code skill and start earning
browse install emojis.directory/compose-email-with-emojis-uk7ipoCompatible with
Supported agents
| 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/"
}
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:
browse install emojis.directory/compose-email-with-emojis-uk7ipoFetches 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:
.cursor/skills/compose-email-with-emojis
Restart Cursor to activate compose-email-with-emojis. Access via /compose-email-with-emojisin your agent's command palette.
Learn more:View source on GitHubSkills CLI docsAbout CursorWhat are agent skills?
Time estimate: 30-60 minutes to see productivity improvements
Prerequisites
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.
writing-clearly-and-concisely
softaworks/agent-toolkit · Productivity · tag: writing
email-design
inferen-sh/skills · Frontend · tag: email
ux-writing
content-designer/ux-writing-skill · Productivity · tag: writing
writing-clearly-and-concisely
obra/the-elements-of-style · Productivity · tag: writing
edit-article
exampleUser/edit-article-skill · other · tag: writing
simple-english
AminBlg/SimpleEnglish · other · tag: writing
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