Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

newsletter-digest

newsletter-digest

Aggregate RSS feeds, synthesize the week's top stories with Gemini, and publish a newsletter digest to Ghost CMS. Supports three digest formats and outputs HTML, Markdown, and plain text for any platform.

Installation

Prerequisites

You need Node.js installed. It comes with npx built in.

Option 1: npx (All Agents)

npx "@opendirectory.dev/skills" install newsletter-digest --target claude

Supported --target values: claude, gemini, codex, opencode, anti-gravity, openclaw, hermes

Option 2: Native Plugin (Claude Code Only)

Run these two commands inside your Claude Code terminal:

# Add the OpenDirectory marketplace
/plugin marketplace add Varnan-Tech/opendirectory

# Install a skill directly
/plugin install newsletter-digest@opendirectory-marketplace

Option 3: Claude Desktop App

Step 1: Download Click Code → Download ZIP on this repo's GitHub page.

Step 2: Install

  1. Open Claude Desktop > Customize > Skills > + > Upload a skill
  2. Drop the downloaded zip or extracted folder

What It Does

  • Reads your RSS/Atom feed list from feeds.json
  • Fetches all articles published in the last 7 days (configurable)
  • Deduplicates across feeds and sorts by date
  • Uses Gemini to synthesize a digest in your chosen format
  • Publishes to Ghost as a draft or live post
  • Outputs formatted Markdown for Substack, Notion, or any other platform

Digest Formats

Format Use When Target Length
Weekly Roundup General digest covering top stories across all feeds 350-500 words
Topic Deep Dive Focused issue on a single topic (AI, security, etc.) 450-650 words
Curated Picks 5 selected articles with editorial context 250-350 words

Requirements

Requirement Purpose Where to Get It
GEMINI_API_KEY Digest synthesis https://ai.google.dev
GHOST_URL + GHOST_ADMIN_KEY Ghost publishing (optional) Ghost Admin, Settings, Integrations
Node.js 20+ Running scripts https://nodejs.org

Tavily is not required. The skill uses article excerpts from RSS feeds directly.

Setup

1. Install dependencies

cd /path/to/newsletter-digest
npm install

2. Configure environment variables

cp .env.example .env
# Edit .env with your keys

3. Configure your feeds

Edit feeds.json with the RSS feeds you want to monitor:

[
  { "url": "https://hnrss.org/frontpage", "name": "Hacker News" },
  { "url": "https://feeds.feedburner.com/TheHackersNews", "name": "The Hacker News" },
  { "url": "https://changelog.com/feed", "name": "Changelog" }
]

The file ships with 5 example feeds. Replace them with your own.

4. Set up Ghost publishing (optional)

  1. Go to Ghost Admin, Settings, Integrations
  2. Click "Add custom integration"
  3. Name it "newsletter-digest"
  4. Copy the Admin API Key (format: key_id:secret)
  5. Set GHOST_ADMIN_KEY=key_id:secret in .env
  6. Set GHOST_URL=https://your-ghost-site.com in .env

How to Use

Generate a weekly digest:

"Generate a weekly digest from my RSS feeds"
"Create this week's newsletter"
"Summarize my feeds from the last 7 days"

Choose a specific format:

"Create a topic deep dive about AI agents from this week's news"
"Generate a curated picks digest for this week"
"Write a weekly roundup newsletter"

Extend the date window:

"Generate a digest from the last 14 days"
"Not many articles this week, extend the window to 2 weeks"

Publish to Ghost:

"Generate this week's digest and publish it to Ghost as a draft"
"Create the newsletter and publish it to Ghost"

Output for Substack:

"Generate a newsletter digest for Substack"
"Create the digest and give me the Markdown version"

Output

Output Description
HTML Ready to paste into any CMS
Markdown For Substack, Notion, Hashnode
Plain text For email clients
Ghost draft Published automatically if configured

Substack Note

Substack has no public API. The skill outputs a Markdown version of the digest for you to paste directly into the Substack editor.

Project Structure

newsletter-digest/
├── SKILL.md
├── README.md
├── .env.example
├── package.json
├── feeds.json            (your RSS feed list, edit this)
├── evals/
│   └── evals.json
├── references/
│   ├── digest-format.md  (format rules, length targets, attribution)
│   └── output-template.md (HTML templates for all 3 formats)
└── scripts/
    ├── fetch-feeds.js    (RSS fetching, dedup, date filtering)
    └── ghost-publish.js  (Ghost Admin API posting)

License

MIT

About

Compiles a weekly digest from RSS feeds, URLs, or raw notes. Formats the output as a ready-to-send newsletter issue with sections and summaries.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages