Skip to content

Getting Started with minizen

minizen fetches your unread RSS articles from Miniflux, uses AI to curate and summarise the most interesting ones, and emails you a daily digest.


Prerequisites


Installation

pip install minizen

Or with uv:

uv tool install minizen

Setup

Run the interactive wizard:

minizen setup

You will be prompted for:

Prompt Where to find it
AI model Model identifier, e.g. anthropic:claude-haiku-4-5 or openai:gpt-4o
Number of top articles How many articles to include in the digest (default: 5)
SMTP host Your SMTP server hostname (e.g. smtp.gmail.com)
SMTP port SMTP port — use 587 for STARTTLS (works with most providers)
From email address The address minizen sends from
To email address Where you want to receive digests
Email username Your SMTP login username (often your email address)
Email password Your SMTP password or app password (see your provider's docs)
Miniflux API key Miniflux → Settings → API Keys → Create a new API key
AI provider API key ANTHROPIC_API_KEY for Anthropic models; OPENAI_API_KEY for OpenAI models

Email provider setup

minizen works with any SMTP server that supports STARTTLS on port 587.

Gmail is the most common choice. To use it:

  1. Go to your Google Account → Security
  2. Under "How you sign in to Google", enable 2-Step Verification if not already on
  3. Search for "App passwords" in your Google Account settings
  4. Create a new App Password (e.g. name it minizen)
  5. Copy the 16-character password — use this as your Email password

For other providers (Fastmail, Outlook, Proton Mail Bridge, etc.), consult your provider's SMTP documentation. The smtp_host, smtp_port, username, and password fields map directly to your provider's settings.

See the Configuration reference for all available settings.

The wizard writes two files:

  • ~/.config/minizen/config.toml — non-secret settings (SMTP host/port, addresses, AI model)
  • ~/.config/minizen/.env — secrets (API keys, email password)

Verify your setup

minizen config validate

Test it

Fetch your unread articles (no AI, no email):

minizen digest fetch

Preview the AI-generated digest in your terminal (no email sent):

minizen digest preview

Send a test digest email without marking articles as read:

minizen digest send-test

Run the full pipeline

minizen run

This fetches unread articles, generates the digest, emails it, and marks the articles as read in Miniflux.


Run without a config file

You can pass all credentials directly as flags — useful in CI/CD where you do not want to store credentials on disk:

minizen run \
  --miniflux-api-key  "$MINIFLUX_API_KEY" \
  --from-addr         "digest@example.com" \
  --to-addr           "me@example.com" \
  --smtp-host         "smtp.gmail.com" \
  --smtp-port         587 \
  --email-username    "$EMAIL_USER" \
  --email-password    "$EMAIL_PASS"

Flags override the corresponding values in the config file when both are present.