hys

paulilaasoMIT更新放缓

用 Zig 写的终端 RSS 阅读器,专为想远离信息流刷屏的人设计,在命令行里清爽地聚合和阅读订阅内容。

Terminal RSS Reader for Digital Minimalists — Tool for Escaping the Doomscroll

v0.3.0发布于 2026-07-08 08:59 UTC270star8fork同步于 2026-11-07 07:33 UTC

怎么上手

由 README 提炼,执行前请确认
brew install paulilaaso/tap/hys
hys --sub "https://news.ycombinator.com/rss"
hys
硬件要求按 README 说明

README 未说明硬件要求;为终端程序,无需 GPU 或显存,macOS、Linux、Windows 均可运行

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 Zig 写的终端 RSS 阅读器,每天只抓取一次,帮你摆脱无限刷信息流

用 Zig 写的终端 RSS 阅读器,专为想远离信息流刷屏的人设计,在命令行里清爽地聚合和阅读订阅内容。

核心能力

  • 强制每天只抓取一次,形成晨报式每日摘要
  • 用 Zig 编写,毫秒级启动、秒级解析数百条目
  • 支持 OPML 导入导出,可迁移现有订阅
  • 按组管理订阅源,可单组、多组或全部阅读
  • 支持 OSC 8 超链接,在终端直接打开浏览器

容易踩的坑

从源码构建需 Zig 0.16.0 和 libcurl 开发包;Apple 默认 Terminal 不支持 OSC 8 超链接,需把 truncateUrls 设为 false;阅读界面依赖系统 less,未安装则分页功能不可用

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.3.0
  1. 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

  2. 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

  3. 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

  4. v0.1.1Hys v0.1.12025-12-17 · 2025-12-17 22:04 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/superstarryeyes/hys/compare/v0.1.0...v0.1.1

  5. v0.1.0Hys v0.1.02025-12-16 · 2025-12-16 13:07 UTC
    查看更新说明

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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

    FeatureDescription
    Doomscroll-FreeDesigned as a "Daily Digest." Enforces a fetch limit to help you stay informed without the infinite scroll.
    Blazing FastBuilt with Zig. Starts in milliseconds and parses hundreds of items in seconds.
    Open LinksOSC 8 hyperlink support to open articles in your default browser from URLs and links.
    OPML ReadyImport your existing subscriptions from any standard RSS reader or export your feeds effortlessly.
    Multilingual SupportNative support for Chinese, Japanese, Korean, Indic, Cyrillic etc.
    Feed GroupsOrganize your feeds into groups (e.g. tech, science, art) and read them individually or all at once.
    Pager TUIAutomatically pipes into less for a distraction-free reading experience with intuitive vim-style keybindings.
    AI-FriendlyOptional plain JSON output for seamless integration with AI agents and LLM workflows.
    SearchFind text in your feeds with the search functionality integrated into less.
    Universal Feed SupportRSS 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) or vcpkg install curl:x64-windows

    Build from Source

    1. Clone the repository:

      git clone https://github.com/paulilaaso/hys.git
      cd hys
      
    2. 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

    ActionCommand
    Subscribe to a feed (title optional)hys --sub "https://site.com/feed" "Title"
    Import OPML into main grouphys --import ~/downloads/feeds.opml
    Export main group's feeds (OPML)hys --export backup.opml
    Set display name for a grouphys <group> --name "Pretty Name"
    List all groupshys --groups

    Daily Flow and History

    ActionCommand
    Read from all groupshys --all
    View previous days' fetcheshys --day 1 or hys --day 2
    View last fetch regardless of datehys --last or hys -l
    Reset today's daily limiterhys --reset

    Config and Pager

    ActionCommand
    Display help with all available flagshys --help
    Display version informationhys --version
    Show config file pathhys --config
    Force-enable pagerhys --pager
    Disable pager for this runhys --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

      • j or Down: Scroll down one line
      • k or Up: Scroll up one line
      • Enter: Scroll down one line
      • y: Scroll up one line
    • Paging

      • Space or f or PageDown: Page down one screen
      • b or PageUp: Page up one screen
      • d: Half-page down
      • u: Half-page up
    • Jumps

      • g: Jump to top
      • G: Jump to bottom
    • Search

      • /text: Search forward
      • ?text: Search backward
      • n: Next match
      • N: Previous match
    • Misc

      • h: Show help for all less commands
      • q: 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 truncateUrls to false in 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:

    1. Open the group's JSON file (e.g., ~/.hys/feeds/main.json).
    2. Locate the feed object within the feeds array.
    3. Delete the object to unsubscribe, or edit fields like xmlUrl or text.
    4. Save the file.

    License

    This project is licensed under the MIT License. See the LICENSE file for details.