Now on Firefox Add-ons Chrome & Firefox MV3 Side Panel & Sidebar

Turn long-form content
into deep understanding.

A production-grade AI summarizer engineered from first principles in plain JavaScript. Designed as a structured cognitive workspace with PDF and academic-paper extraction, a live multi-phase stepper, visual concept trees and timeline rails, prompt envelopes, quality-gate self-healing, and per-tab isolation.

01Extract YouTube, PDFs, papers, pages, and selections
02Enforce structured heading contracts
03Run cloud or 100% local inference
5 Sources
YouTube, PDFs, Papers, Courses & Text
8 Modes
Summarize, Analyze, Debate, Study & More
3 Providers
Gemini, OpenAI, Local (Ollama/LM Studio)
0 Dependencies
30+ ES modules without bundler or npm

Experience the side panel in action.

Choose a reading scenario, then watch the side panel adapt source, mode, and depth. This page does not call model APIs — it mirrors the real workflow with curated sample output.

Demo Controls

https://www.youtube.com/watch?v=bZQun8Y4L2W
State of GPT | Build 2023 | Andrej Karpathy

One side panel for the work that generic chat leaves unfinished.

Each capability exists to remove a common source of friction: copying a transcript by hand, losing timestamps, getting a three-bullet TLDR, or leaking private pages to a cloud chat tab.

A

Heading contracts, not freeform chat

Every mode writes the same markdown sections so the side panel can parse, stream, and repair output. No unnamed blobs of prose.

B

PDFs and papers, not just pages

arXiv, PubMed, OpenReview, IEEE, and Chrome PDF text layers extract as first-class sources with an academic prompt persona.

C

A live four-phase stepper

Extract → Analyze → Synthesize → Quality replaces a static spinner. Long papers show chunk counters such as 2/3.

D

Concept trees and timeline rails

Concepts mode renders filterable Core / Important / Supporting cards. Timeline mode and YouTube details become a vertical milestone spine.

E

Quality gate with one repair pass

Deep and Long runs score section depth, then regenerate only the failing headings — keeping healthy content and cutting token waste.

F

Cloud or fully local inference

Gemini and OpenAI-compatible endpoints sit next to Ollama and LM Studio. Providers receive one prompt string and stay UI-agnostic.

Built to outperform a pile of narrower tools.

Generic chat leaves you to invent the workflow. Basic extensions stop at a shallow TLDR. DeepDigest keeps extraction, structure, repair, and follow-up in one side panel.

How DeepDigest compares with common alternatives
Need Generic AI chat in a new tab Basic summary extensions DeepDigest
Stay with the source Copy, paste, context-switch Popup that covers the page Chrome side panel beside the tab
YouTube transcripts External grabber or none Unstructured dump Native timestamps, chapters, chunking
PDFs & academic papers Copy abstract by hand Usually unsupported arXiv, PubMed, OpenReview, IEEE, PDF.js layers
Output consistency Depends on the prompt you wrote Three-bullet TLDR Heading contract + quality gate
Long-form sources Hits the context window Silent truncation Semantic chunks with overlap + synthesis
Visual structure Wall of chat text Three bullets Concept trees, timeline rails, live stepper
Follow-up questions Ungrounded chat Usually none Grounded in the current session summary and source
Local / private inference Vendor account Cloud-only Ollama, LM Studio, or your endpoint
Architecture Heavy web app Monolithic content script 30+ ES modules, zero npm, Manifest V3

Engineered for depth across any source.

Selectively tuned prompts and custom DOM parsers tailor each summary to the structural strengths of the medium.

YouTube Videos

Preserves real transcript timestamps, chapter markers, and narrative arc without hallucinating sequence.

Timestamp safe Transcript fallback

PDFs & Papers

Reads Chrome PDF text layers plus arXiv, PubMed, OpenReview, and IEEE pages with an academic research persona.

PDF.js layers arXiv / PubMed

Web Articles

Employs Readability heuristics and a DOM accessibility fallback to strip ads, sidebars, and boilerplates.

Readability API Ad-filtered

Course Lessons

Specialized DOM extractors for Coursera and Udemy extracting lesson objectives, lecture text, and code snippets.

Coursera / Udemy Curriculum sync

Selected Text

Highest priority trigger: isolates exact user selection for analyzing complex paragraphs, formulas, or docs.

Direct selection Immediate context

From DOM extraction to grounded synthesis.

The processing pipeline is partitioned into distinct, auditable stages. Each module enforces strict input/output contracts to eliminate silent failures.

01

Extraction Layer

Priority dispatcher: selection → PDF/paper → YouTube → course → Readability webpage.

extractors.js · pdf.js
02

Semantic Chunking

Splits large transcripts at timestamp and paragraph boundaries with 1-sentence overlap.

chunker.js
03

Prompt Envelope

Injects source metadata, depth guidelines, and heading contracts into a unified envelope.

builders.js
04

Provider Transport

Streams chunks via AbortController with per-tab request cancellation.

provider-registry.js
05

Quality Gate & Repair

Evaluates section coverage scores; triggers targeted single-pass repair if shallow.

quality-gate.js
Prompt-Agnostic Provider Contract +

Every provider implements the normalized method signature generateText(prompt, settings, onChunk?). The provider has zero knowledge of tab IDs, user interface state, or section parsing. If a provider fails or the user cancels generation, an AbortController signal cleanly terminates in-flight fetch streams without leaking worker memory.

Semantic Chunking with Timestamp Integrity +

Unlike basic character chunking that cuts sentences mid-word, DeepDigest splits content based on structural hierarchy: timestamp segment boundaries → paragraph breaks → sentence delimiters → clause commas. Each chunk retains 1 sentence of rolling overlap to ensure continuity during final multi-chunk synthesis.

Quality Gate & Targeted Partial Repair +

When generating in Deep or Long modes, the quality gate inspects the parsed AST for section depth, minimum bullet counts, and placeholder avoidance. If a specific section (e.g. Reasoning, Evidence & Claim Audit) falls below the threshold, a targeted repair prompt regenerates only that section — preserving healthy content and saving 80% of token compute.

Per-Tab State Isolation in Chrome Side Panel +

The Chrome side panel keeps only the active session result and follow-up context in memory. Switching tabs clears the current panel state, avoiding persistent storage work and stale cross-tab data.

One unified envelope, zero prompt drift.

Explore how prompt templates are assembled dynamically. A shared outer envelope enforces system directives, language injection, and the strict markdown heading contract.

# SHARED ENVELOPE (lib/prompts/common.js)
You are an expert analytical research assistant. Your task is to transform the provided source content into an exceptionally well-structured, authoritative, and grounded synthesis.

## CORE DIRECTIVES:
1. Grounding: Rely strictly on the provided source content. Do not extrapolate unsupported claims.
2. Structure: Follow the mandatory section headings exactly as specified.
3. Language: Respond in the requested output language: {outputLanguage}.
4. Tone: Analytical, concise, objective, and dense with actionable insight.

## MANDATORY HEADING CONTRACT:
## Main Summary
## Executive Takeaways
## Details of the Video / Content
## Connections, Causes & Tradeoffs (for Deep depth)
## Reasoning, Evidence & Claim Audit
## Caveats, Biases & Open Questions
## Follow-up Questions

{sourceSpecificTemplate}

Deliberate choices and trade-offs.

Every technical architectural decision was made to balance UX responsiveness, maintainability, and resource utilization.

01

Vanilla JavaScript vs Framework Bundling

Decision: Avoided React/Vite/Webpack; wrote the extension in pure ES2020+ modules.

Rationale: Chrome extensions with MV3 service workers and side panels run lighter without hydration overhead. Instant reload during development and zero dependency vulnerability churn.

Zero build step Sub-millisecond init
02

Heading Alias Contract vs JSON Mode

Decision: Used markdown headings (## Executive Takeaways) instead of JSON Schema generation.

Rationale: Allows incremental streaming rendering to the user within 300ms. JSON requires buffering the full payload before parsing, which degrades perceived performance.

Streaming friendly Fallback tolerant
03

Targeted Section Repair vs Full Regeneration

Decision: Repaired only failing sections (1 pass maximum) instead of re-running the prompt.

Rationale: Avoids discarding already well-generated sections and cuts token usage and user latency by 75% on edge-case summaries.

75% Token savings Deterministic
04

Settings Schema as Single Source of Truth

Decision: Centralized all defaults, bounds, and normalizations into settings-schema.js.

Rationale: Both the side panel and the options page consume the same schema, preventing migration bugs and guaranteeing forward compatibility.

Type-safe schema Cross-view parity

You decide what is sent, where it goes, and what stays on this device.

Extraction runs only after an explicit action. Credentials stay in the service worker. Local providers never leave the machine.

Local credentials

Keys stay in chrome.storage.local

Provider API keys never enter the content script or the page DOM. The background worker is the only process that reads them.

Offline path

Ollama and LM Studio are first-class

Point the local provider at 127.0.0.1. Internal docs and selections can be summarized without a cloud round-trip.

Explicit trigger

No background scraping

Nothing is extracted until you click Generate, use the context menu, or press Ctrl+Shift+S.

Transient memory

Tab close wipes that tab

Results, follow-up chat, and workflow progress stay in the active side-panel session only. Switching tabs or closing the panel clears them; no hidden reading history.

Get DeepDigest on Firefox or load locally in Chrome.

Install with 1-click directly from the official Firefox Add-ons store, or load unpacked in Chrome developer mode in just a few minutes.

Official Store Release

Firefox Add-ons Store

Published and verified on Mozilla Add-ons (AMO). One-click install with automatic updates.

Install for Firefox
  1. 1

    Get the source

    Clone the repository or download the ZIP, then open the summarizer-extension folder.

    git clone https://github.com/thaihai-swe/browser-extensions.git
  2. 2

    Open Chrome extensions

    Go to chrome://extensions and turn on Developer mode in the top-right corner.

  3. 3

    Load unpacked

    Click Load unpacked and select the .output/chrome-mv3 directory.

  4. 4

    Summarize a real page

    Open a YouTube video, arXiv paper, PDF, or article, then press Ctrl+Shift+S (Cmd+Shift+S on macOS) or use the context menu.

Gemini, OpenAI, or a local endpoint needs configuration in Options. Local models run without a cloud key. Provider usage may incur charges from that provider, not from this project.

Common questions about DeepDigest.

Short answers for setup, privacy, long videos, and what the extension does — and does not — do.

Do I need a paid API key?

No. You can use a Gemini key from Google AI Studio, an OpenAI-compatible endpoint, or a fully local model through Ollama or LM Studio. There is no Chrome Web Store fee and no account on this project.

How does DeepDigest handle long YouTube videos?

Typical pages use one provider request. Long transcripts can be split into up to four semantic chunks with sentence overlap, then synthesized. Deep and Long modes may run one targeted repair pass if a section is too shallow. A four-phase stepper shows Extract → Analyze → Synthesize → Quality as this happens.

Can it summarize PDFs and academic papers?

Yes. The extractor detects Chrome PDF text layers, .pdf URLs, and paper hosts such as arXiv, PubMed, OpenReview, and IEEE. Academic sources use a research-scientist persona covering Research Question, Methodology, Empirical Results, and Caveats. Long papers can chunk up to 60,000 characters.

Can I summarize private docs, intranet pages, or selections?

Yes. Selected text has priority over PDF, YouTube, course, and webpage extractors. Pair selection mode with a local provider if the content should never leave the machine.

What keyboard shortcuts and launch paths exist?

Ctrl+Shift+S (or Cmd+Shift+S) opens the side panel and starts a summary. You can also click the toolbar icon or right-click Summarize with DeepDigest.

How do custom prompt presets work?

Named presets live in Options. They keep DeepDigest’s heading contract and grounding rules while adding your instructions. Placeholders such as __CONTENT__ and __LANG__ are supported.

Is browsing history recorded or sent anywhere?

No analytics and no hidden scrape. Content is sent to the provider you configured, and only after you generate. Results and follow-up context remain session-only and are cleared when the panel session ends.

Crafted with deliberate architectural focus.

DeepDigest showcases how product design, AI prompt engineering, and clean systems architecture combine to create a reliable cognitive companion for developers and researchers.