amatya-aditya117k downloadsA dashboard for organizing and consuming RSS feeds, YouTube channels, and podcasts with smart tagging, media playback, and seamless content flow.
Only the feeds you need. Stream the world's knowledge into your vault: RSS, podcasts, YouTube, and more, all in one dashboard.
RSS Dashboard is a free, open source community plugin for Obsidian that makes it easy to manage your RSS feeds, YouTube subscriptions, podcasts, and Twitter/X feeds in one place.
Want to help shape the next release? Join the Discord server: https://discord.gg/9bu7V9BBbs
Community highlights:
| Feature | Description |
|---|---|
| Multi-Format RSS Support | Support for RSS, Atom, XML and JSON feeds with automatic feed discovery and parsing |
| YouTube Integration | Convert YouTube channels to RSS feeds with embedded video playback |
| Podcast Support | Full podcast feed support with an integrated podcast player |
| Twitter/X Support | Convert Twitter/X profile URLs to chronological Nitter RSS feeds automatically |
| Media Detection | Automatic detection of video and podcast content |
| Feature | Description |
|---|---|
| Article Reader View | Built-in reader with full article content fetching and Markdown conversion |
| Article Saving | Save articles as Markdown files with customizable templates and frontmatter |
| Custom Templates | Customize saved article output with variable substitution |
| Media Progress | Resume from where you left off in videos and podcasts |
| Pagination | Paginated article lists with configurable page sizes |
| Android/Apple Support | Responsive support for cross-platform mobile devices |
| Feature | Description |
|---|---|
| Folder Organization | Organize feeds into folders and subfolders with hierarchical structure |
| Tag Management | Add custom tags to feeds and articles for better organization |
| Article Filtering | Filter articles by read status, age, starred, saved, and more |
| Article Sorting | Sort articles by newest, oldest, and group by feed, date, or folder |
| Auto-Refresh | Automatic feed refresh with configurable intervals |
| OPML Import/Export | Import and export feed subscriptions in OPML format |
| Feature | Description |
|---|---|
| Discover Page | Curated collection of RSS feeds organized by categories |
| Kagi Smallweb | Browse and subscribe to a curated stream of smaller independent blogs and websites |





Looking for upcoming features? The old README planned-features list now lives in docs/plans/public-roadmap.md, along with links to other public-facing plans that have not been implemented yet.
Using the new Vault Shards storage mode? See the user-facing guide here: docs/storage-vault-shards-guide.md.
Tags let you label and filter articles the way that works best for you. Automatic tagging is available at three levels: feed-type defaults (Settings), folder rules (right-click a folder → Auto tag feeds in folder...), and per-feed custom tags (Add/Edit feed). For a full walkthrough of precedence, backfill, and filter modes, see docs/tags-primer.md.
https://github.com/amatya-aditya/obsidian-rss-dashboardBRAT: Add a beta plugin for testing.manifest.json, styles.css, main.js) from the Releases page.rss-dashboard in your vault's .obsidian/plugins directory.+ button in the sidebar to add a new feed.youtube-nocookie.com, and each video includes a visible Watch on YouTube link.RSS Dashboard supports adding feeds directly from external apps and browser extensions through Obsidian's URI protocol handler.
Use this format:
obsidian://rss-dashboard?action=add-feed&url=<encoded-feed-url>
Example:
obsidian://rss-dashboard?action=add-feed&url=https%3A%2F%2Fexample.com%2Frss.xml
Browser-extension mapping example:
obsidian://rss-dashboard?action=add-feed&url=${encodeURIComponent(feedUrl)} (replace feedUrl with your extension's feed URL variable).Notes:
url query parameter is required.Troubleshooting:
Unsupported RSS Dashboard URI action: verify action=add-feed.Missing required URL parameter for add-feed.: include url=<encoded-feed-url>.URL must start with http:// or https://: pass a valid web feed URL.Feed URL is malformed. Ensure the url parameter is URL-encoded.: encode the feed URL before launching the URI.To quickly access the keyboard shortcuts help file, press ? (Shift + /) within the app. This will display a comprehensive list of available shortcuts and their functions.
For a preview of the keyboard shortcuts, see Keyboard Shortcuts.
RSS Dashboard supports Obsidian Sync and some other third-party sync solutions, but requires a specific setup order on new devices to prevent feed data from being overwritten.
For sync to work reliably across devices, two naming rules must be followed in General Settings → Storage > Storage Mode as well as Metadata storage > Metadata data.json location:
. are hidden by the
operating system and ignored by most sync tools. For example, use rss-dashboard-data
not .rss-dashboard-data.Let's assume your desktop PC is your existing device and your phone or tablet is your new device.
⚠️ Important: Enabling the plugin before Obsidian Sync finishes its initial pull will cause it to write empty defaults to disk. Sync will treat this empty file as the authoritative state and propagate it to all your devices, wiping your feeds.
⚠️ Important: Sync will only work on legacy mode if your data.json file is below 5mb. It is highly recommended to use Shard Storage v2 since it is currently the most robust version for data storage.
On your existing device (PC): Set up RSS Dashboard with all the feeds, folders, and tags you want to sync.
On your existing device (PC): Confirm your storage folder names follow the requirements above (Settings → RSS Dashboard → Storage, as well as Storage → Metadata storage > Metadata data.json location).
On your existing device (PC): Open Obsidian Settings → Core Plugins → Sync → Activity Log and wait until it shows today's date and time with the text "Fully synced"
On your new device (phone/tablet): Open Obsidian and check the same Sync Activity Log. Wait until it shows today's date and time with the text "Fully synced". Close the sync window.
On your new device (phone/tablet): Enable the RSS Dashboard plugin. Your data should now be synced.
⚠️ Important: If feeds do not appear after enabling, disable the plugin, wait two minutes, and re-enable it. If the issue persists, see [Troubleshooting] or open an issue.
If you've already hit this issue, disable the plugin on the affected device, wait for "Fully synced", then re-enable it.
Obsidian Sync has no public API to signal when a sync is in progress. On a clean install, if the plugin loads before your data has arrived from the server, it falls back to empty defaults and immediately writes them to disk — giving Sync a newer timestamp to treat as authoritative.
To ensure minor changes (feed reorders, tag edits, folder renames) are always detected by Obsidian Sync, the plugin appends a variable-length sync nonce to every write. This guarantees the file size changes on each save, which Obsidian Sync uses alongside modification time to detect changes.
Before opening a PR, read the contributor policy in CONTRIBUTING.MD, especially the Compliance Declarations (Audit Guardrails) section.
For implementation examples and approved patterns used in recent compliance passes, see docs/development/compliance-patterns.md.
This repo targets Node 22 for local development and CI. Both .nvmrc and .node-version are pinned to 22.
If you use nvm, run:
nvm use
npm ci
Use the development build while making changes locally:
nvm use
npm ci
npm run dev
Run the same install and unit test flow used in GitHub Actions:
nvm use
npm ci
npm run test:unit -- --coverage
Test Baseline: 177 test files, 1530 passing tests. See testing-guide.md for details.
To mirror the release workflow build step locally:
nvm use
npm ci
npm run build
Feed not loading
YouTube feeds not working
youtube-nocookie.com with a strict referrer policy to satisfy current YouTube embed requirements.Podcast audio not playing
If you run into an issue or have a suggestion:
RSS Dashboard resolves YouTube feed items to a canonical videoId, renders the embedded player through Privacy Enhanced Mode (https://www.youtube-nocookie.com/embed/...), and provides a standard Watch on YouTube link that opens the original video in your browser or native YouTube app.
The plugin does not add YouTube download features, background audio-only playback, or ad-blocking behavior around the embedded player.
YouTube embeds and API usage are subject to:
If you find this plugin useful, consider supporting its long-term development:
This project is licensed under the MIT License. See LICENSE for details.