twine

msasikanthGPL-3.0活跃维护

用 Kotlin 和 Compose Multiplatform 写的跨平台 RSS 阅读器,手机、桌面都能用,适合想找轻量开源订阅工具的人。

Twine: A multiplatform RSS reader built using Kotlin and Compose

v3.10.0发布于 2026-11-08 09:04 UTC2,448star +6 / 7 天139fork同步于 2026-11-10 17:46 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/msasikanth/twine.git
./gradlew spotlessApply
硬件要求按 README 说明

README 未说明硬件要求,仅说明开发需 JDK 21+

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

项目说明

由 README 自动翻译提炼

用 Kotlin 和 Compose Multiplatform 写的跨平台 RSS 阅读器,支持 Android 和 iOS

用 Kotlin 和 Compose Multiplatform 写的跨平台 RSS 阅读器,手机、桌面都能用,适合想找轻量开源订阅工具的人。

核心能力

  • 支持 RDF、RSS、Atom 和 JSON 四种订阅格式
  • 输入任意网站主页即可自动发现订阅源
  • 支持 FreshRSS、Miniflux、Dropbox 云同步
  • 提供播客音频播放与阅读视图字体配色定制
  • 用 OPML 导入导出订阅,支持关键词屏蔽

容易踩的坑

Dropbox 云同步标注为 Alpha,稳定性有限;构建需 JDK 21+ 并按 AGP 版本选择对应 Android Studio;iOS 端为独立 Swift/Xcode 工程,需另行配置

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

最近发版

5 个版本v3.10.0
  1. v3.10.0最新正式版2026-11-08 · 2026-11-08 09:04 UTC

    Features

    • New Add Feed Flow: Adding a feed is now a two-step sheet. After entering a link, you can rename the feed, pick its icon, set up notifications, choose whether to always fetch the full article, and add it to groups.
    • Default Source on Startup: Pick a feed or group to open automatically when the app starts. You can set this in behavior settings, and the picker includes search.
    • Feed List Filters: New "Unread only" and "Hide grouped feeds" options in the feeds list help keep long lists tidy.
    • OPML Import During Onboarding: Import your existing subscriptions straight from the onboarding screen.
    • Classic App Icon: Added a new "Classic" app icon option.
    • Tables in Reader: The reader now renders tables, with better column widths.
    • Keyboard Navigation: Move through the post list with the keyboard, with shortcuts working anywhere in the window.

    Changes

    • Per-Feed Icons: Choose between the feed's own icon and the website favicon for each feed. The global favicon setting now only sets the default for new feeds.
    • Smoother Home Navigation: Added animated transitions when switching sources, plus a back button to return home from a selected source.
    • More Reliable Reader View: Better full article extraction, with timeouts and a plain text fallback when parsing fails. Article content you already have is no longer replaced with shorter content.
    • Better Article Formatting: Cleaner rendering of review scorecards and fewer empty headings on sites like The Verge.
    • Share Feedback on Desktop: Desktop now shows a message when a link is copied to the clipboard instead of shared.
    • Refreshed Text Fields: Text fields and login screens have a new look.
    • Performance Improvements: Smoother UI and more efficient layouts.

    Fixes

    • Fixed opened posts not always being marked as read.
    • Fixed back press not clearing the selected source on the home screen.
    • Fixed the reader jumping to the wrong post when the post list changed in the background.
    • Fixed feeds failing to load when extra elements appeared before the channel tag.
    • Fixed feeds served with less common XML content types not being recognized.
    • Fixed the navigation drawer opening on swipe in Search, Discover, Bookmarks, and Settings.
  2. v3.9.02026-09-09 · 2026-09-09 03:40 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/msasikanth/twine/compare/v3.8.0...v3.9.0

  3. v3.8.02026-08-30 · 2026-08-30 01:04 UTC
    查看更新说明

    Features

    • Better YouTube Support: Video posts now show proper high resolution thumbnails, open directly in the YouTube app, and get a dedicated action bar in the reader.
    • Smarter Feed Links: Pasting a Reddit, Mastodon, or YouTube link when adding a feed now resolves it to the right feed automatically, including YouTube handle links.

    Changes

    • Themed App Icons: App icons now match the color schemes, and can be picked right from the appearance settings.
    • Smoother Visuals: Refined gradients and scrims across the home and reader screens, animated post items in the home feed, and a cleaner background blur transition when swiping through featured posts.
    • Performance Improvements: Faster feed parsing with lower memory usage, plus smoother home screen scrolling and image loading.
    • Simpler Add Feed: Removed the feed preference toggles from the add feed screen.
    • No Shorts: YouTube feeds now come from the channel's uploads playlist, so Shorts stay out of your feed.

    Fixes

    • Fixed feeds that nested media inside items showing only a single post.
    • Fixed missing images in feeds that put the image URL in the element text.
    • Fixed full article fetching failing on sites that block browser-like requests.
    • Fixed reading history not being recorded when posts were marked as read while scrolling or paging through the reader.
    • Fixed missing channel images for some YouTube feeds.
    • Added a fallback message when adding a feed fails without a reason.

    Full Changelog: https://github.com/msasikanth/twine/compare/v3.7.0...v3.8.0

  4. v3.7.02026-08-20 · 2026-08-20 02:15 UTC
    查看更新说明
  5. v3.6.02026-08-16 · 2026-08-16 11:49 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/msasikanth/twine/compare/v3.5.0...v3.6.0

用户点评

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

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

    README 原文

    未翻译

    Twine - RSS Reader

    CI-MAIN Crowdin

    Twine is a modern cross-platform RSS reader app built using Kotlin and Compose Multiplatform. It features a nice user experience to browse through your feeds, with dynamic theming, changing app ambient color based on content.

    Download

    Features ✨

    • Supports RDF, RSS, Atom and JSON feeds
    • Feed management: Add, edit, delete, pin and group feeds
    • Bottom bar in home screen to access pinned feeds and groups
    • Smart fetching: Twine looks for feeds when given any website homepage
    • Article shortcut to fetch full article in the reader view
    • Audio player for podcasts and HTML audio tags
    • Reader view customizations (fonts, colors)
    • Bookmark posts to read later
    • Search posts
    • Blocked words: Filter out content based on keywords
    • Background sync
    • Cloud sync support with FreshRSS(GReader), Miniflux, Dropbox (Alpha ⚠)
    • Home screen widgets
    • Import and exports your feeds with OPML
    • App icon customization
    • Light, dark and amoled theme support

    Project Structure 🏗️

    The project follows a modular Kotlin Multiplatform structure:

    • androidApp: Android-specific application code and entry point.
    • iosApp: iOS-specific application code (Swift/Xcode project).
    • shared: Contains the core UI logic using Compose Multiplatform, ViewModels (using kotlin-inject), and shared presentation logic.
    • core/: Modularized business logic.
      • base: Base utilities, common interfaces, and platform abstractions.
      • data: Data layer containing repositories, local database (SQLDelight), and sync logic.
      • model: Domain models used across the project.
      • network: Network layer using Ktor for fetching feeds and parsing.
    • resources/icons: Shared icon resources.

    Tech Stack 📚

    For full list of dependencies used, please take a look at the catalog file.

    Development 🛠️

    You can just clone the repo and build it locally without requiring any changes.

    Project requires JDK 21+, and based on the AGP version defined in libs.versions.toml file, you can use appropriate Android Studio to import the project.

    Contributing 🛠️

    You can contribute bug fixes to the project via PRs, for anything else open an issue to start a conversation.

    This project uses ktfmt, provided via the spotless gradle plugin, and the bundled project IntelliJ codestyle. Run ./gradlew spotlessApply to format the code before raising a PR.

    Translations

    You can help translate project on Crowdin. We use Compose resources for strings, you can read more about it here.

    Privacy Policy 🔒

    You can read the privacy policy here.

    Made with 💖 by

    Error Reporting by

    License

    GNU GPLv3 Image