从源码构建需 Zig 0.16.0 和 libcurl 开发包;Apple 默认 Terminal 不支持 OSC 8 超链接,需把 truncateUrls 设为 false;阅读界面依赖系统 less,未安装则分页功能不可用
brew install paulilaaso/tap/hys
hys --sub "https://news.ycombinator.com/rss"
hysREADME 未说明硬件要求;为终端程序,无需 GPU 或显存,macOS、Linux、Windows 均可运行
用 Zig 写的终端 RSS 阅读器,每天只抓取一次,帮你摆脱无限刷信息流
用 Zig 写的终端 RSS 阅读器,专为想远离信息流刷屏的人设计,在命令行里清爽地聚合和阅读订阅内容。
核心能力
- 强制每天只抓取一次,形成晨报式每日摘要
- 用 Zig 编写,毫秒级启动、秒级解析数百条目
- 支持 OPML 导入导出,可迁移现有订阅
- 按组管理订阅源,可单组、多组或全部阅读
- 支持 OSC 8 超链接,在终端直接打开浏览器
容易踩的坑
- v0.3.0Hys v0.3.0最新正式版2026-07-08 · 2026-07-08 08:59 UTC
refactor: migrate project to Zig 0.16.0 feat: add --last (-l) flag to view most recent fetch without fetching anything new chore: update GitHub username fix: prevent fetched articles from showing up again fix: use visual width instead of byte length for header border alignment build: fix Windows compilation and finalize Zig 0.16.0 upgrade docs: update LICENSE copyright to Hys contributors
Full Changelog: https://github.com/paulilaaso/hys/compare/v0.2.0...v0.3.0
- v0.2.0Hys v0.2.02026-04-21 · 2026-04-21 10:02 UTC
查看更新说明
feat: plain json output with -j / --json flag fix: close temp file before renaming in pruneSeen fix: don't wipe group feeds when --reset fix: avoid double-close panic in seen hash pruning fix: add accurate days ago display based on fetch dates from filenames fix: digest header to display correct date with --day flag docs: update homebrew installation command for hys docs: add information about the new json output docs: fix links
Full Changelog: https://github.com/superstarryeyes/hys/compare/v0.1.2...v0.2.0
- v0.1.2Hys v0.1.22025-12-19 · 2025-12-19 15:51 UTC
查看更新说明
fix: include http status code in failed feed error messages fix: use LESS_TERMCAP_vb to inhibit bell for older less versions docs: add arch linux aur installation (thanks to @0x61nas) docs: add --help and --version flag documentation chore: include project name in github release title
Full Changelog: https://github.com/superstarryeyes/hys/compare/v0.1.1...v0.1.2
- v0.1.1Hys v0.1.12025-12-17 · 2025-12-17 22:04 UTC
查看更新说明
What's Changed
- fix: --sub parsing to correctly skip optional feed name
- Update Arch installation command for curl by @theamazing0 in https://github.com/superstarryeyes/hys/pull/1
Full Changelog: https://github.com/superstarryeyes/hys/compare/v0.1.0...v0.1.1
- v0.1.0Hys v0.1.02025-12-16 · 2025-12-16 13:07 UTC
查看更新说明
Full Changelog: https://github.com/superstarryeyes/hys/commits/v0.1.0
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Hys — RSS Reader for Digital Minimalists
Hys is a fast, lightweight, and opinionated terminal RSS reader written in Zig that helps you avoid doom-scrolling. It enforces a once-per-day fetch limit, encouraging you to gather new information in a single daily batch like a morning newspaper, rather than receive an endless stream of pings and notifications throughout the day.
Features
| Feature | Description |
|---|---|
| Doomscroll-Free | Designed as a "Daily Digest." Enforces a fetch limit to help you stay informed without the infinite scroll. |
| Blazing Fast | Built with Zig. Starts in milliseconds and parses hundreds of items in seconds. |
| Open Links | OSC 8 hyperlink support to open articles in your default browser from URLs and links. |
| OPML Ready | Import your existing subscriptions from any standard RSS reader or export your feeds effortlessly. |
| Multilingual Support | Native support for Chinese, Japanese, Korean, Indic, Cyrillic etc. |
| Feed Groups | Organize your feeds into groups (e.g. tech, science, art) and read them individually or all at once. |
| Pager TUI | Automatically pipes into less for a distraction-free reading experience with intuitive vim-style keybindings. |
| AI-Friendly | Optional plain JSON output for seamless integration with AI agents and LLM workflows. |
| Search | Find text in your feeds with the search functionality integrated into less. |
| Universal Feed Support | RSS 2.0 and Atom 1.0 with robust parsing, HTML entity decoding, and UTF-8 validation |
Quick Start (macOS/Linux)
Homebrew
brew install paulilaaso/tap/hys
Arch Linux (AUR)
yay -S hys # Latest release
yay -S hys-git # Latest development version
Add your first feed and start reading:
hys --sub "https://news.ycombinator.com/rss"
hys
Installation (macOS/Linux/Windows)
Prerequisites
- Zig 0.16.0: For building from source. Install instructions
- libcurl: Robust HTTP/2 and TLS support. Install via your package manager:
- macOS: Pre-installed (no action needed)
- Ubuntu/Debian:
sudo apt-get install libcurl4-openssl-dev - Fedora:
sudo dnf install libcurl-devel - Arch:
sudo pacman -S curl - Windows:
choco install curl(using Chocolatey) orvcpkg install curl:x64-windows
Build from Source
-
Clone the repository:
git clone https://github.com/paulilaaso/hys.git cd hys -
Build and Install:
# Install to ~/.local/bin (make sure it's in your PATH) zig build -Doptimize=ReleaseSafe install -p ~/.local
Usage
Reading Feeds
# Add a feed to your main group
hys --sub "https://site.com/feed"
# Add a feed to a specific group
hys tech --sub "https://site.com/feed"
# Read the main group
hys
# Read a specific group
hys tech
# Read multiple groups combined
hys tech,science,art
# Read all groups at once
hys --all
# One-off read of a URL (doesn't save to config)
hys https://example.com/rss.xml
Manage Feeds and Groups
| Action | Command |
|---|---|
| Subscribe to a feed (title optional) | hys --sub "https://site.com/feed" "Title" |
| Import OPML into main group | hys --import ~/downloads/feeds.opml |
| Export main group's feeds (OPML) | hys --export backup.opml |
| Set display name for a group | hys <group> --name "Pretty Name" |
| List all groups | hys --groups |
Daily Flow and History
| Action | Command |
|---|---|
| Read from all groups | hys --all |
| View previous days' fetches | hys --day 1 or hys --day 2 |
| View last fetch regardless of date | hys --last or hys -l |
| Reset today's daily limiter | hys --reset |
Config and Pager
| Action | Command |
|---|---|
| Display help with all available flags | hys --help |
| Display version information | hys --version |
| Show config file path | hys --config |
| Force-enable pager | hys --pager |
| Disable pager for this run | hys --no-pager |
| Output as JSON (no pager) | hys --json |
Navigation (Pager Mode)
When Hys opens in your system pager (less), these keys are available:
-
Line-by-line
jorDown: Scroll down one linekorUp: Scroll up one lineEnter: Scroll down one liney: Scroll up one line
-
Paging
SpaceorforPageDown: Page down one screenborPageUp: Page up one screend: Half-page downu: Half-page up
-
Jumps
g: Jump to topG: Jump to bottom
-
Search
/text: Search forward?text: Search backwardn: Next matchN: Previous match
-
Misc
h: Show help for all less commandsq: Exit back to terminal
Configuration
Hys creates a JSON configuration file at ~/.hys/config.json on first run.
{
"display": {
"maxTitleLength": 120,
"maxDescriptionLength": 300,
"maxItemsPerFeed": 20,
"showPublishDate": true,
"showDescription": true,
"showLink": true,
"truncateUrls": true,
"pagerMode": true,
"underlineUrls": true,
"dateFormat": "%Y-%m-%d"
},
"history": {
"retentionDays": 50,
"fetchIntervalDays": 1,
"dayStartHour": 0
},
"network": {
"maxFeedSizeMB": 0.2
}
}
[!NOTE] Apple's default Terminal does not support OSC 8 hyperlinks. If you're using Apple Terminal, you need to set
truncateUrlstofalsein your config. For a better experience, consider using a terminal that supports OSC 8 hyperlinks, such as Ghostty, Wezterm, Kitty, or iTerm2.
Managing Feeds
Feeds are stored in JSON files within ~/.hys/feeds/. Each group has its own file corresponding to its name (e.g., main is stored in ~/.hys/feeds/main.json).
To remove or edit a feed:
- Open the group's JSON file (e.g.,
~/.hys/feeds/main.json). - Locate the feed object within the
feedsarray. - Delete the object to unsubscribe, or edit fields like
xmlUrlortext. - Save the file.
License
This project is licensed under the MIT License. See the LICENSE file for details.