Agent skill

Email Newsletter

by Varnan-Tech in Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief.

MITAuto-check passedWriting & Content

Install Email Newsletter

skills CLI
$ npx skills add Varnan-Tech/opendirectory --skill email-newsletter -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Varnan-Tech/opendirectory email-newsletter --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
email-newsletter
GitHub stars
674
Token cost
~4.4k tokens
SKILL.md length
2,064 words
Files
9 (incl. references)
Skills in repo
61
Repo updated
First seen
Licence
MIT

At a glance

Drafts and designs a complete HTML email newsletter from a topic or content brief.

  • Works in 10 steps: Brief Intake → Complete Intake → 5: Design Direction (internal -- not… → …
  • A user says write a newsletter
  • SKILL.md covers Step 1: Brief Intake, Step 2: Complete Intake, Step 2.5: Design Direction… and Step 3: Structure Design, plus 8 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

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.

When your agent uses it

  • A user says write a newsletter
  • Draft an email newsletter
  • Create an HTML email
  • Design an email for my subscribers

Example prompts

  • “write a newsletter”
  • “draft an email newsletter”
  • “create an HTML email”
  • “/email-newsletter”

Requirements

  • Compatibility (from SKILL.md): ["claude-code","gemini-cli","github-copilot"]

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Brief Intake
  2. Complete Intake
  3. 5: Design Direction (internal -- not shown to user)
  4. Structure Design
  5. Content Draft
  6. HTML Generation
  7. Platform Tuning
  8. Self-QA
  9. Subject Line Presentation
  10. Save Files + Present Summary

What it can do on your machine

Read from SKILL.md and the folder at commit 62e437a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    ["claude-code","gemini-cli","github-copilot"]

    From compatibility in the SKILL.md frontmatter.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~107
When it runs · the whole SKILL.md, loaded when a task matches
~4.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~13k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from Varnan-Tech/opendirectory at commit 62e437a, republished under its MIT licence (© Varnan-Tech). 2,064 words, ~4,448 tokens.

Download SKILL.mdSave it as .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.
name
email-newsletter
description
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]".
compatibility
["claude-code","gemini-cli","github-copilot"]
author
OpenDirectory
version
1.0.0

Email Newsletter

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.


Step 1: Brief Intake

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:

  1. Topic -- what is this newsletter about?
  2. Audience -- who is reading? (role, company size, how they know you)
  3. Primary CTA -- what one action do you want readers to take?"

Wait for all three before continuing.


Step 2: Complete Intake

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

  1. Length -- brief (300 words, punchy) / standard (500-700) / deep dive (800+ words)?
  2. Format -- editorial article / numbered breakdown / personal story / data report?
  3. Issue context -- one-time send / part of weekly series / monthly digest?
  4. 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:

QuestionDefault
Lengthstandard (500-700 words)
Formateditorial article
Issue contextone-time send
CTA URL[CTA_URL] placeholder
Company name[YOUR BRAND] placeholder
Taglinenone
City & country[CITY, COUNTRY] placeholder
Brand colornone (use #D8F90A for all accents)
Secondary accent#D8F90A (yellow-green default)
Backgrounddark
Display fontInstrument Serif (editorial serif)
Button stylepill
Visual styleeditorial
Platformgeneric
Toneconversational
Personalizationnone
Subject linegenerate 3 options
Secondary sectionsnone
Plain-textyes

Step 2.5: Design Direction (internal -- not shown to user)

From Step 2 answers, determine:

  • Visual character (from question 13, or inferred from tone + format if skipped)
  • ONE unmissable element -- identify before Step 3
  • Template path (see Step 5)

Character defaults if question 13 skipped:

  • Educational / formal tone: Editorial
  • Metrics-heavy content (stats, benchmarks, reports): Technical/data-forward
  • Product launches, events, campaigns: Bold/campaign

Never ask the user for design direction separately -- derive it from their answers.


Step 3: Structure Design

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:

SectionInclude when
headerAlways -- logo placeholder + issue number or date
heroAlways -- big headline + 1-2 sentence hook
introConversational or educational tone -- short personal note
main-contentPrimary article or insight (text-heavy)
stat-calloutThere is a compelling stat, quote, or data point
secondary-sectionSecondary CTA was requested
product-ctaBrand context present and soft product plug fits
sponsor-blockSponsor section was requested
quick-linksCurated links section was requested
footerAlways -- 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.


Step 4: Content Draft

Write copy for each section in sequence. No HTML yet -- clean prose only.

Rules per section:

  • Header: Issue number + date. No copy needed.
  • Hero headline: 8 words max, outcome-focused, no starting with "I/We/Our"
  • Hero hook: 1-2 sentences, problem or curiosity gap, pulls reader in
  • Intro: 2-3 sentences, personal or contextual, not corporate-speak, contractions OK
  • Main content: 250-400 words, scannable -- use bold phrases for key points, short paragraphs (1-3 lines), no walls of text, no bullet overload
  • Stat callout: One stat or quote, 20 words max, punchy
  • Product CTA: 2-3 sentences, value-forward, not "Check out our product" -- tell them what changes for them
  • CTA button text: 3-5 words, action verb + benefit ("Read the full breakdown", "Save my seat", "Get the guide")
  • Footer: Unsubscribe link placeholder + company name

Read references/subject-line-formulas.md then write 3 subject line options (if subject line not provided by user):

  • Option A: Curiosity gap formula
  • Option B: Direct benefit formula
  • Option C: Number/list formula

Do not use em dashes. Do not use: "powerful", "seamless", "game-changing", "leverage", "innovative", "unlock", "transform", "elevate", "cutting-edge", "robust".


Step 5: HTML Generation

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:

  • background = dark (or not specified)
  • display font = Instrument Serif (or not specified)
  • no custom background hex provided

Use templates/light-newsletter.html as base when ALL of:

  • background = light OR tone = formal
  • display font = Instrument Serif (or not specified)
  • no custom background hex provided

Generate custom HTML from scratch when ANY of:

  • custom background hex provided (not dark, not white)
  • display font = modern sans or system fonts only
  • combination of answers produces a design neither template serves

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):

  1. Select only the sections needed from the template (based on Step 3 structure)
  2. Fill in all [PLACEHOLDER] values with content from Step 4
  3. Apply brand color substitution (see below)
  4. Verify all [UNSUBSCRIBE_URL] placeholders are still present (platform tuning happens in Step 6)

Brand color substitution rules:

If brand_color is provided:

  • Replace brand strip bgcolor (#D8F90A in the height:2px row) with brand_color
  • Replace stat callout left border color with brand_color
  • Replace category label color with brand_color
  • If brand_color luminance is high (yellows, greens, oranges -- most neons): replace step badge #D8F90A with brand_color too
  • If brand_color luminance is low (dark navy, forest, charcoal): keep step badges and CTA button as #D8F90A, only use brand_color for strip + stat border

If brand_color is NOT provided: keep all #D8F90A values as-is.

Content substitution rules (from Step 2 answers):

  • If company_name provided: replace all [YOUR BRAND] and [COMPANY NAME] placeholders
  • If city_country provided: replace [CITY, COUNTRY] placeholder
  • If tagline provided: add as subtitle line in footer after company name
  • If cta_url provided: replace all [CTA_URL] placeholders with actual URL
  • If personalization = 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 Mailchimp
  • If personalization = first_name + company: add both variables where contextually appropriate

Brand 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?

  • High-saturation colors (purples, blues, teals, pinks, yellows, oranges, greens): YES -- use for strip + stat border + category label
  • Low-saturation / near-neutral (warm greys, beige, off-white): strip only; category label reverts to #555555
  • Near-black (very dark navy, forest, charcoal below ~#2A2A2A): skip brand_color for ALL accent uses, fall back to #D8F90A for every element

Accent 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:

  • On #D8F90A button background: always use #0A0A0A text (it's a light color)
  • On #111111 button background (inside yellow callout card): always use #F2F2F2 text
  • On brand_color button: use #0A0A0A if brand is light, #FFFFFF if brand is dark
Show full SKILL.md (804 more words)Show less

Required on every <td> with a background color: Both the bgcolor= HTML attribute AND the inline background-color: style. Example:

html
<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):

    • Header: #0A0A0A
    • Hero: #111111
    • Stat callout outer: #111111, inner elevated card: #1A1A1A
    • Body paragraphs: #161616 (subtle elevation creates depth without color)
    • Step cards: #111111 (contrast with body)
    • CTA callout card: #D8F90A (the ONLY bright element -- never dilute)
    • Footer: #080808
  • Accent 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.


Step 6: Platform Tuning

Read references/platform-compat.md and apply platform-specific adjustments:

PlatformAction
LoopsReplace [UNSUBSCRIBE_URL] with {{unsubscribe_url}}. Replace [FIRST_NAME] refs with {{first_name}}
MailchimpReplace [UNSUBSCRIBE_URL] with *|UNSUB|*. Add mc:edit="[section-name]" to editable <td> blocks
BeehiivReplace [UNSUBSCRIBE_URL] with %%unsubscribe_url%%. Replace [FIRST_NAME] with %%first_name%%
ResendReplace [UNSUBSCRIBE_URL] with {unsubscribeUrl}. Note: React Email .tsx output available on request
Generic/OtherKeep [UNSUBSCRIBE_URL] as placeholder with comment: <!-- Replace with your unsubscribe link -->

Step 7: Self-QA

Check the generated HTML before output. Fix every issue found -- do not skip.

Rendering checks:

  • All styles inline -- no <style> blocks, no class= attributes anywhere
  • All <table> have cellpadding="0" cellspacing="0" border="0"
  • Images (if any) have alt="", border="0", display:block in style
  • Max-width 600px enforced on container table
  • CTA button uses <table> + <td> structure with bgcolor= attribute, not just <a> with display:block
  • No flexbox, grid, position:, float:, CSS variables (--var), min-height, max-height in any inline style
  • border-radius on <td> only -- not on <table> or <a> (Outlook renders <td> radius)
  • Footer has unsubscribe link with platform-correct variable

Content checks:

  • Hero headline is 8 words or fewer
  • CTA button text is 3-5 words
  • No em dashes (-- is fine, not --)
  • No banned words: "powerful", "seamless", "game-changing", "leverage", "innovative", "unlock", "transform", "elevate", "cutting-edge", "robust"
  • Plain-text version strips all HTML cleanly (if requested)

Design quality checks:

  • ONE unmissable element from Step 2.5 is visually dominant -- not buried between equal-weight sections
  • Typography hierarchy clear: H1 >> H2 >> body -- size contrast at least 2:1 between each level
  • All spacing values from valid rhythm only: 8 / 16 / 20 / 24 / 32 / 40 / 52 / 64px -- no arbitrary values (18px, 22px, 30px, 45px, etc.)
  • Brand color appears in 3 or fewer places -- count instances; if more, remove from lowest-priority element
  • No email slop patterns -- check against the slop list in references/design-system.md

If any check fails: fix inline, then re-run the checklist mentally.


Step 8: Subject Line Presentation

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.


Step 9: Save Files + Present Summary

Save the HTML to a file first -- do not dump it in the chat.

bash
mkdir -p docs/newsletters

Write 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 launching

Do not print the HTML in the chat. The file path tells the user where to find it.


Section Reference

SectionPurpose
headerLogo + issue number or date
heroBig headline + 1-2 sentence hook
introShort personal note or context
main-contentPrimary article or insight (text-heavy)
image-blockFull-width image + caption
stat-calloutHighlighted stat or quote in a box
secondary-sectionSecond story or feature
product-ctaSoft product plug or feature highlight
sponsor-blockSponsored content (clearly labeled)
quick-linksCurated links section (3-5 items)
footerUnsubscribe link, company info, legal

Output Formats (on request)

  • Standard HTML (default): inline-styled, table-based, works everywhere
  • React Email: .tsx component output -- request explicitly, good for Resend + dev teams
  • Plain text: stripped fallback always included unless user opts out

© 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

Files

SKILL.md and 8 other files (references) in skills/email-newsletter of Varnan-Tech/opendirectory.

  • SKILL.md
  • README.md
  • evals/evals.json
  • references/design-system.md
  • references/html-email-guide.md
  • references/platform-compat.md
  • references/subject-line-formulas.md
  • templates/dark-newsletter.html
  • templates/light-newsletter.html

Open the folder on GitHubat commit 62e437a

Compare with similar skills

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.

Email Newsletter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Email Newsletter this skillVarnan-Tech/opendirectory674—~4.4kAutomated safety check: PassMIT
Subject Line Labcognyai/claude-code-marketing-skills104—~2kAutomated safety check: NotesNone
Internal Communications Writeranthropics/skills180k38 repos~378Automated safety check: PassApache-2.0
Clarityaddyosmani/clarity2691 repos~1.9kAutomated safety check: PassMIT
News Aggregator Skillcclank/news-aggregator-skill1.3k—~2.1kAutomated safety check: PassNone
Changelog Social RecapFlorianBruniaux/claude-code-ultimate-guide6.1k—~1.8kAutomated safety check: NotesCC-BY-SA-4.0

Similar skills

  • 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

    104 GitHub stars~2k tokensUpdated 3 mo ago
    Marketing & SEOAuto-check: notes
  • Official

    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…

    180k GitHub starsUsed in 38 repos~378 tokens
    Writing & ContentAuto-check passed
  • Clarity

    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.

    269 GitHub starsUsed in 1 repo~1.9k tokens
    Writing & ContentAuto-check passed
  • News Aggregator Skill

    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…

    1.3k GitHub stars~2.1k tokensUpdated 4 mo ago
    Writing & ContentAuto-check passed
  • Changelog Social Recap

    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.

    6.1k GitHub stars~1.8k tokensUpdated today
    Writing & ContentAuto-check: notes
  • Newsletter Voice

    charlie947/social-media-skills

    Build newsletter writing instructions inside a Codex or Claude project.

    3.8k GitHub stars~2.5k tokensUpdated 26 days ago
    Writing & ContentAuto-check passed

More from Varnan-Tech/opendirectory

All 61 skills in this repo
  • Graphic Ebook

    Varnan-Tech/opendirectory

    Creates professionally designed B2B SaaS e-books in HTML + CSS, exported as print-ready PDF.

    674 GitHub stars~5k tokensUpdated yesterday
    Auto-check passed
  • Docs From Code

    Varnan-Tech/opendirectory

    Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture.

    674 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Graphic Chart

    Varnan-Tech/opendirectory

    Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6.

    674 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Graphic Gif

    Varnan-Tech/opendirectory

    Creates animated looping GIFs from CSS animations (default) or AI image-to-video.

    674 GitHub stars~3k tokensUpdated yesterday
    Auto-check passed
  • Map Your Market

    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…

    674 GitHub stars~4.3k tokensUpdated yesterday
    Auto-check passed
  • Newsletter Digest

    Varnan-Tech/opendirectory

    Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS.

    674 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Email Newsletter

What does Email Newsletter do?

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.

When should I use Email Newsletter?

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.

How do I install Email Newsletter in Claude Code?

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.

How do I install Email Newsletter in Codex?

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.

Can I use Email Newsletter in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Email Newsletter need to run?

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"].

Does Email Newsletter access the network?

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.

Is Email Newsletter safe to install?

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.

What licence does Email Newsletter use?

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.

How many tokens does Email Newsletter use?

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.

What are the alternatives to Email Newsletter?

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.

Who maintains Email Newsletter?

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.