| Crates.io | bulletty |
| lib.rs | bulletty |
| version | 0.2.1 |
| created_at | 2025-09-08 13:50:31.629772+00 |
| updated_at | 2026-01-15 14:12:50.025473+00 |
| description | a pretty TUI feed reader (RSS+ATOM) that stores articles locally as Markdown files |
| homepage | https://github.com/CrociDB/bulletty |
| repository | https://github.com/CrociDB/bulletty |
| max_upload_size | |
| id | 1829321 |
| size | 8,278,868 |
The TUI RSS/Atom feed reader that lets you decide where to store your data.
bulletty is a TUI feed reader and aggregator (RSS and Atom). Read your subscriptions directly in your terminal. It downloads the entries for offline reading so all the data is local and yours: your subscriptions, highlights, comments, etc. All in a universal format: Markdown. Back up and sync your data directory your own way.
It's in active development.
$HOME/.local/share/bulletty/Download bulletty pre-built binaries
It requires cargo 1.90+:
cargo install bulletty
bulletty runs in most platforms, however there are some pre-requisites to have it run the best way possible:
For now, you can only add new feed sources via the CLI:
bulletty add https://crocidb.com/index.xml [Category]
If no category is passed, the feed source will be added to the General category. bulletty will synchronize all your sources when you open the TUI, by just invoking bulletty.
More on the CLI commands with:
bulletty help
On any screen, you can press question mark ? and it will show you the available commands for that screen. Also, on the bottom right, it shows the most important commands for that context.
In general, it supports j/k/up/down to select items, navigate and scroll, as well as g/G/Home/End to go to the beginning/end of a list or file and Enter and q/Esc to navigate into and out of Categories and Entries. In order to open an Entry externally, press o.
HN Personal Websites is a good repository of blogs that constantly show up on Hacker News. Subscribing to all of them is simple:
wget https://hnpwd.github.io/pwd.opml
bulletty import pwd.opml
The whole idea is to help bring back the decentralized internet. You subscribe to the sources you like the most and you get their content whenever it's available. When you get it, it's local, it's yours. bulletty will generate a Markdown file of each entry from each source. You can read through the embedded reader, directly in your terminal, or using any text editor.
All your feed data will be at $HOME/.local/share/bulletty/, in this structure:
[~/.local/share/bulletty]$ tree
.
└── categories
├── Programming
│ ├── bruno-croci
│ │ ├── .feed.toml
│ │ ├── about.md
│ │ ├── demystifying-the-shebang-kernel-adventures.md
│ │ ├── from-ides-to-the-terminal.md
│ │ ├── i-wrote-a-webserver-in-haskell.md
│ │ ├── ...
├── General
│ ├── another-website
│ │ ├── .feed.toml
│ │ ├── some-post.md
│ │ ├── ...
All that needs to be done is to synchronize the bulletty directory to save your data, similar to an Obsidian vault.
One of the nice things about this open data structure is that people can build external tools that interact with the bulletty feed library.
convert_bulletty_to_pdf.py: a python script that exports bulletty's Read Later articles into PDF, by @thefranke
Highlight
Notes
Web view
Mouse support
Image support
PDF/Epub article export
git clone https://github.com/CrociDB/bulletty.git
cd bulletty
cargo build --release
bulletty requires the openssl crate to build, but it's known to be a little complicated to build on Windows. If it fails on a regular build, it's probably because whatever perl version it's trying to use is not suitable to build it. In that case, try installing Strawberry Perl and make sure that openssl uses the one you just install to build:
$env:OPENSSL_SRC_PERL = "C:\Strawberry\perl\bin\perl.exe"
Then cargo build should work normally.
I am very open to contributions to help make bulletty the best feed reader out there. For more information on how to contribute, refer to the CONTRIBUTING.md.
Copyright (c) Bruno Croci
This project is licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT)