- Kotlin 90.4%
- Java 8.8%
- HTML 0.4%
- CSS 0.2%
- Perl 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/ISSUE_TEMPLATE | ||
| .github | ||
| app | ||
| fastlane/metadata/android/en-US | ||
| google-gsa | ||
| gradle | ||
| plugin-api | ||
| plugins | ||
| .gitignore | ||
| badge_github.png | ||
| badge_izzy.png | ||
| build.gradle.kts | ||
| CHANGELOG.md | ||
| FDROID_DRAFT.yml | ||
| get_codeberg.svg | ||
| get_fdroid.svg | ||
| get_github.svg | ||
| get_iod.svg | ||
| get_taiga.svg | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| local.properties | ||
| neo_banner.png | ||
| PLAY_DATA_SAFETY.md | ||
| PRIVACY_POLICY.md | ||
| README.md | ||
| RELEASE_NOTES_2.0.0.md | ||
| settings.gradle.kts | ||
VibeFeed
Custom Google Discover Feed replacement for launchers!
VibeFeed is a fork of Neo Feed.
The original project lives at NeoApplications/Neo-Feed. This fork was created to experiment with new features and fixes that go beyond the upstream scope.
2.0.0 release highlights 🚀
VibeFeed 2.0.0 is the first release under the new name. It ships with a plugin architecture, an on-device AI summary plugin, a Mastodon timeline plugin, adaptive sync, keyword alerts, image caching, and a new icon. See fastlane/metadata/android/en-US/changelogs/2000.txt for the full changelog.
Distribution
VibeFeed is built to be available from several channels:
- Codeberg Releases — APK and AAB downloads, source archives, and release notes:
https://codeberg.org/johanneswilm/VibeFeed/releases - F-Droid — metadata and build recipe draft are prepared; a merge request to fdroiddata is the next step.
- Google Play — the signed AAB (
app-release.aab) and store assets are prepared for upload to the Play Console.
A privacy policy for the store listings is provided in PRIVACY_POLICY.md.
About this fork ✨
This is a community-maintained vibe-coded fork using open weights models (such as Kimi k2.7 code) for coding that keeps the original feed-replacement functionality and adds a number of fixes and features that have not yet landed upstream:
- New name and identity — Rebranded as VibeFeed with its own package id (
com.saulhdev.vibefeed) so it can be installed alongside the upstream app. - Plugin architecture — Adds an internal plugin system. Compile-time plugins ship with the app, and the same API can be used by separate APK packages in the future.
- Mastodon source plugin — Adds a Mastodon home timeline as a feed source. Per-source filters include:
- Must contain a link — only show posts that include at least one URL.
- Must contain a picture — only show posts that include an image.
- Hide replies — hide replies and show only original posts.
- On-device AI summary plugin — Summarizes articles locally with an open-weight model via MediaPipe LLM Inference. The model is downloaded only after the user enables the plugin and provides a model file.
- Mastodon source plugin — Adds a Mastodon home timeline as a feed source. Per-source filters include:
- Adaptive sync frequency — Refreshes more often when you actively use the feed and less often overnight or on metered networks.
- Keyword alerts — Notifies you once when a new article contains a specific word, even if the article appears in multiple feeds.
- Image caching — Keeps article images on the device so they are available offline.
- Image fallback — If a feed item has no image, VibeFeed tries to extract one from the linked article.
- Per-feed image filter — RSS feeds can be set to hide items without an image.
- Keyboard fix — Resolves the long-standing bug where the on-screen keyboard would not appear in a launcher's app drawer while the feed overlay was enabled (upstream issue #56).
- Folder crash fix for Neo-Launcher — Applies the matching folder-crash fix to Neo-Launcher so app folders open reliably again.
- Sort & filter fixes — The filter sheet now correctly pre-selects the current sort direction, source/tag filters apply immediately when toggled, and chronological sorting uses clearer "Newest / Oldest" labels.
- HTTP → HTTPS feed handling — New feeds default to
https://, existinghttp://feed URLs are upgraded on sync, and cleartext traffic is permitted so misconfigured servers (e.g. SCMP'shttps → http → httpsredirect chain) no longer fail to sync. - Last-updated status — The top bar shows how long ago feeds were last synced (e.g. "Last updated: 3h20 ago") instead of a static app name. You can choose whether this reflects the last sync of any feed or all feeds.
- Mastodon import handling — OPML exports that include Mastodon feeds are imported with their source type and filters preserved. If the Mastodon plugin is not enabled, those feeds are imported disabled and you are offered a one-tap enable.
- Mastodon re-authorization — Imported or migrated Mastodon accounts can be re-authorized from the source editor without creating duplicate feeds.
- Expanded suggested feeds — Adds new suggested-feed catalogues, including Scandinavian, German, and more Spanish-language sources.
- Global blocked words — Adds a global word filter so you can hide articles containing terms you are not interested in.
Screenshots
| Feed list | Launcher overlay |
|---|---|
![]() |
![]() |
| Settings | Plugins |
|---|---|
![]() |
![]() |
More screenshots are in fastlane/metadata/android/en-US/images/phoneScreenshots/.
Debug test builds are published on the GitHub Releases page and on Codeberg Releases.
Supported launchers
Any launcher with custom feed provider support. For example:
- Neo Launcher
- LawnChair
- Shade Launcher
Special Thanks ❤️
Neo Collective as the upstream maintainers. Hopefully they'll merge all our PRs. :)
iTaysonLab as the project is a fork of his HomeFeeder.
DrawerOverlayService as base for overlay service.
Helena Zheng & Tobias Fried for the great Phosphor Icons, we gladly use.
Contributors 🤝
Copylefted Libre License 📜
Licensed under the GPLv3+.
Copyright © 2025 Saul Henriquez & Antonios Hazim



