Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RSS AI Reader

简体中文 | Official Landing Page

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.


Technical Features & Highlights (3x3 Matrix)

⚡ 1. 8-Step Page Extraction Engine

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.

🧠 2. Proportional Token Budgeting & Adaptive Pure Chat

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.

🔍 3. Highlight Q&A & DOM Role Awareness

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).

📊 4. Mermaid Diagram Auto-Fix & Fullscreen Rendering (Mermaid Auto-Fix & View)

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.

🔄 5. SW Port-Based Streaming Communication

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.

🧭 6. SPA Route Hijacking & Window Guard

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.pushState and history.replaceState and listens to popstate to instantly detect client-side navigation (like Twitter/X, YouTube, Medium) and trigger instant, silent webpage re-extractions.
  • Integrates multi-window isolation guards via hostWindowIdRef to prevent state bleeding across multiple open browser windows.

🌐 7. Async Background Title Translation

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.

📂 8. Standard OPML Integration via Feedsmith

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.

🔒 9. Privacy-First Local IndexedDB Architecture (Privacy-First Offline Storage)

  • 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.

🚀 Quick Start Guide

Step 1: Configure Your AI Connection

  1. Click the Gear (Settings) icon in the top-right corner of the sidebar to open the Settings panel.
  2. In the AI API Configuration section, 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 Connection to run an instant handshake. A green badge indicates success.
    • Click Fetch Models to automatically retrieve all models available under your Key, then select your desired model from the dropdown.
  3. Click the Save Config button in the top-right corner.

Step 2: Subscribe to RSS Feeds

  1. In the main sidebar header navigation, select the Feeds sub-tab under the RSS tab.
  2. Click Subscribe Feed to expand the feed subscription panel:
    • Single Feed: Paste your target RSS feed URL (e.g. https://www.tmtpost.com/rss.xml), and click Subscribe.
    • Bulk Import: Expand the Import OPML section, click Import OPML File, and select your .opml backup file to import all feeds at once.
  3. Return to the main list (click Unread or All), and click the Refresh All button to load the latest articles.

Step 3: Fast Page Navigation & Deep AI Chat (Core Interaction Flow)

  1. 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.
  2. Silent Web Extraction: Click the module toggle button in the sidebar header to switch from RSS to Chat. 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.
  3. 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.
  4. 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!
  5. 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.

🛠️ Contribution & Development

This repository hosts public documentation and website assets for GitHub Pages.

  1. 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
  2. Feedback & Reports:
    • Encountered any bugs or have feature suggestions? Feel free to submit an issue via the Issues Page.

License

This public repository (including docs, release notes, and static page sources) is licensed under the MIT License. The core application codebase remains private.

About

Public gateway and feedback repository for RSS AI Reader

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

Contributors