> ## Documentation Index
> Fetch the complete documentation index at: https://www.opendirectory.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 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 H...

<Info>
  **Category:** Content · **Version:** `1.0.0` · **Author:** `OpenDirectory` · **Compatibility:** All targets (claude, codex, opencode, gemini, anti-gravity, openclaw, hermes)
</Info>

<img width="1280" height="640" alt="newsletter-digest" src="https://github.com/user-attachments/assets/cb2879ae-eb5c-4727-a1a2-47b4462a699b" />

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.

## Install

<Tabs>
  <Tab title="npx CLI (Recommended)">
    ```bash theme={null}
    npx "@opendirectory.dev/skills" install newsletter-digest --target claude
    ```
  </Tab>

  <Tab title="skills.sh">
    ```bash theme={null}
    npx skills add Varnan-Tech/opendirectory --skill newsletter-digest
    ```
  </Tab>

  <Tab title="Claude Code Native">
    ```bash theme={null}
    /plugin marketplace add Varnan-Tech/opendirectory
    /plugin install opendirectory-gtm-skills@opendirectory-marketplace
    ```
  </Tab>

  <Tab title="Claude Desktop">
    <video controls className="w-full aspect-video rounded-xl mb-4" src="https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c" />

    1. Copy `https://github.com/Varnan-Tech/opendirectory/tree/main/skills/newsletter-digest` into [download-directory.github.io](https://download-directory.github.io/) to download the ZIP.
    2. Open **Claude Desktop** -> **Customize** -> **Skills** -> **+** -> **Upload a skill** and drop the folder containing `SKILL.md`.
  </Tab>

  <Tab title="Manus AI">
    <video controls className="w-full aspect-video rounded-xl mb-4" src="https://github.com/user-attachments/assets/17cbee2a-9e17-4bd4-ac46-68e0e92ffab4" />

    [**Install newsletter-digest in Manus AI**](https://manus.im/import-skills?githubUrl=https%3A%2F%2Fgithub.com%2FVarnan-Tech%2Fopendirectory%2Ftree%2Fmain%2Fskills%2Fnewsletter-digest\&utm_source=opendirectory)
  </Tab>
</Tabs>

## 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](https://ai.google.dev) |
| GHOST\_URL + GHOST\_ADMIN\_KEY | Ghost publishing (optional) | Ghost Admin, Settings, Integrations |
| Node.js 20+ | Running scripts | [https://nodejs.org](https://nodejs.org) |

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

## Setup

### 1. Set up dependencies

```bash theme={null}
cd /path/to/newsletter-digest
npm install
```

### 2. Configure environment variables

```bash theme={null}
cp .env.example .env
# Edit .env with your keys
```

### 3. Configure your feeds

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

```json theme={null}
[
  { "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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.