TLD2 v1.0.0 🎉

Initial Release

Welcome to TLD2

We're excited to announce the initial public release of TLD2—your intelligent reading companion that transforms lengthy web articles into concise, AI-generated summaries with high-quality neural text-to-speech playback, all while keeping your data 100% private.

🔒 Privacy-First

100% local AI processing by default. No tracking, no telemetry, no data collection. Your reading habits stay on your device.

⚡ GPU-Accelerated

WebGPU support delivers 2-10x speedup for neural TTS synthesis. WASM fallback ensures universal compatibility.

🎙️ Neural Voice

High-quality 24kHz TTS with 4 natural-sounding voices powered by the lightweight Kokoro 82M model.

🤖 Dual AI Modes

Chrome's built-in local AI for privacy, or optional Gemini API for enhanced accuracy—your choice.

Core Features

📄 Smart Content Extraction

TLD2 uses Mozilla's industry-leading Readability.js library to extract clean article content from cluttered web pages:

  • Intelligent parsing - Identifies main article content, ignoring ads, navigation, and sidebars
  • Wide compatibility - Works on news sites, blogs, documentation, and most article pages
  • Metadata extraction - Preserves title, author byline, and excerpt information
  • Text-only output - Strips HTML formatting for clean AI processing

Supported content types: News articles, blog posts, medium stories, technical documentation, Wikipedia pages, and more.

🧠 AI Summarization (Dual-Mode)

Local AI Mode (Default)

Powered by Chrome AI Summarizer API—Google's built-in, on-device summarization model:

  • ✅ 100% local processing (zero network requests)
  • ✅ Complete privacy (no data sent to servers)
  • ✅ Free and unlimited usage
  • ✅ Works offline after initial setup
  • ⚠️ Requires Chrome 120+ (availability varies by region)

Cloud AI Mode (Optional)

Powered by Google Gemini 2.0 Flash Lite for enhanced accuracy:

  • ✅ Higher quality summaries for complex content
  • ✅ Better context understanding
  • ✅ Free tier: 15 requests/minute, 1M tokens/day
  • ⚠️ Requires user-provided API key
  • ⚠️ Article text sent to Google servers

Summary Length Options

Length Target Best For
Short 50-100 words Quick overviews, executive summaries
Medium 150-300 words Balanced detail (default)
Long 300-500 words Comprehensive summaries with context

🎙️ Neural Text-to-Speech

TLD2's TTS is powered by StreamingKokoroJS—a browser-based neural TTS engine using the Kokoro 82M parameter model:

Voice Selection (4 Natural Voices)

Voice ID Gender Accent Description
af_sky Female American Clear, professional tone (default)
af_nicole Female American Warm, friendly conversational style
bm_fable Male British Authoritative, narrator style
bm_lewis Male British Casual, conversational tone

Audio Quality

  • Sample Rate: 24 kHz (high-quality, natural sound)
  • Model: Kokoro-82M-v1.0-ONNX (quantized to 86MB)
  • Format: Float32 PCM audio via Web Audio API
  • Latency: 200-500ms first chunk (WebGPU), 1-3s (WASM)

Playback Controls

  • Speed: 0.5x to 2.0x (default: 1.0x)
  • Pitch: 0.5x to 2.0x (default: 1.0x)
  • Pitch Correction: Auto-adjust pitch to match speed (toggle)
  • Auto-play: Start playback immediately after summarization
  • Progress Tracking: Visual progress bar with time remaining

Streaming Architecture

TLD2 implements real-time streaming for immediate playback:

  • Audio chunks generate in parallel while playing
  • Starts playing after 2-3 sentence chunks (no wait for full summary)
  • 120 tokens/second display rate mimics LLM streaming UX
  • Buffered playback prevents audio dropouts

⚡ Hardware Acceleration

WebGPU (Recommended)

GPU-accelerated neural inference via WebGPU delivers 2-10x speedup:

  • Requirements: Chrome 113+, modern GPU (NVIDIA, AMD, Intel, Apple Silicon)
  • Performance: 200-500ms first chunk latency on typical hardware
  • Detection: Automatic—TLD2 checks navigator.gpu on load

WASM Fallback

CPU-only fallback for universal compatibility:

  • Requirements: Any modern browser (Chrome 90+)
  • Performance: 1-3s first chunk latency (3-8x slower than WebGPU)
  • Optimizations: Multi-threading (4 threads), SIMD instructions

Performance Comparison

Hardware Backend Latency Speedup
NVIDIA RTX 3080 WebGPU 150-250ms 8-10x
Apple M1 Pro WebGPU 200-350ms 5-7x
Intel Iris Xe WebGPU 400-600ms 3-5x
CPU-only (8-core) WASM 1500-2500ms 1x (baseline)

⚙️ Settings & Customization

TLD2 provides comprehensive settings for personalized experience:

Voice & Playback

  • Voice selection (4 voices: af_sky, af_nicole, bm_fable, bm_lewis)
  • Speed control (0.5x - 2.0x, step: 0.1)
  • Pitch adjustment (0.5x - 2.0x, step: 0.1)
  • Pitch correction toggle (auto-adjust pitch with speed)
  • Auto-play toggle (start TTS immediately after summary)

Summarization

  • Summary length (short, medium, long)
  • AI provider (Chrome AI, Gemini API)
  • Gemini API key configuration (optional)

Appearance

  • Theme selection (light, dark, auto)
  • Dark mode optimized for VS Code aesthetics

Storage

Settings persist across sessions via chrome.storage.sync:

  • Synced across devices (if Chrome Sync enabled)
  • Encrypted by Chrome's storage API
  • Locally stored (not accessible to TLD2 servers—we have none!)

User Interface

Chrome Sidebar Panel

TLD2 uses Chrome's sidePanel API for a non-intrusive, always-available interface:

  • Persistent UI: Sidebar stays open across page navigations
  • Resizable: Drag to adjust width (200px - 800px)
  • Non-blocking: Read original article while TLD2 processes
  • Collapsible: Close sidebar when not needed

Activation Methods

  • Extension Icon: Click TLD2 icon in toolbar
  • Context Menu: Right-click page → "TLD2 - Summarize Article"
  • Keyboard Shortcut: Alt+Shift+T (customizable in Chrome settings)

Status Indicators

Clear visual feedback for all operations:

  • Extracting: "Extracting article content..." with spinner
  • Summarizing: "Generating summary..." with streaming tokens (120/sec)
  • Synthesizing: "Generating audio..." with progress percentage
  • Playing: Progress bar with time elapsed/remaining
  • Errors: User-friendly error messages with suggested actions

Privacy & Security

Privacy Architecture

Local AI Mode (Default)

Complete data privacy with zero external network requests:

Web Page (your browser)
  ↓
TLD2 Content Script (local)
  ↓
Chrome AI Summarizer (local)
  ↓
StreamingKokoroJS TTS (local)
  ↓
Audio Playback (local)

❌ No data leaves your device
❌ No tracking or telemetry
✅ 100% private processing

Cloud AI Mode (Optional)

Transparent cloud usage with user control:

  • ⚠️ Article text sent to Google Gemini API
  • TTS still processes locally
  • Opt-in only (must provide your own API key)
  • Clear UI indication when cloud mode active

Security Measures

  • Manifest V3: Modern Chrome extension architecture with enhanced security
  • Content Security Policy: script-src 'self' 'wasm-unsafe-eval'; object-src 'self'
  • Static Bundling: All code bundled locally—no remote script execution
  • No eval(): No dynamic code evaluation or inline scripts
  • HTTPS Only: Gemini API requests use HTTPS encryption
  • Minimal Permissions: Only activeTab, scripting, storage, sidePanel, contextMenus

Data Collection

TLD2 collects ZERO user data:

  • ❌ No browsing history
  • ❌ No article content (except when using Gemini API—sent to Google)
  • ❌ No personal information
  • ❌ No usage analytics or telemetry
  • ❌ No cookies or tracking

See our Privacy Policy for full details.

Technical Architecture

Technology Stack

Component Technology Version
Content Extraction @mozilla/readability 0.5.0
Local AI Summarization Chrome AI Summarizer API Chrome 120+
Cloud AI Summarization Google Gemini API gemini-2.0-flash-lite
Neural TTS kokoro-js 1.0.0
Model Execution @xenova/transformers 2.17.2
ONNX Runtime onnxruntime-web 1.20.0
TTS Model Kokoro-82M-v1.0-ONNX (q8f16) 86 MB
Build Tool esbuild 0.25.10

Extension Architecture

Manifest V3 Structure

  • Background Service Worker: Handles initialization, message routing, and TTS model management
  • Content Scripts: Dynamically injected to extract article content with Readability.js
  • Sidebar UI: Chrome sidePanel for summary display and TTS controls
  • Message Passing: chrome.runtime.sendMessage for component communication

Data Flow

1. User clicks extension icon
2. Background worker injects content script
3. Content script extracts article with Readability.js
4. Background worker sends text to AI (Chrome AI or Gemini)
5. Summary returned and displayed in sidebar
6. User clicks Play → Background worker generates TTS
7. Audio chunks stream to sidebar for playback

Model Management

  • Lazy Loading: TTS model downloaded on first use (~86MB)
  • IndexedDB Cache: Model cached locally for instant subsequent loads
  • Quantization: q8f16 mixed-precision model for 3.5x size reduction
  • Progressive Loading: Status indicator shows download progress

System Requirements

Minimum Requirements

  • Browser: Chrome 120+ or Edge (Chromium-based)
  • OS: Windows 10+, macOS 10.15+, Linux (kernel 4.4+)
  • CPU: Modern multi-core processor (2019+)
  • RAM: 4GB minimum
  • Storage: 200MB for extension + models
  • GPU: Integrated GPU (Intel/AMD) for WebGPU

Recommended Configuration

  • Browser: Chrome 120+ (WebGPU enabled)
  • CPU: 6+ cores (Intel i5/AMD Ryzen 5 or better)
  • RAM: 8GB or more
  • GPU: Dedicated GPU (NVIDIA GTX 1060 / AMD RX 580 / Apple M1+)
  • Internet: For initial model download and optional Gemini API

Optimal Experience

  • GPU: Gaming-class GPU (RTX 3060+ / RX 6700+ / M1 Pro+)
  • RAM: 16GB+ for parallel TTS chunk processing
  • Storage: SSD for fast model loading

Known Limitations

  • Chrome-Only: Requires Chrome 120+ (or Edge) due to Chrome AI Summarizer API and sidePanel API dependencies
  • Regional Availability: Chrome AI Summarizer availability varies by region—use Gemini API if unavailable
  • No Mobile Support: Extension not available on mobile Chrome (browser limitation)
  • Content Type Limits: Cannot extract from PDFs, images, videos, or paywalled content
  • Long Articles: Articles > 10,000 words may take 30+ seconds to process
  • Language Support: English-focused (TTS voices are English-only)
  • WebGPU Compatibility: Some older GPUs may not support WebGPU—falls back to WASM

Installation

  1. Install from Chrome Web Store: [Coming Soon]
  2. First Launch: TLD2 downloads TTS model (~86MB) on first use
  3. Grant Permissions: Accept activeTab, scripting, storage permissions
  4. Test It: Navigate to any article and click TLD2 icon
  5. Optional Setup: Configure voice, speed, and theme in settings

What's Next?

Planned features for future releases:

  • Multi-language Support: Additional TTS voices and UI languages
  • Custom Voice Training: Upload your own Kokoro-compatible voice models
  • Q&A Mode: Ask follow-up questions about summaries
  • Export Options: Save summaries as text, PDF, or audio files
  • Reading History: Optional local history tracking
  • Keyboard Shortcuts: Full keyboard navigation
  • Firefox Support: If/when Firefox adds required APIs
  • Mobile Extension: If Chrome adds mobile extension support

Credits & Acknowledgments

TLD2 is built on the shoulders of giants. Special thanks to:

  • Mozilla Foundation - Readability.js content extraction library
  • Hugging Face - ONNX model hosting and Transformers.js library
  • Kokoro TTS Team - Lightweight 82M neural TTS model
  • Microsoft - ONNX Runtime Web for browser inference
  • Google Chrome Team - Chrome AI Summarizer API and WebGPU
  • Google AI - Gemini API for optional cloud summarization

Feedback & Support

We'd love to hear from you! TLD2 is a new project and your feedback helps shape its future: