Profile
Back to NewsBack
GitHub Trending 8 min
Reader Mode
darshi1337/apogee: Private AI summarizer for anything you read. Inspired by Mozilla's Orbit.

darshi1337/apogee: Private AI summarizer for anything you read. Inspired by Mozilla's Orbit.

16 hours ago

Apogee Logo

Apogee

A local-by-default AI summarizer in your browser for articles, videos, PDFs, DOCX files, and pasted text. It runs on WebGPU, WebAssembly, or your own local Ollama or llama.cpp server, with separately authorized remote generation available.

Available in Chrome Web Store   Get Add-on for Firefox

Website | Architecture | Models | Browsers | Privacy | Roadmap | Store listing | License

Release</a> License: MIT</a> CI</a> OpenSSF Scorecard</a>

PRs Welcome</a> Good first issues</a> First-timers-only</a> Help wanted</a> Contributors</a>

An offline-first browser extension that respects privacy, by darshi1337 and contributors

For AI Assistants and LLMs: Read llms.txt for codebase structure, build scripts, test commands, and developer instructions.

Apogee is an AI browser assistant for articles, videos, emails, and more. In-browser generation uses your GPU with WebGPU (Chrome, Edge, and other Chromium browsers) or your CPU with WebAssembly, which now works everywhere.

WebAssembly is the default on Firefox and an opt-in fallback on Chromium browsers. It helps on machines without WebGPU. Local generation needs no backend, API key, or cloud account. Optional remote generation is described below.

For power users, Apogee also talks straight to a local Ollama instance over 127.0.0.1. It also talks to a llama-server you run yourself.

Apogee summarizes pages, videos, PDFs, DOCX files, and pasted text locally by default. Local generation needs no account or API key. Explicitly selected OpenRouter or OpenCode generation sends your input to that provider after separate consent.

⭐ If Apogee helps you, star the repository. It helps the project reach more contributors.

Why the name

Apogee is the point of an orbit farthest from Earth. The word also means the highest point of anything. The name keeps the orbit theme of Mozilla Orbit, the discontinued project that inspired this extension. It also states the aim: to fly higher than Orbit by staying local and private.

Get Started

  1. Install Apogee from the Chrome Web Store. Or use Firefox Add-ons.
  1. Open a page, video, PDF, or DOCX file, or paste text into the Apogee popup.
  1. Pick a summary format and select Summarize, or select the Copy text chip to extract and copy cleaned page text directly without running an AI model.
The first in-browser run downloads the picked model. Cached models run offline after that. For larger models, set up Ollama or llama.cpp in Settings.

Contribute

Install the extension and use it each day. Read ARCHITECTURE.md to learn how it works. When something breaks, open a bug report. A clear report is help enough. Each confirmed bug becomes an issue the next person can pick up. To fix a bug yourself, pick a first-timers-only or good first issue item and follow CONTRIBUTING.md.

Why Apogee

The discontinued Orbit project from Mozilla inspired Apogee. Orbit tried browser-based page summarization, but it used central API servers and stored summaries on servers.

Apogee fixes the design and privacy problems of Orbit by staying local-first:

  • Local by default: Tokenization, inference, retrieval, and caching happen on your device.
  • Private by design: Page content, transcripts, files, and summaries stay on your device for local generation. Optional remote generation requires separate consent and an explicit foreground Summary or Ask action.
  • No account needed for local generation: Optional remote-provider setup uses your own provider key. Apogee has no telemetry service or backend.

At A Glance

The table below compares Apogee with common cloud-based AI extensions and the discontinued Orbit project from Mozilla.

| Feature or Architecture | Apogee | Cloud AI Extensions | Mozilla Orbit Project | | :-- | :-- | :-- | :-- | | Local On-Device Inference | Yes (WebGPU, WASM, Ollama, llama.cpp) | No (Needs cloud APIs) | No (Used remote Mistral 7B servers) | | Zero API Key Requirement | Yes for local generation; optional remote setup uses your key | No (Needs API keys or paid tiers) | Yes | | Offline Functionality | Yes (Works offline after initial weight cache) | No (Needs active internet connection) | No (Failed without server connection) | | Zero Data Transmission | Local generation keeps content local; opt-in remote generation sends input to your provider | No (Uploads full webpage text) | No (Caches page summaries remotely) | | Open Source License | Yes (MIT License) | Varies | Yes | | Local Ollama Integration | Yes (Direct loopback HTTP connection) | Rare | No | | Local llama.cpp Integration | Yes (Direct loopback HTTP connection to llama-server) | Rare | No | | Grounded Passage Highlighting | Yes (Interactive source sentence scroll) | Rare | No |

What It Can Do

  • Articles and Web Pages: Clean text extraction uses Readability and site-specific extractors. They cover Wikipedia, GitHub, Reddit, Hacker News, Bluesky, Mastodon, Lemmy, Discourse, Stack Overflow, Lobsters, and arXiv.
  • Selected Text: Select at least 20 characters on a supported page. Use Selection in the popup or the browser context menu to summarize only that text. Follow-up Ask questions keep the picked text as their source.
  • YouTube and Bilibili Videos: Interactive timestamped timelines. Click key moments to jump straight to them in the video.
  • Social Threads: Apogee parses Bluesky, Reddit, Hacker News, Mastodon, Lemmy, Discourse, and other discussion sites into structured Markdown. It keeps author, score, and reply order.
  • Local documents and text: Pick or drag PDF, DOCX, TXT, Markdown, JSON, or HTML files into the popup, or paste text directly.
  • Ask Q&A with Smart Retrieval: Apogee matches passages locally. You can ask about long documents without losing context.
  • Grounding and Sentence Highlighting: Click any summary bullet to scroll the page straight to the source passage on Chromium browsers.
  • Persistent Chrome Side Panel: Keep the summary or Ask view open next to the page while you browse.
  • Light and dark themes: Change themes from the home and summary headers.
  • Custom Standing Instructions: Set your own prompt guidance such as simple explanations or technical summaries.
  • Per-Page Focus Keywords: Enter an optional topic or keyword (up to 200 characters) in the Focus on... (optional) field. Find the field below the response format selector in the home view. Use it before you summarize articles, PDFs, DOCX files, or pasted text. It steers emphasis toward specific themes without inventing facts. The input stays hidden on video, discussion (Hacker News, Reddit, Stack Overflow), and multi-tab pages.
  • Multi-Language Translation: Summarize pages into 36 target languages with the default Helsinki-NLP Opus-MT engine or direct LLM translation.
  • Extract-only "Copy text": Click the Copy text chip in the popup to extract and copy cleaned page text (including PDFs) straight to your clipboard with no AI inference or model download.

Screenshots

Extension Popup Persistent Side Panel
Apogee extension popup home view Apogee persistent side panel home view

Privacy

  • Local by default: Local generation handles page contents, transcripts, PDFs, and summaries on your device. Remote generation sends page, selected, pasted, or extracted file text, title and URL when present, your question, and custom instructions to the provider you explicitly select.
  • Optional remote generation (B1): Catalog refresh and generation have separate consent controls in Settings. Catalogs use https://openrouter.ai/api/v1/models and https://opencode.ai/inference/v1/models; chat uses https://openrouter.ai/api/v1/chat/completions and https://opencode.ai/inference/openai/v1/chat/completions. Credentials go only to the matching fixed origin. OpenRouter requires fresh, explicitly zero advertised prices and disables provider fallback (allow_fallbacks: false). OpenCode Console / Go uses paid credits/Go models; the client excludes free models from this preset. Remote generation is available only for explicit foreground Summary and Ask. Background/context-menu runs, multi-tab synthesis, and automatic suggestions are disabled for remote providers. Remote providers never enter automatic selection or fallback. Long inputs and language handling may make multiple requests. Revocation stops future transmissions but cannot recall data already sent; provider and upstream model policies apply. See PRIVACY.md.
  • Local Loopback: Ollama and llama.cpp connections run strictly over local loopback (http://127.0.0.1). Apogee refuses any other host.
  • Anonymized SponsorBlock: YouTube sponsor lookups send only a k-anonymity hash prefix. Turn them off under Settings, then Privacy to disable that lookup. Remote catalog refreshes, when explicitly requested, still use the network.
  • Sensitive Site Exclusions: Apogee excludes sensitive sites from disk caching. Covered hosts: Gmail, Outlook, Proton Mail, Yahoo Mail, Google Messages, WhatsApp Web, Telegram Web, Slack, Discord, Microsoft Teams. Custom domain lists join them.
Read the full security model in Privacy and Security Architecture.

Documentation Directory

For Users

  • Browser Support: Browser compatibility table, WebGPU versus WebAssembly execution, and Ollama support.
  • Model Reference: Full model table, download sizes, context windows, and benchmarks.
  • Troubleshooting: Fix the common failures by symptom: no WebGPU, stalled model download, Ollama unreachable, slow Firefox, unreadable page.

For Developers & Contributors

Extractor contributions need no browser, GPU, or model download. The fixture harness runs site extractors against saved HTML in Node.js 24 or newer:

cd apogee-extension
npm install
npm test

See the extractor test harness and worked examples to add a fixture. It shows how to test a site-specific extractor. The contributing guide lists available issues and the checks to run before a PR.

  • Developer Setup: Steps to build, run watch mode, run test suites, and format code.
  • Contributing Guide: Rules for opening pull requests, sending code changes, and claiming issues.
  • Project Roadmap: Feature roadmap, planned milestones, and completed releases.
  • Changelog: Full release history and version changes.
  • Security Policy: Security policy, how to disclose flaws, and reporting steps.

Contributors

Thanks to all contributors:

darshi1337 prashantpiyush1111 mohdUwaish59 vaishaldsouza dbdefault chenzeyan54-commits Daniele-Cangi dread980 PrathamShenoy14 naba-runn Rutvik552k rodriveiga01 bcu001 pixxyy695 darshi PandaHUN777 MayurK-cmd Rik24 avijit-thawani zenithamza lb1192176991-lab githarshil Yuvemil tejas5038 Gambit-Checkmate Sagar07Kr Codexhack286 RohitSutar1823 rohitmore07 NikStor03 Munishwar001 Jah-yee JSP7A GhostCoder6969 DYNOSuprovo ayushi-wq amandeavor amoussa1229 Aarav-cyber adity982

License

MIT

Chat with me