[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9336":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":23,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":36,"readmeContent":37,"aiSummary":38,"trendingCount":16,"starSnapshotCount":16,"syncStatus":39,"lastSyncTime":40,"discoverSource":41},9336,"Hacki","Livinglist\u002FHacki","Livinglist","An open-source Hacker News client built with Flutter.","https:\u002F\u002Flivinglist.github.io\u002FHacki\u002F",null,"Dart",1566,127,11,30,0,6,14,58.72,"GNU General Public License v3.0",false,"master",true,[25,26,27,28,29,30,31,32,33,34,35],"android","android-app","dart","flutter","flutter-app","flutter-bloc","hacker-news","hacker-news-client","ios","ios-app","mobile-app","2026-06-12 04:00:44","\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" width=\"96\" height=\"96\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F7277662\u002F167775086-0b234f28-dee4-44f6-aae4-14a28ed4bbb6.png\" \u002F>\n\u003C\u002Fdiv>\n\n\u003Ch1 align=\"center\">Hacki for Hacker News\u003C\u002Fh1>\n\nA [Hacker News](https:\u002F\u002Fnews.ycombinator.com\u002F) client built with Flutter.\n\n[![App Store](https:\u002F\u002Fimg.shields.io\u002Fitunes\u002Fv\u002F1602043763?label=App%20Store&logo=appstore)](https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Fhacki\u002Fid1602043763?platform=iphone)\n[![Google Play](https:\u002F\u002Fimg.shields.io\u002Fendpoint?color=green&logo=googleplay&logoColor=green&url=https%3A%2F%2Fplay.cuzi.workers.dev%2Fplay%3Fi%3Dcom.jiaqifeng.hacki%26gl%3DUS%26hl%3Den%26l%3DGoogle%2520Play%26m%3D%24version)](https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.jiaqifeng.hacki&hl=en_US&gl=US&pli=1)\n[![Fdroid version](https:\u002F\u002Fimg.shields.io\u002Ff-droid\u002Fv\u002Fcom.jiaqifeng.hacki?logo=fdroid)](https:\u002F\u002Ff-droid.org\u002Fen\u002Fpackages\u002Fcom.jiaqifeng.hacki\u002F)\n[![GH version](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Flivinglist\u002Fhacki.svg?logo=github)](https:\u002F\u002Fgithub.com\u002FLivinglist\u002FHacki\u002Freleases\u002Flatest)\n[![GitHub](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Flivinglist\u002Fhacki)](https:\u002F\u002Fgithub.com\u002FLivinglist\u002FHacki)\n\n[![Publish (iOS)](https:\u002F\u002Fgithub.com\u002FLivinglist\u002FHacki\u002Factions\u002Fworkflows\u002Fpublish_ios.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002FLivinglist\u002FHacki\u002Factions\u002Fworkflows\u002Fpublish_ios.yml)\n[![Build Android APK](https:\u002F\u002Fgithub.com\u002FLivinglist\u002FHacki\u002Factions\u002Fworkflows\u002Fbuild_android_apk.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002FLivinglist\u002FHacki\u002Factions\u002Fworkflows\u002Fbuild_android_apk.yml)\n[![Parser Check](https:\u002F\u002Fgithub.com\u002FLivinglist\u002FHacki\u002Factions\u002Fworkflows\u002Fparser_check.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002FLivinglist\u002FHacki\u002Factions\u002Fworkflows\u002Fparser_check.yml)\n\n[\u003Cimg src=\"assets\u002Fimages\u002Fapp_store_badge.png\" height=\"50\">](https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Fhacki\u002Fid1602043763?platform=iphone) [\u003Cimg src=\"assets\u002Fimages\u002Fgoogle_play_badge.png\" height=\"50\">](https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.jiaqifeng.hacki&hl=en_US&gl=US) [\u003Cimg src=\"assets\u002Fimages\u002Ff_droid_badge.png\" height=\"50\">](https:\u002F\u002Ff-droid.org\u002Fen\u002Fpackages\u002Fcom.jiaqifeng.hacki\u002F)\n\n# Features\n- [x] Hacker News account [login](#login-reply-notification-favorites-sync-and-more)\n- [x] [Favorites sync](#login-reply-notification-favorites-sync-and-more)\n- [x] [Hacker News Search](#hacker-news-search)\n- [x] [In-thread search](#in-thread-local-and-global-search)\n- [x] [Ancestor lookup](#ancestor-lookup) so you don't have to scroll back up to regain context\n- [x] [In-thread notification for new comments](#new-comments-notification-and-lookup) since your last visit\n- [x] [In-app notification for new replies](#login-reply-notification-favorites-sync-and-more) to your comments or stories\n- [x] [Offline mode](#settings)\n- [x] Synced settings across devices (iOS only)\n- [x] Home Screen and Lock Screen widgets (iOS only)\n- [x] [Favorites import and export](#settings)\n- [x] Open Hacker News link in Hacki via system share dialog\n- [x] [Share story or comment as image](#share-story-or-comment-as-image)\n- [x] [Reply](#reply-to-comment-or-story), vote, filter, block\n- [x] [Polls](#polls)\n- [x] [True dark mode](#true-dark-mode)\n- [x] [Tablet support](#tablet-support)\n- [x] [Accent color](#thread) and [font customization](#accent-color-and-font-customization)\n- [x] And more...\n\n## Home page and story tile customization\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_01.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_04.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_05.png\"> \n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_08.png\"> \n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_02.png\"> \n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_03.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_06.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_07.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_09.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_10.png\"> \n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_11.png\"> \n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_12.png\">\n\u003C\u002Fp>\n\n## Thread\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_21.png\"> \n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_70.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_22.png\"> \n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_69.png\">\n\u003C\u002Fp>\n\n## New comments notification and lookup\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_59.png\"> \n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_60.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_169.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_170.png\">\n\u003C\u002Fp>\n\n## In-thread local and global search\n\u003Cp align=\"center\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_91.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_93.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_95.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_101.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_97.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_99.png\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_92.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_94.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_96.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_102.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_98.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_100.png\">\n\u003C\u002Fp>\n\n## Ancestor lookup\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_61.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_64.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_65.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_68.png\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_62.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_63.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_66.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_67.png\">\n\u003C\u002Fp>\n\n## Share story or comment as image\n\u003Cp align=\"center\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_103.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_105.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_107.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_109.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_111.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_113.png\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_104.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_106.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_108.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_110.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_112.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_114.png\">\n\u003C\u002Fp>\n\n## Reply to comment or story\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_115.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_117.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_119.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_121.png\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_116.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_118.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_120.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_122.png\">\n\u003C\u002Fp>\n\n## Open comment in separate thread\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_135.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_137.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_139.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_141.png\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_136.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_138.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_140.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_142.png\">\n\u003C\u002Fp>\n\n# Hacker News search\n\u003Cp align=\"center\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_129.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_131.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_133.png\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_130.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_132.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_134.png\">\n\u003C\u002Fp>\n\n# Login, reply notification, favorites sync and more\n\u003Cp align=\"center\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_37.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_39.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_47.png\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_38.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_40.png\">\n    \u003Cimg width=\"250\" src=\"assets\u002Fnew_screenshots\u002Fhacki_48.png\">\n\u003C\u002Fp>\n\n# Settings\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_71.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_74.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_75.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_78.png\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_72.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_73.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_76.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_77.png\">\n\u003C\u002Fp>\n\n# Accent color and font customization\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_79.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_80.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_81.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_82.png\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_157.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_158.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_159.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_160.png\">\n\u003C\u002Fp>\n\n# True dark mode\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_143.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_145.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_144.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_146.png\">\n\u003C\u002Fp>\n\n# Polls\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_147.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_148.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_149.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_150.png\">\n\u003C\u002Fp>\n\n# Web view bottom sheet\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_161.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_162.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_163.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_164.png\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_165.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_166.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_167.png\">\n    \u003Cimg width=\"200\" src=\"assets\u002Fnew_screenshots\u002Fhacki_168.png\">\n\u003C\u002Fp>\n\n# Tablet support\n\u003Cp align=\"center\">\n   \u003Cimg width=\"400\" alt=\"ipad-01\" src=\"assets\u002Fscreenshots\u002Fselected\u002Fhacki_tablet_01.png\"> \n   \u003Cimg width=\"400\" alt=\"ipad-02\" src=\"assets\u002Fscreenshots\u002Fselected\u002Fhacki_tablet_02.png\"> \n   \u003Cimg width=\"400\" alt=\"ipad-03\" src=\"assets\u002Fscreenshots\u002Fselected\u002Fhacki_tablet_03.png\"> \n   \u003Cimg width=\"400\" alt=\"ipad-04\" src=\"assets\u002Fscreenshots\u002Fselected\u002Fhacki_tablet_04.png\"> \n\u003C\u002Fp>\n","Hacki 是一个基于 Flutter 构建的开源 Hacker News 客户端。它支持用户登录 Hacker News 账号，提供收藏同步、站内搜索、线程内搜索等功能，并且能够在线程中查找祖先评论以帮助用户快速获取上下文。此外，该应用还具备离线模式、新回复通知等实用特性。对于经常浏览 Hacker News 并希望在移动设备上获得更佳体验的技术爱好者来说，Hacki 是一个理想的选择。其跨平台的设计使得无论是 Android 还是 iOS 用户都能享受到一致的服务。",2,"2026-06-11 03:22:13","top_language"]