A fast and elegant RSS/Atom reader designed for people who love living in the command line. Built with Go and Bubble Tea, Noodle provides a smooth TUI experience powered entirely by your keyboard, with familiar Vim-style controls.
- Vim-style navigation: Use
h,j,k,lor arrow keys to navigate - Two-pane interface: Feeds on the left, articles on the right
- Article detail view: Switch to view articles list and full content side-by-side
- Page navigation: Use
H/Lto jump to previous/next page in articles list - Color-coded articles: Visual distinction between read (gray) and unread (blue) articles
- Add feeds: Press
ato add new RSS/Atom feeds - Edit feeds: Press
eto edit feed URL and title - Delete feeds: Press
dto delete feeds (with confirmation prompt) - Feed statistics: See unread/total article counts (e.g., "Feedname (4 / 10)")
- Auto-refresh: Background worker automatically refreshes feeds based on config
- Mark as read/unread: Press
rto mark read,uto mark unread - Toggle favorite: Press
fto star/unstar articles - Delete articles: Press
xto delete articles - Open in browser: Press
oto open article URL in your default browser - Auto-mark as read: Articles automatically marked as read after viewing for configured time (default: 5 seconds)
- Auto-mark on open: Articles marked as read when opened in browser
- Configurable refresh time: Set feed refresh interval in
~/.config/noodle/config.json - Configurable auto-read time: Set
set_as_read_afterin config (default: 5 seconds) - Configurable cleanup time: Set
remove_deleted_afterglobally or per-feed (default: 30 days) - Custom feed titles: Optionally set custom titles for feeds
- Persistent storage: All data stored locally in SQLite database
- Immediate UI updates: All actions (read/unread, favorite, delete) update instantly
- Smart article filtering: Deleted articles don't reappear after refresh
- Automatic cleanup: Deleted articles permanently removed after configured days (default: 30)
- Status indicators:
●for unread articles★for favorite articles- Unread count shown on feeds
# to quickly build
go build -o noodle .
# or (builds slower, but binary is smaller)
go build -trimpath -ldflags="-s -w" -o noodle .
# then run
./noodle
# you may also want to copy the binary to your PATH (and run it from any place), e.g.:
sudo cp noodle /usr/local/bin/
Configuration file: ~/.config/noodle/config.json
{
"refresh_time": 300,
"set_as_read_after": 5,
"remove_deleted_after": 20,
"feeds": [
{
"url": "https://example.com/feed.xml",
"title": "Custom Title",
"remove_deleted_after": 5
},
{
"url": "https://other.com/feed.xml",
"remove_deleted_after": 90
},
{
"url": "https://third.com/feed.xml"
},
{
"url": "https://disabled.com/feed.xml",
"enabled": false
}
]
}refresh_time: Feed refresh interval in seconds (default: 60)set_as_read_after: Seconds to wait before auto-marking articles as read (default: 5)remove_deleted_after: Days to keep deleted articles before permanent deletion (default: 30). Can be set globally or per-feed. Feed-level setting overrides global setting.feeds: Array of feed objects with:url(required): RSS/Atom feed URLtitle(optional): Custom title for the feedremove_deleted_after(optional): Days to keep deleted articles for this specific feed (overrides global setting)enabled(optional): Whether the feed is active (default:true). When set tofalse, the feed will not appear in the feeds list and will not be fetched or refreshed.
j/kor↓/↑: Navigate feedslor→: Switch to article viewr: Refresh selected feeda: Add new feede: Edit selected feedd: Delete selected feed (with confirmation)qorCtrl+C: Quit
j/kor↓/↑: Navigate articlesH/L: Jump to previous/next pagePgUp/PgDn: Scroll article contento: Open article in browser (auto-marks as read)r: Mark article as readu: Mark article as unreadf: Toggle favoritex: Delete articleh/Escor←: Return to main viewqorCtrl+C: Quit
- Database:
~/.config/noodle/noodle.db(SQLite) - Config:
~/.config/noodle/config.json
github.com/charmbracelet/bubbletea- TUI frameworkgithub.com/charmbracelet/bubbles- UI componentsgithub.com/charmbracelet/lipgloss- Stylinggithub.com/mmcdole/gofeed- RSS/Atom parsergithub.com/mattn/go-sqlite3- SQLite drivergithub.com/spf13/afero- File system abstraction
Noodle is licensed under the MIT License. See LICENSE for details.
Hope you liked it. Wanna buy Me a coffee?

