RSS AI Reader is an intelligent Chrome Side Panel RSS reader built on top of Plasmo and React 19. It features seamless integration with Large Language Models (LLMs) to provide privacy-first high-fidelity webpage content extraction, adaptive RAG slicing, and contextual sidebar chat.
Designed for modern dynamic Single Page Applications (SPAs) with complex DOM trees, our custom 8-step page extraction pipeline provides:
- DOM Quiescence Tracking: Automatically detects rendering stability using MutationObserver and SPA framework markers (Vue/React/Nuxt/Next.js).
- Mozilla Readability & CETD Scoring: Combines into a 3-way fallback strategy (Readability → CETD → Fullbody Fallback) with a 50-character quality floor gate.
- 4-Round Path-Mapped Noise Cleaning & Retries: Cleans hidden nodes, semantic tags, and popups (while preserving comment systems like Giscus/Disqus), backed by exponential-backoff crash recovery and a 5MB DOM safety safeguard.
Features a custom proportional token allocation and scaling algorithm, coupled with a dual-track pure chat mode:
- Adaptive RAG Mode: Dynamically checks the model's active context window (e.g. DeepSeek V4's 1M tokens) and intelligently scales between "Full Context", "BM25 Retrieved Chunks", and "Summarized Outline" to prevent context overflow and redundant API costs.
- On-Demand Pure Chat: Auto-activates pure free chat on blank tabs or system pages (
chrome://,about:blank), and supports manual switching to "None" context to use the sidebar as a generic AI writing assistant.
The Content Script actively monitors mouse highlights and selection changes on the host page to enable seamless Highlight Selection Dialogues:
- Integrates high-frequency debouncing and detects node roles (such as CODE blocks, HEADINGs, or standard TEXT paragraphs).
- A selection badge automatically appears above the chat input in real time when text is selected, automatically attaching it into the prompt context when sending (or click to clear).
Renders Mermaid flowcharts, sequential diagrams, and mindmaps directly within the chat bubble:
- AI Syntax Self-Healing: When rendering faults occur in Mermaid diagrams, click the fix button on the error container to trigger an AI repair flow that quietly resolves syntax errors and re-renders the diagram.
- Supports single-click fullscreen high-fidelity zoom inside a separate browser tab.
All LLM API calls are executed strictly within the Service Worker (SW) background process to 100% bypass CORS cross-origin blocks:
- Employs the chrome.runtime.Port connection protocol to push incremental token streams to the Side Panel.
- Fully parses and renders DeepSeek Reasoning (thinking) tokens alongside stream-rendered tool invocations (Tool Calling, such as
search_page,get_section_by_heading). - Integrates keepalive heartbeats to prevent Chrome from aggressively putting the Service Worker to sleep during prolonged AI thinking phases.
Overcomes the common pitfall where standard browser extensions fail to detect in-page navigation or re-extract content inside modern SPAs:
- Monkey-patches HTML5
history.pushStateandhistory.replaceStateand listens topopstateto instantly detect client-side navigation (like Twitter/X, YouTube, Medium) and trigger instant, silent webpage re-extractions. - Integrates multi-window isolation guards via
hostWindowIdRefto prevent state bleeding across multiple open browser windows.
If you subscribe to global newsletters or Substacks:
- A Service Worker background queue quietly translates non-Chinese feed titles into elegant, contextually accurate Chinese in an asynchronous pipeline, reducing information cognitive load without blocking your browsing.
Utilizes the high-performance feedsmith parser (achieving 4-5x faster parsing benchmarks than the legacy rss-parser). Easily import and export OPML 1.0/2.0 standard subscription lists from Feedly, NetNewsWire, or Inoreader with zero loss.
- Zero cloud servers, no account registrations required, completely offline-first.
- All subscription sources, article details, read/unread states, chat history, and API configurations are saved in your local IndexedDB database (encapsulated using high-performance Promise-based
idb), ensuring complete ownership of your personal data.
- Click the
Gear(Settings) icon in the top-right corner of the sidebar to open the Settings panel. - In the
AI API Configurationsection, fill in the following:- API Endpoint Url: Enter your LLM base address (e.g. DeepSeek official API:
https://api.deepseek.com/v1). - API Key: Paste your secret key.
- Click
Test Connectionto run an instant handshake. A green badge indicates success. - Click
Fetch Modelsto automatically retrieve all models available under your Key, then select your desired model from the dropdown.
- API Endpoint Url: Enter your LLM base address (e.g. DeepSeek official API:
- Click the
Save Configbutton in the top-right corner.
- In the main sidebar header navigation, select the
Feedssub-tab under theRSStab. - Click
Subscribe Feedto expand the feed subscription panel:- Single Feed: Paste your target RSS feed URL (e.g.
https://www.tmtpost.com/rss.xml), and clickSubscribe. - Bulk Import: Expand the
Import OPMLsection, clickImport OPML File, and select your.opmlbackup file to import all feeds at once.
- Single Feed: Paste your target RSS feed URL (e.g.
- Return to the main list (click
UnreadorAll), and click theRefresh Allbutton to load the latest articles.
- Host Page Navigation: Click any article card in your RSS list. The extension automatically navigates your active browser tab to the article's original link and marks the item as read in the sidebar.
- Silent Web Extraction: Click the module toggle button in the sidebar header to switch from
RSStoChat. When the sidebar detects you are viewing the newly navigated article page, the Content Script immediately starts the 8-step extraction pipeline in the background, making the pure Markdown context ready for chat. - One-Click Quick Actions: At the top of the Chat panel, click any built-in action shortcut (
Summarize,Outline,Explain,Translate). The AI instantly compiles an summary and comment above the text. - Seamless Highlight & Selection Q&A: When reading any article or browsing any webpage, simply highlight any code snippet, technical term, or paragraph with your mouse. A [Selection] badge will automatically appear above the chat input. The highlighted text is automatically attached as context when you send a prompt (or click the badge to clear it), enabling precise Q&A on your selection!
- Flexible Free Chatting: When you are on a blank tab, New Tab, or a
chrome://system page, the sidepanel automatically activates "Pure Chat Mode" so you can talk with the AI freely. In standard web contexts, you can also toggle the Context Mode selector below the input to "None" to initiate a clean, unrestricted conversation.
This repository hosts public documentation and website assets for GitHub Pages.
- Build Requirements (for core developers working with private codebase):
- Uses enpm as the required package manager.
- Install dependencies:
enpm install - Run in development (HMR active):
enpm run dev - Build for production production package:
enpm run build
- Feedback & Reports:
- Encountered any bugs or have feature suggestions? Feel free to submit an issue via the Issues Page.
This public repository (including docs, release notes, and static page sources) is licensed under the MIT License. The core application codebase remains private.