# Feather: file-based RSS reader client ## Usage start with pictures/gif each time ### Navigating feeds Directories, sorting/searching by date/title (a.k.a. using a file manager), flattening nested dirs, etc. ### Reading an article opening an article ### Marking articles as read Delete #### Handling read articles See read articles in the trash can. Or ask feather to keep read articles: `server.only_sync_unread_articles = false` `html.filename_template = "{% if unread %}☐{% else %}☑{% endif %} [{{ feed_title }}]\t{{ title }} ({{ published }}).html"` ### Updating with the server Call `feather sync` to synchronize all local data with the server (read articles, new articles from the server, etc.). `feather daemon` ### Configuration After changing the configuration, you can call `feather regenerate` to regenerate all local files with the new configuration (to reflect the changes in the HTML template, filenames, etc.). `feather clear-data` ### Layer other things on top #### Syncthing #### Processing with scripts ## Installation ### Docker `docker run -d -v ./config.toml:/feather/config.toml -v feather-data:/feather/data -v ./reader:/feather/reader --name feather feather daemon` ### Raw You need Python 3.12 or newer. Then pip it up, as the kids say. `uv run feather` ## FAQ ### Why ### Name ### What should I eat tonight ## TODO before publishing: - [ ] Write documentation - [ ] Share the fun somewhere - [ ] Test with FreshRSS - [ ] Feed & category order for googlereader ?? "i'll look into it later": - [ ] Get article attachments - [ ] Use inotify for real-time article mark-as-read action - [ ] Partial sync (using since_id for ttrss and start_time for googlereader)