Subject Line Lab
cognyai/claude-code-marketing-skills
Mine your actual subject-line history from Klaviyo / Mailchimp / Rule / Get a Newsletter, find the patterns that work for YOUR list, and generate tuned candidates
Drafts and designs a complete HTML email newsletter from a topic or content brief.
$ npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Varnan-Tech/opendirectory email-newsletter --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/email-newsletter .claude/skills/email-newsletter && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "email-newsletter" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/email-newsletter into .claude/skills/email-newsletter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-newsletter", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Varnan-Tech/opendirectory/tree/main/skills/email-newsletterType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Varnan-Tech/opendirectory email-newsletter --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/email-newsletter .agents/skills/email-newsletter && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "email-newsletter" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/email-newsletter into .agents/skills/email-newsletter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-newsletter", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Varnan-Tech/opendirectory email-newsletter --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/email-newsletter .cursor/skills/email-newsletter && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "email-newsletter" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/email-newsletter into .cursor/skills/email-newsletter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-newsletter", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Varnan-Tech/opendirectory.git --path skills/email-newsletter--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Varnan-Tech/opendirectory email-newsletter --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/email-newsletter .gemini/skills/email-newsletter && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "email-newsletter" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/email-newsletter into .gemini/skills/email-newsletter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-newsletter", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Varnan-Tech/opendirectory email-newsletterInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/email-newsletter .github/skills/email-newsletter && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "email-newsletter" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/email-newsletter into .github/skills/email-newsletter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-newsletter", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Varnan-Tech/opendirectory email-newsletter --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/email-newsletter .opencode/skills/email-newsletter && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "email-newsletter" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/email-newsletter into .opencode/skills/email-newsletter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-newsletter", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
email-newsletterDrafts and designs a complete HTML email newsletter from a topic or content brief.
Email Newsletter is an agent skill from Varnan-Tech/opendirectory. Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including reference files (for example `README.md`, `evals/evals.json` and `references/design-system.md`). Compatibility notes: ["claude-code","gemini-cli","github-copilot"]
It sits in Writing & Content, covering Newsletters. It works with Mailchimp. The repository describes itself as: AI Agent Skills built for Founders who hate Marketing. The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 62e437a. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are html and bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
["claude-code","gemini-cli","github-copilot"]
From compatibility in the SKILL.md frontmatter.
Email Newsletter loads about 4.4k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 107 tokens; SKILL.md has 2,064 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Varnan-Tech/opendirectory at commit 62e437a, republished under its MIT licence (© Varnan-Tech). 2,064 words, ~4,448 tokens.
.claude/skills/email-newsletter/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.Draft and design a complete HTML email newsletter from a topic or content brief. Output is paste-ready for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform.
Critical rule: Table-based HTML with inline styles only. No CSS classes, no flexbox, no grid, no <style> blocks. Every element gets style="" directly. This is not optional -- email clients strip everything else.
Need three things to start. If all three present in the message: skip to Step 2.
If any missing, ask exactly:
"To get started, I need three things:
- Topic -- what is this newsletter about?
- Audience -- who is reading? (role, company size, how they know you)
- Primary CTA -- what one action do you want readers to take?"
Wait for all three before continuing.
Ask all questions in one message, grouped by category. User can skip any -- defaults apply.
"A few questions before I draft -- answer what you know, skip the rest:
Content
- Length -- brief (300 words, punchy) / standard (500-700) / deep dive (800+ words)?
- Format -- editorial article / numbered breakdown / personal story / data report?
- Issue context -- one-time send / part of weekly series / monthly digest?
- CTA URL -- what's the actual link? (or I'll use a placeholder)
Brand 5. Company / brand name -- for header and footer 6. Tagline -- one-line description (optional, for footer) 7. City & country -- for footer (e.g. "San Francisco, US") 8. Primary brand color -- hex? (e.g. #856FE6) 9. Secondary accent -- keep default yellow-green (#D8F90A) / use brand color / something else?
Design 10. Background -- dark (editorial/SaaS) / light (clean/corporate) / custom hex? 11. Display font -- editorial serif (Instrument Serif) / clean modern sans / system fonts only? 12. Button style -- pill (very rounded) / softly rounded / sharp corners? 13. Visual style -- editorial / technical+data / warm+founder / bold+campaign?
Platform & Technical 14. Platform -- Loops / Mailchimp / Beehiiv / Resend / other? 15. Tone -- educational / conversational / bold+direct / formal / playful? 16. Personalization -- none / first name / first name + company? 17. Subject line -- have one / want 3 options? 18. Secondary sections -- sponsor block / product callout / event / quick links / none? 19. Plain-text version -- yes (recommended) / no?"
Defaults if skipped:
| Question | Default |
|---|---|
| Length | standard (500-700 words) |
| Format | editorial article |
| Issue context | one-time send |
| CTA URL | [CTA_URL] placeholder |
| Company name | [YOUR BRAND] placeholder |
| Tagline | none |
| City & country | [CITY, COUNTRY] placeholder |
| Brand color | none (use #D8F90A for all accents) |
| Secondary accent | #D8F90A (yellow-green default) |
| Background | dark |
| Display font | Instrument Serif (editorial serif) |
| Button style | pill |
| Visual style | editorial |
| Platform | generic |
| Tone | conversational |
| Personalization | none |
| Subject line | generate 3 options |
| Secondary sections | none |
| Plain-text | yes |
From Step 2 answers, determine:
Character defaults if question 13 skipped:
Never ask the user for design direction separately -- derive it from their answers.
Read references/html-email-guide.md for layout rules before choosing sections.
Based on topic + audience + CTA + secondary sections requested, select sections from this library:
| Section | Include when |
|---|---|
| header | Always -- logo placeholder + issue number or date |
| hero | Always -- big headline + 1-2 sentence hook |
| intro | Conversational or educational tone -- short personal note |
| main-content | Primary article or insight (text-heavy) |
| stat-callout | There is a compelling stat, quote, or data point |
| secondary-section | Secondary CTA was requested |
| product-cta | Brand context present and soft product plug fits |
| sponsor-block | Sponsor section was requested |
| quick-links | Curated links section was requested |
| footer | Always -- unsubscribe link + company name |
Output the chosen structure as a numbered list with one-line purpose per section:
Proposed structure:
1. Header -- logo + Issue #1 / [date]
2. Hero -- headline + hook paragraph
3. Intro -- short personal framing
4. Main Content -- [topic] breakdown
5. Stat Callout -- key data point from the story
6. CTA -- [cta text]
7. Footer -- unsubscribe + company
Does this structure work, or should I adjust any sections?Wait for confirmation before Step 4.
Write copy for each section in sequence. No HTML yet -- clean prose only.
Rules per section:
Read references/subject-line-formulas.md then write 3 subject line options (if subject line not provided by user):
Do not use em dashes. Do not use: "powerful", "seamless", "game-changing", "leverage", "innovative", "unlock", "transform", "elevate", "cutting-edge", "robust".
Read references/design-system.md and references/html-email-guide.md before generating HTML.
Template or custom -- decide based on Step 2 answers:
Use templates/dark-newsletter.html as base when ALL of:
Use templates/light-newsletter.html as base when ALL of:
Generate custom HTML from scratch when ANY of:
For custom generation: use references/design-system.md Custom Generation Guide as the full token spec. Apply user's background/font/button/accent choices throughout.
Then (for template path):
[PLACEHOLDER] values with content from Step 4[UNSUBSCRIBE_URL] placeholders are still present (platform tuning happens in Step 6)Brand color substitution rules:
If brand_color is provided:
bgcolor (#D8F90A in the height:2px row) with brand_color#D8F90A with brand_color too#D8F90A, only use brand_color for strip + stat borderIf brand_color is NOT provided: keep all #D8F90A values as-is.
Content substitution rules (from Step 2 answers):
company_name provided: replace all [YOUR BRAND] and [COMPANY NAME] placeholderscity_country provided: replace [CITY, COUNTRY] placeholdertagline provided: add as subtitle line in footer after company namecta_url provided: replace all [CTA_URL] placeholders with actual URLpersonalization = first_name: add platform-appropriate first name variable to hero greeting -- e.g. Hey %%first_name%%, on Beehiiv, Hey {{first_name}}, on Loops, Hey *|FNAME|*, on Mailchimppersonalization = first_name + company: add both variables where contextually appropriateBrand color visual tension check (on dark email):
Does the brand color visually pop on #111111? Test mentally: would it be visible as a 2px strip?
#555555#2A2A2A): skip brand_color for ALL accent uses, fall back to #D8F90A for every elementAccent discipline rule: brand_color appears in AT MOST 3 places: brand strip, stat border, category label. Never in body copy, headlines, button backgrounds, or section backgrounds. Over-branding kills the premium feel.
CTA button text color:
#D8F90A button background: always use #0A0A0A text (it's a light color)#111111 button background (inside yellow callout card): always use #F2F2F2 text#0A0A0A if brand is light, #FFFFFF if brand is darkRequired on every <td> with a background color:
Both the bgcolor= HTML attribute AND the inline background-color: style. Example:
<td bgcolor="#D8F90A" style="background-color:#D8F90A;">The attribute handles Outlook. The style handles everything else. Never use just one.
Design excellence (frontend-design principles, email-adapted):
Email's table constraints don't limit design ambition. Push within them:
Typography to its extreme: 4-5 word headlines = 60px, -0.04em tracking. 6-7 word headlines = 56px, -0.03em. 8 words = 48px. Never size down for safety -- the headline is a poster, not a label. Instrument Serif italic on stat quotes adds literary weight no other element can match.
Density contrast as craft signal: Hero = maximum open space (64px top). Body paragraphs = tight and dense. CTA callout card = maximum open space again (64px). Open → tight → open is the rhythm that reads as intentional design, not template output.
Background depth via section alternation (all email-safe):
#0A0A0A#111111#111111, inner elevated card: #1A1A1A#161616 (subtle elevation creates depth without color)#111111 (contrast with body)#D8F90A (the ONLY bright element -- never dilute)#080808Accent scarcity = luxury: One yellow callout card in a sea of dark reads premium. Yellow appearing in six places reads cheap. The CTA card's power comes entirely from being the single bright element in a dark email.
Unforgettable test: Before saving, state in one sentence what a reader would describe to a colleague 3 hours later. If it's vague ("it was dark and clean") -- the visual anchor isn't strong enough. Make it specific ("the yellow card with the big serif headline").
Stat callout as editorial pull quote: 4px left border (not 3px). 26px italic Instrument Serif on the quote text. 32px inner padding. This is the closest an email gets to a magazine pull quote. Treat it like one.
Read references/platform-compat.md and apply platform-specific adjustments:
| Platform | Action |
|---|---|
| Loops | Replace [UNSUBSCRIBE_URL] with {{unsubscribe_url}}. Replace [FIRST_NAME] refs with {{first_name}} |
| Mailchimp | Replace [UNSUBSCRIBE_URL] with *|UNSUB|*. Add mc:edit="[section-name]" to editable <td> blocks |
| Beehiiv | Replace [UNSUBSCRIBE_URL] with %%unsubscribe_url%%. Replace [FIRST_NAME] with %%first_name%% |
| Resend | Replace [UNSUBSCRIBE_URL] with {unsubscribeUrl}. Note: React Email .tsx output available on request |
| Generic/Other | Keep [UNSUBSCRIBE_URL] as placeholder with comment: <!-- Replace with your unsubscribe link --> |
Check the generated HTML before output. Fix every issue found -- do not skip.
Rendering checks:
<style> blocks, no class= attributes anywhere<table> have cellpadding="0" cellspacing="0" border="0"alt="", border="0", display:block in style<table> + <td> structure with bgcolor= attribute, not just <a> with display:blockflexbox, grid, position:, float:, CSS variables (--var), min-height, max-height in any inline styleborder-radius on <td> only -- not on <table> or <a> (Outlook renders <td> radius)Content checks:
Design quality checks:
references/design-system.mdIf any check fails: fix inline, then re-run the checklist mentally.
If 3 subject line options were generated, present them with a recommendation:
**Subject Line Options**
A. [subject] -- [formula used, best for what audience/context]
B. [subject] -- [formula used]
C. [subject] -- [formula used]
Recommendation: [A/B/C] -- [one sentence reason based on audience and tone]If user provided their own subject line, skip this step.
Save the HTML to a file first -- do not dump it in the chat.
mkdir -p docs/newslettersWrite the full HTML to:
docs/newsletters/[topic-slug]-[YYYY-MM-DD].html
Where [topic-slug] is the topic lowercased with spaces replaced by hyphens (e.g. "AI B2B Sales" → ai-b2b-sales).
If a plain-text version was requested, also write it to:
docs/newsletters/[topic-slug]-[YYYY-MM-DD].txt
Then present this summary in the chat (no HTML code fence):
## Newsletter: [topic slug]
Date: [today's date] | Platform: [platform] | Tone: [tone]
Saved to: docs/newsletters/[topic-slug]-[YYYY-MM-DD].html
---
### Subject Lines
A. [subject A] -- [formula]
B. [subject B] -- [formula]
C. [subject C] -- [formula]
Recommended: [letter] -- [one-sentence reason]
---
### Send Checklist
- [ ] Replace [CTA_URL] with your actual link
- [ ] Replace [COMPANY NAME] and [CITY, COUNTRY] in footer
- [ ] Replace [YOUR BRAND] in header with your brand name (or swap in a logo image)
- [ ] Verify unsubscribe variable works in [platform]
- [ ] Send a test email to yourself before launchingDo not print the HTML in the chat. The file path tells the user where to find it.
| Section | Purpose |
|---|---|
| header | Logo + issue number or date |
| hero | Big headline + 1-2 sentence hook |
| intro | Short personal note or context |
| main-content | Primary article or insight (text-heavy) |
| image-block | Full-width image + caption |
| stat-callout | Highlighted stat or quote in a box |
| secondary-section | Second story or feature |
| product-cta | Soft product plug or feature highlight |
| sponsor-block | Sponsored content (clearly labeled) |
| quick-links | Curated links section (3-5 items) |
| footer | Unsubscribe link, company info, legal |
.tsx component output -- request explicitly, good for Resend + dev teams© Varnan-Tech, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 8 other files (references) in skills/email-newsletter of Varnan-Tech/opendirectory.
Open the folder on GitHubat commit 62e437a
Email Newsletter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Email Newsletter this skillVarnan-Tech/opendirectory | 674 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Subject Line Labcognyai/claude-code-marketing-skills | 104 | — | ~2k | Automated safety check: Notes | None | |
| Internal Communications Writeranthropics/skills | 180k | 38 repos | ~378 | Automated safety check: Pass | Apache-2.0 | |
| Clarityaddyosmani/clarity | 269 | 1 repos | ~1.9k | Automated safety check: Pass | MIT | |
| News Aggregator Skillcclank/news-aggregator-skill | 1.3k | — | ~2.1k | Automated safety check: Pass | None | |
| Changelog Social RecapFlorianBruniaux/claude-code-ultimate-guide | 6.1k | — | ~1.8k | Automated safety check: Notes | CC-BY-SA-4.0 |
cognyai/claude-code-marketing-skills
Mine your actual subject-line history from Klaviyo / Mailchimp / Rule / Get a Newsletter, find the patterns that work for YOUR list, and generate tuned candidates
anthropics/skills
A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill…
addyosmani/clarity
Draft, rewrite, or review reader-facing prose so it is specific, useful, and recognizably the author's without inventing facts or performing humanness.
cclank/news-aggregator-skill
Comprehensive news aggregator that fetches, filters, and deeply analyzes real-time content from 44+ sources including Hacker News, Lobsters, Dev.to, GitHub, arXiv, Hugging Face Papers, AIHOT, TLDR…
FlorianBruniaux/claude-code-ultimate-guide
Turns CHANGELOG.md entries for a release or a week into LinkedIn, Twitter/X, newsletter and Slack posts in French and English.
charlie947/social-media-skills
Build newsletter writing instructions inside a Codex or Claude project.
Varnan-Tech/opendirectory
Creates professionally designed B2B SaaS e-books in HTML + CSS, exported as print-ready PDF.
Varnan-Tech/opendirectory
Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture.
Varnan-Tech/opendirectory
Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6.
Varnan-Tech/opendirectory
Creates animated looping GIFs from CSS animations (default) or AI image-to-video.
Varnan-Tech/opendirectory
Given a product description, category keywords, or competitor names (any combination), searches Reddit, Hacker News, GitHub Issues, G2, and Google Trends for the real pains your market experiences…
Varnan-Tech/opendirectory
Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS.
Works with
Categories
Drafts and designs a complete HTML email newsletter from a topic or content brief. Email Newsletter is an agent skill from Varnan-Tech/opendirectory. Drafts and designs a complete HTML email newsletter from a topic or content brief.
Email Newsletter fits situations like: A user says write a newsletter; draft an email newsletter; create an HTML email; design an email for my subscribers.
Run `npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a claude-code`. Or copy the skill folder (skills/email-newsletter in Varnan-Tech/opendirectory) into .claude/skills/email-newsletter in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a codex`. Or copy the skill folder (skills/email-newsletter in Varnan-Tech/opendirectory) into .agents/skills/email-newsletter in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/email-newsletter, .gemini/skills/email-newsletter, .github/skills/email-newsletter and .opencode/skills/email-newsletter in your project.
SKILL.md names no scripts, command-line tools or credentials: Email Newsletter is instructions for the agent only. Compatibility (from SKILL.md): ["claude-code","gemini-cli","github-copilot"].
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Email Newsletter is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Email Newsletter: Subject Line Lab (cognyai/claude-code-marketing-skills, 104 stars), Internal Communications Writer (anthropics/skills, 180k stars), Clarity (addyosmani/clarity, 269 stars) and News Aggregator Skill (cclank/news-aggregator-skill, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Varnan-Tech (a GitHub organization) maintains it in Varnan-Tech/opendirectory, which has 674 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on August 16, 2026.
Source: Varnan-Tech/opendirectory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.