Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ghost-Writer Sync

Your blog posts, in your vault, ready for AI.

OpenClaw Skill Python 3.10+ License: MIT Zero Dependencies


The Problem

You publish on Substack or Ghost. You want to repurpose those posts — turn them into threads, newsletters, summaries, or follow-ups. But your posts live on a remote CMS, and your AI tools live in your local Obsidian or Logseq vault. The gap between them is manual copy-paste.

The Solution

Ghost-Writer Sync bridges that gap. One command pulls all your published blog posts into your local vault as Markdown files with rich metadata. Your AI assistant can then read, remix, and repurpose them directly.

python3 sync.py sync --vault ~/my-obsidian-vault

Features

  • Substack support — reads the public RSS feed, no API key needed
  • Ghost support — connects via Content API with admin JWT auth
  • HTML to Markdown — converts rich post content to clean Markdown
  • Dual format — Obsidian (YAML frontmatter) or Logseq (property list)
  • Rich metadata — title, URL, publish date, tags, excerpts, sync timestamp
  • Zero dependencies — pure Python standard library

Quick Start

# Add a Substack publication
python3 ghost-writer-sync/sync.py add-substack --url https://example.substack.com

# Add a Ghost blog
python3 ghost-writer-sync/sync.py add-ghost --url https://myblog.ghost.io --api-key abc123:def456...

# Sync everything to your vault
python3 ghost-writer-sync/sync.py sync --vault ~/ObsidianVault

Posts appear in ~/ObsidianVault/Ghost-Writer/ as .md files.


Supported Sources

Source Authentication What it fetches
Substack None (public RSS) Title, URL, date, full HTML body
Ghost Content API key (id:secret) Title, URL, date, HTML body, tags, excerpt, feature image

Output Formats

Obsidian

---
title: "My Blog Post"
source: substack
url: https://example.substack.com/p/my-post
published: 2024-03-15
synced: 2024-03-20T12:00:00Z
post_id: a1b2c3d4e5f6
---

# Post content in Markdown...

Logseq

title:: My Blog Post
source:: substack
url:: https://example.substack.com/p/my-post
published:: 2024-03-15
synced:: 2024-03-20T12:00:00Z

Post content in Markdown...

Repurposing Ideas

Once posts are synced into your vault:

  • Rewrite as Twitter/X threads
  • Generate LinkedIn summaries
  • Compile into a weekly newsletter
  • Extract key quotes and talking points
  • Draft follow-up posts based on themes
  • Build a content calendar from your archive

Project Structure

ghost-writer-sync/
├── SKILL.md          # OpenClaw skill definition
└── sync.py           # Core sync engine (single file, stdlib only)

Requirements

  • Python 3.10 or later
  • No external packages

License

MIT

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages