Skip to main content

A Python TUI client for Miniflux RSS reader with feed sorting capabilities

Project description

miniflux-tui-py

miniflux-tui-py logo

PyPI version Python 3.11+ License: MIT Test Status codecov Documentation

A Python TUI (Terminal User Interface) client for the Miniflux self-hosted RSS reader built with textual.

Installation

From PyPI (Recommended with uv)

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install miniflux-tui-py
uv tool install miniflux-tui-py

# Create configuration
miniflux-tui --init

# Run the application
miniflux-tui

Alternative: Using pip

pip install miniflux-tui-py
miniflux-tui --init
miniflux-tui

From Source (For Developers)

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone the repository
git clone https://github.com/reuteras/miniflux-tui-py.git
cd miniflux-tui-py

# Install all dependencies (including dev and docs)
uv sync --all-groups

# Create default configuration
uv run miniflux-tui --init

# Run the application
uv run miniflux-tui

Documentation

Full documentation is available at reuteras.github.io/miniflux-tui-py

Configuration

Create a configuration file at:

  • Linux: ~/.config/miniflux-tui/config.toml
  • macOS: ~/Library/Application Support/miniflux-tui/config.toml
  • Windows: %APPDATA%\miniflux-tui\config.toml

Example configuration:

server_url = "https://miniflux.example.com"
api_key = "your-api-key-here"
allow_invalid_certs = false

[theme]
unread_color = "cyan"
read_color = "gray"

[sorting]
default_sort = "feed"  # Options: "feed", "date", "status"
default_group_by_feed = false

To generate an API key for your Miniflux account:

  1. Log into your Miniflux server
  2. Go to Settings -> API Keys -> Create a new API key

Keyboard Shortcuts

Entry List View

  • Up/Down or k/j - Navigate entries
  • Enter - Open entry
  • m - Toggle read/unread
      • Toggle starred
  • e - Save entry to third-party service
  • s - Cycle sort mode (feed/date/status)
  • g - Toggle grouping by feed
  • f - Filter by feed
  • r or , - Refresh entries
  • ? - Show keyboard help
  • q - Quit

Entry Reader View

  • Up/Down or k/j - Scroll
  • PageUp/PageDown - Fast scroll
  • u - Mark as unread
      • Toggle starred
  • e - Save entry to third-party service
  • o - Open in browser
  • f - Fetch original content
  • J - Next entry
  • K - Previous entry
  • b - Back to list
  • ? - Show keyboard help

Contributing

Contributions are welcome! See CONTRIBUTING.md for details on:

  • Setting up your development environment
  • Running tests and checks
  • Submitting pull requests

For release information and troubleshooting, see:

Development

# Install all development dependencies
uv sync --all-groups

# Lint code
uv run ruff check .

# Type check
uv run pyright miniflux_tui tests

# Run tests
uv run pytest tests --cov=miniflux_tui

# Preview documentation locally
uv run mkdocs serve

Why Python?

This project is a Python implementation of cliflux (Rust), created since I don't now Rust and wanted to do some changes to that code.

License

MIT License - see LICENSE file for details.

Related Projects

  • cliflux - Original Rust TUI client for Miniflux that inspired this tool.
  • Miniflux is a minimalist and opinionated feed reader.
  • textual

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

miniflux_tui_py-0.2.6.tar.gz (94.4 kB view details)

Uploaded Source

Built Distribution

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

miniflux_tui_py-0.2.6-py3-none-any.whl (27.3 kB view details)

Uploaded Python 3

File details

Details for the file miniflux_tui_py-0.2.6.tar.gz.

File metadata

  • Download URL: miniflux_tui_py-0.2.6.tar.gz
  • Upload date:
  • Size: 94.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for miniflux_tui_py-0.2.6.tar.gz
Algorithm Hash digest
SHA256 de76760dfd0f8e628e5b782f9a59f5aa7c4f814a164d668a5b1ddd6a993a4b40
MD5 6a955c792014b8b6847730fa6c33b44f
BLAKE2b-256 ead77918fa42ea6aaa1ba38c98fa007d6c047396a192226f9c53b03e1cc4f227

See more details on using hashes here.

Provenance

The following attestation bundles were made for miniflux_tui_py-0.2.6.tar.gz:

Publisher: publish.yml on reuteras/miniflux-tui-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file miniflux_tui_py-0.2.6-py3-none-any.whl.

File metadata

File hashes

Hashes for miniflux_tui_py-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 92cb0c5d9f3b29b2596ad0d0f6da55ca98677ce0b1d7b6e9a56dae6886d2e767
MD5 417e9ca6bf5fc49b6ab0805d106d697e
BLAKE2b-256 0f46351e451d79bccc50e9dfd776b14a3341e848a85891efdbfa54bcf9916575

See more details on using hashes here.

Provenance

The following attestation bundles were made for miniflux_tui_py-0.2.6-py3-none-any.whl:

Publisher: publish.yml on reuteras/miniflux-tui-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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