Metadata-Version: 2.4
Name: minigist
Version: 0.3.3
Summary: A tool that generates concise summaries for you Miniflux feeds.
Author: eikendev
Maintainer: eikendev
Project-URL: Homepage, https://github.com/eikendev/minigist
Keywords: miniflux,rss,feed,ai,summarization,cli
Classifier: Environment :: Console
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: News/Diary
Classifier: Topic :: Text Processing :: Markup
Classifier: Topic :: Utilities
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: apprise>=1.9.3
Requires-Dist: click>=8.1.8
Requires-Dist: markdown>=3.8
Requires-Dist: miniflux>=1.1.3
Requires-Dist: nh3>=0.2.21
Requires-Dist: pydantic>=2.11.3
Requires-Dist: pydantic-ai>=0.1.6
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: requests>=2.32.3
Requires-Dist: structlog>=25.3.0
Requires-Dist: tenacity>=9.1.2
Requires-Dist: trafilatura>=2.0.0
Dynamic: license-file

<div align="center">
	<h1>minigist</h1>
	<h4 align="center">
		AI-powered summaries for your <a href="https://miniflux.app/">Miniflux</a> feeds.
	</h4>
	<p>Turn your long Miniflux articles into clear, concise summaries.</p>
</div>

<p align="center">
	<a href="https://github.com/eikendev/minigist/actions"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/eikendev/minigist/main.yml?branch=main"/></a>&nbsp;
	<a href="https://github.com/eikendev/minigist/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/eikendev/minigist"/></a>&nbsp;
	<a href="https://pypi.org/project/minigist/"><img alt="PyPI" src="https://img.shields.io/pypi/v/minigist"/></a>&nbsp;
</p>

## 🤘&nbsp;Features

- **Automatic summarization** of unread Miniflux entries
- **Configurable filters** to target specific feeds
- **Notification support** via Apprise for various messaging services
- **Dry-run mode** to preview changes without modifying entries
- **Structured logging** for better debugging and monitoring

## 🚀&nbsp;Installation

Install minigist using `pip`:

```bash
pip install minigist
```

Install minigist using `uv`:

```bash
uv tool install minigist
```

## 📄&nbsp;Usage

### Configuration

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

```yaml
miniflux:
  url: "https://your-miniflux-instance.com"
  api_key: "your-miniflux-api-key"

ai:
  api_key: "your-ai-service-api-key"
  base_url: "https://openrouter.ai/api/v1"  # Default
  model: "google/gemini-2.5-flash-preview"  # Default
  system_prompt: "Generate an executive summary of the provided article."  # Default

filters:
  feed_ids: [1, 2, 3]  # Optional
  fetch_limit: 100     # Default

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

See [Apprise documentation](https://github.com/caronc/apprise) for all supported notification services.

### Basic Commands

Run minigist to process unread entries:

```bash
minigist run
```

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

```bash
minigist run --dry-run
```

Increase logging verbosity:

```bash
minigist run --log-level DEBUG
```

Use a different configuration file:

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