Ghostwriter banner artwork

Open-source and self-hosted

Ghostwriter runs locally and builds digests from feeds, saved articles, and transcripts.

Run it on your own hardware with Docker. Ghostwriter produces EPUB digests, supports local transcription with whisper.cpp, and can optionally generate podcast episodes from the same material.

Workflow

How Ghostwriter processes content

Ghostwriter collects sources, prepares them for reading, and produces files you can keep and use locally.

01

Collect

Collect RSS and Atom feeds, Gmail newsletters, Wallabag saves, and media sources you want included in the digest.

02

Extract

Extract readable article text from web pages and preserve enough structure to produce useful EPUB output.

03

Shape

Choose whether a source should stay full-text or be summarized into a shorter briefing.

04

Publish

Build an EPUB digest, and optionally generate a podcast episode and private feed from the same material.

Features

Current capabilities

These are features already available in the current Ghostwriter codebase.

Self-hosted

Run it locally

Ghostwriter is meant to be run on your own machine, NAS, server, or home lab with Docker. It does not require a hosted Ghostwriter service.

Inputs

RSS, newsletters, Wallabag, and media sources

The backend can combine web feeds, newsletter labels, saved articles, and transcribed media into one digest pipeline.

Reading modes

Full text or summarized briefings

Each source can stay close to the original text or be condensed, depending on how you want to read it later.

Output

EPUB digests for offline reading

Generated digests are compiled into EPUB files that work well on phones, tablets, and e-readers.

Audio

Podcast episodes and feeds

Ghostwriter can turn digest content into narrated podcast episodes and publish them through a standard RSS podcast feed.

Transcription

YouTube and podcast transcripts

Media items can be transcribed and included in the digest, with support for local whisper.cpp transcription and API-based fallback.

Self-Hosting

Runs locally, including smaller home-lab setups

Ghostwriter is intended for self-hosting. That includes ordinary Docker setups, ARM devices, and Raspberry Pi deployments where keeping processing local matters.

Local first

No Ghostwriter cloud required

You can run the service locally with Docker and keep feeds, schedules, tokens, and generated files in your own environment.

Raspberry Pi

Works on ARM and Raspberry Pi setups

The project documents a whisper.cpp binary override for ARM and Raspberry Pi environments so transcription can stay local on smaller hardware.

Transcription

Local whisper.cpp support

Ghostwriter can use bundled or user-provided whisper.cpp binaries for local audio transcription, with OpenAI Whisper API available as an alternative.

Screenshots

Web interface

These screenshots come from the current Ghostwriter web UI.

Ghostwriter dashboard view

Dashboard

Overview of service status, recent activity, and generated digests.

Ghostwriter feeds management screen

Feeds

Manage feed sources and decide what should be part of the digest.

Ghostwriter digests history screen

Digests

Review generated EPUBs and track previous digest runs.

Ghostwriter settings screen

Settings

Configure schedules, providers, transcription, and API tokens.

Quick Start

Run it locally with Docker

The default setup is local and self-hosted. Cloud providers are optional, and local transcription is supported.

1. Configure environment

Copy the example environment file and choose the AI and transcription setup you want to use.

2. Start the stack

Run the Docker compose command, verify the health endpoint, then open the local web UI.

3. Create your first user

On first run, create the admin account and generate API tokens for any clients you want to connect.

From the Ghostwriter directory
cp .env.example .env
# choose an AI provider and transcription settings
docker compose up -d
curl http://localhost:8080/health

Adjust AI provider and transcription settings in the environment file before starting the stack.

Source and setup

The project is available in the public repository.

Start with the Ghostwriter repository, run it locally, and adapt the setup to your own hardware if needed. Epilogue can connect to Ghostwriter, but it is optional.