Skip to content

A modern, keyboard-driven RSS feed reader that brings back the magic of Google Reader with AI! πŸš€

Notifications You must be signed in to change notification settings

JamesDavid/InReader

Repository files navigation

πŸ“š InReader

A modern, keyboard-driven RSS feed reader that brings back the magic of Google Reader with AI! πŸš€

InReader combines the beloved simplicity of Google Reader with modern features like AI-powered summaries, chat capabilities, and a beautiful dark mode. Perfect for power users who love keyboard shortcuts and AI enthusiasts who want to chat with their articles!

✨ Key Features

🎯 Core Features

  • Smart Feed Management - Subscribe, organize, and refresh feeds with automatic content extraction
  • Feed Organization - Folder support with drag-and-drop organization
  • Visual Feed Status - Color-coded unread badges to track content freshness
  • Full Article Extraction - Automatic fetching of complete article content
  • AI-Powered Summaries - Local LLM summaries via Ollama integration
  • Chat with Articles - Interactive AI discussions about article content
  • Keyboard-First Design - Vim-style navigation and comprehensive shortcuts
  • Dark Mode - Modern, eye-friendly dark theme
  • Text-to-Speech - Queue-based article playback with progress tracking
  • Smart Navigation - URL-synced navigation with keyboard and mouse support
  • Offline Support - IndexedDB-based local storage for articles and feeds
  • Search - Full-text search with saved search history

πŸ”„ Technical Features

Feed System

  • Parallel feed refresh with stalled entry detection
  • Smart duplicate entry detection
  • Automatic metadata extraction
  • Unread count tracking with visual indicators

Article Management

  • Full article content extraction with RSS preview fallback
  • Read/unread and star/favorite system
  • Multiple viewing options (inline, new tab, reusable window)
  • Processing status indicators with error handling

AI & TTS Integration

  • Local LLM support via Ollama for privacy
  • Configurable AI models for summaries
  • Streaming chat responses with history tracking
  • Queue-based TTS playback with progress tracking
  • Automatic duplicate detection in TTS queue

Data & Search

  • IndexedDB storage with automatic migrations
  • Efficient batch operations and caching
  • Full-text search with history tracking
  • Result count and recency tracking

⌨️ Keyboard Shortcuts

Navigation

  • j - Move down one item
  • k - Move up one item
  • h - Return to feed list/sidebar
  • l - Open selected article/move to article list or open chat with current article
  • / - Focus search bar
  • Escape - Clear search/Close modals
  • Space - Scroll article / expand article content

Article Management

  • m - Toggle read/unread status
  • i - Toggle star status
  • o - Open article in new tab
  • 0 - Open article in reusable window
  • u - Refresh current article content and summary
  • r - Refresh all feeds
  • a - Add new feed

Text-to-Speech & AI Features

  • [ - Add current article to TTS queue (when in article list)
  • [ - Add 5 most recent unread items to TTS queue (when in feed list)
  • ] - Skip to next TTS item
  • \ - Toggle TTS play/pause
  • p - Pop to currently playing article
  • Shift+P - Go to previous page
  • Ctrl+P - Go to next page

🎨 Visual Indicators

Feed Badge Colors

The unread count badge for each feed changes color based on the most recent unread entry:

  • Dark Purple - Content from the last hour
  • Dark Blue - Content from the last 24 hours
  • Light Blue - Content from the last week
  • Gray - Older content

This color-coding system helps you quickly identify feeds with fresh content and prioritize your reading.

πŸš€ Getting Started

Prerequisites

  • Node.js
  • npm or yarn
  • Ollama (for AI features)

Quick Start

# Clone the repository
git clone [repository-url]

# Install dependencies
npm install

# Start the development server
npm run dev

πŸ› οΏ½οΏ½ Tech Stack

  • βš›οΈ React
  • πŸ“˜ TypeScript
  • 🎨 Tailwind CSS
  • πŸ’Ύ Dexie.js (IndexedDB)
  • ⚑ Vite
  • πŸ€– React Router

Project Structure

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ Layout.tsx        # Main layout and keyboard navigation
β”‚   β”œβ”€β”€ Sidebar.tsx       # Feed navigation and selection management
β”‚   β”œβ”€β”€ FeedList.tsx      # Entry display and interaction
β”‚   β”œβ”€β”€ SearchResults.tsx # Search functionality
β”‚   β”œβ”€β”€ Header.tsx        # Search and dark mode
β”‚   β”œβ”€β”€ ChatModal.tsx     # Article chat interface
β”‚   └── OllamaConfigModal.tsx # AI configuration
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ db.ts            # Database operations
β”‚   β”œβ”€β”€ articleService.ts # Content extraction
β”‚   β”œβ”€β”€ paginationService.ts # Pagination management
β”‚   └── ollamaService.ts # AI integration
└── App.tsx              # Root component

πŸ”„ License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).

What this means:

  • βœ… You can freely use, modify, and distribute this software for non-commercial purposes
  • βœ… You must give appropriate credit and indicate if changes were made
  • ❌ You cannot use this software for commercial purposes without permission
  • ℹ️ The original author retains all rights for commercial use

For more information, see the full license text.


Made with ❀️ for RSS enthusiasts and AI explorers

About

A modern, keyboard-driven RSS feed reader that brings back the magic of Google Reader with AI! πŸš€

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages