kantord/blogtato: A CLI RSS/Atom feed reader inspired by Taskwarrior
TL;DR
Công cụ dòng lệnh (CLI) giúp đọc RSS/Atom feed không cần account hay server. Dùng Git để đồng bộ giữa các máy, làm việc offline hoàn toàn.
Nói đơn giản: App đọc tin tức từ các trang web, chạy trên terminal, không cần internet liên tục, tự đồng bộ qua Git.
Bài này dành cho ai?
1. Người muốn đọc tin tập trung, không bị phân tâm
Vấn đề: Các app đọc tin có quảng cáo, notification, giao diện rối rắm Khi nào cần: Khi bạn chỉ muốn đọc nội dung, không cần social features Được gì: Giao diện tối giản, không quảng cáo, không tốn phí
2. Người xài nhiều máy muốn đồng bộ feed
Vấn đề: Các RSS service thường có tính phí hoặc giới hạn thiết bị Khi nào cần: Dùng trên laptop, desktop, server cá nhân Được gì: Sync miễn phí qua Git (GitHub/GitLab/private repo)
3. Dev hoặc người thích CLI
Vấn đề: Muốn mọi thứ trên terminal, không muốn mở browser Khi nào cần: Đã quen dùng vim, tmux, workflow trên terminal Được gì: Feed reader tích hợp vào workflow hiện tại
Các điểm chính
-
Không cần server, không cần account Không phải đăng ký, không lưu dữ liệu trên cloud của ai. Tất cả nằm trên máy bạn. → Làm gì: Cài bằng cargo, chạy ngay không cần tạo tài khoản.
-
Git-based sync giữa các thiết bị Tạo một private repo trên GitHub/GitLab, dùng
blog syncđể pull/push. Tự động merge khi có xung đột. → Làm gì: Dùngblog clone user/repođể bắt đầu sync. -
Làm việc offline hoàn toàn Không cần mạng liên tục. Feed chỉ được fetch khi bạn chủ động gõ
blog sync. → Làm gì: Đọc tin trên máy bay, khi nào cần cập nhật mới gõ sync. -
Query language để lọc và group feed Lọc theo feed (.unread, .read), theo thời gian (1w.. = 1 tuần trước), group theo ngày/tuần/feed. → Làm gì:
blog @hn .unread /dđể xem tin chưa đọc từ HackerNews, group theo ngày. -
Database dạng JSONL, đơn giản Dữ liệu lưu trong file JSONL, không cần database phức tạp. Tác giả chọn cách này để dễ sync qua Git. → Làm gì: Không cần setup gì, file tự nằm trong thư mục blogtato.
-
Import từ các reader khác qua OPML Hỗ trợ import từ Feedly, Inoreader, NetNewsWire, FreshRSS, Tiny Tiny RSS… → Làm gì:
blog feed import feeds.opmlđể chuyển feed cũ sang. -
Mở link bằng browser hoặc CLI browser Dùng
blog abc openmở trên browser, hoặcblog abc readlấy URL rồi dùng w3m. → Làm gì: Đọc ngay trên terminal với CLI browser như w3m/lynx.
Quick Start
- Cài đặt:
cargo install blogtato
- Thiết lập sync (tùy chọn):
blog clone user/repo # tạo private repo trước
- Thêm feed và đọc:
blog feed add https://news.ycombinator.com/rss
blog sync
blog
Đang tải nội dung...