Skip to main content

A tool that generates concise summaries for you Miniflux feeds.

Project description

minigist

AI-powered summaries for your Miniflux feeds.

Turn your long Miniflux articles into clear, concise summaries.

Build status  License  PyPI 

✨ Why minigist?

Long-form feed entries are great for depth but hard to keep up with. Miniflux shows the full content, and without a summary layer you still have to read everything to decide what matters.

minigist solves this by generating concise summaries on the server side and writing them directly into each unread entry. This works with your current way to read Miniflux entries, no client changes needed.

🧠 How it works

  • You define prompts and targets in a YAML config file
  • minigist fetches the full text of unread entries (using pure.md if configured)
  • Your configured LLM generates summaries using your prompts
  • Summaries are written back into the Miniflux entry

🚀 Installation

Install minigist using pip:

pip install minigist

Install minigist using uv:

uv tool install minigist

📄 Usage

Configuration

Create a configuration file at ~/.config/minigist/config.yaml:

miniflux:
  # Base URL of your Miniflux instance (required)
  url: "https://your-miniflux-instance.com"
  # Miniflux API key (required)
  api_key: "your-miniflux-api-key"
  # Request timeout in seconds (optional; default: 2)
  timeout_seconds: 2

llm:
  # API key for your LLM provider (required)
  api_key: "your-ai-service-api-key"
  # API base URL (optional; default: OpenRouter)
  base_url: "https://openrouter.ai/api/v1"
  # Model identifier to use (optional; default shown)
  model: "google/gemini-2.5-flash-lite"
  # Request timeout in seconds (optional; default: 60)
  timeout_seconds: 60
  # Max number of concurrent LLM requests (optional; default: 5)
  concurrency: 5

prompts:
  # Prompts define how summaries are produced.
  # Each prompt must have a unique id.
  - id: "default"
    prompt: "Generate an executive summary of the provided article."
  - id: "deep-dive"
    prompt: "Extract the nuanced arguments and counterpoints."

# Optional: when no targets are defined, this prompt is used for all unread entries.
# If omitted, the first prompt in the "prompts" list is used.
default_prompt_id: "default"

targets:
  # Targets map feeds or categories to prompts.
  # When targets are defined, ONLY these feeds/categories are processed.
  # Overlaps across targets are errors.
  - prompt_id: "default"
    feed_ids: [1, 2]
  - prompt_id: "deep-dive"
    category_ids: [5]
    # Prefer pure.md for this target (optional; default: false)
    use_pure: true

scraping:
  # Token for pure.md (optional; improves rate limits)
  pure_api_token: "optional-pure-md-token"
  # Always route matching URLs through pure.md
  pure_base_urls:
    - "https://text.npr.org/"
  # Request timeout for scraping in seconds (optional; default: 5)
  timeout_seconds: 5

fetch:
  # Max unread entries to fetch per feed (optional; default: 50)
  limit: 50

notifications:
  # Apprise notification URLs (optional)
  - "discord://webhook_id/webhook_token"
  - "telegram://bot_token/chat_id"

See Apprise documentation for all supported notification services.

Run

Run minigist to process unread entries:

minigist run

Run in dry-run mode to see what would happen without making changes:

minigist run --dry-run

Increase logging verbosity:

minigist run --log-level DEBUG

Use a different configuration file:

minigist run --config-file /path/to/config.yaml

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

minigist-0.9.1.tar.gz (28.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

minigist-0.9.1-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file minigist-0.9.1.tar.gz.

File metadata

  • Download URL: minigist-0.9.1.tar.gz
  • Upload date:
  • Size: 28.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for minigist-0.9.1.tar.gz
Algorithm Hash digest
SHA256 4299c324d9f21c1a56aaf602bb83a1e3c8ede7e5a1da71908531e4c621160b07
MD5 6f0725f3fb5d2fdc34ecf0762390e651
BLAKE2b-256 3b24644a1349efb66bd4008a0a377f6d300813744ea77a608ee16107a3cad02b

See more details on using hashes here.

File details

Details for the file minigist-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: minigist-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for minigist-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d80808d35905bcd82c6b7b1bc99d801b8c3c231224736904dc88379e9b811468
MD5 3babd02db49e80aa20733ab51ab99d0f
BLAKE2b-256 99b962e8f7dd9e4d4b09409f3510abd9b13b67f78d86b4b48c6a3a03d87e3a82

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page