Skip to content

Repository files navigation

Learning Copilot logo

Learning Copilot

Turn difficult passages into clear explanations—right where you are reading.

CI status Version 0.8.1 Status: beta Chrome Manifest V3

Quick start · Features · Screenshots · Documentation · Privacy · Contributing

Learning Copilot onboarding screen showing the Select, Explain, Understand workflow

Learning Copilot is a browser extension for students, researchers, and curious readers. Select a passage on almost any webpage, choose how you want it explained, and stream the answer into a movable panel without breaking your reading flow.

Important

Learning Copilot v0.8.1 is the stable Chrome Web Store release. You need your own cloud-provider API key or a local model. AI output can be wrong, so verify important explanations against a reliable source.

Features

Capability What it gives you
One-click explanations Select text, pick a style, and explain it without opening another tab.
Streaming answers Read the response as it arrives; stop an active request whenever you need to.
🧠 Multiple AI providers Use Gemini, OpenAI, Claude, or a loopback Ollama/LM Studio-compatible endpoint.
🎭 Explanation styles Start with Simple, Like a 5yo, Fun & Sarcastic, or Academic—or write reusable custom personas.
🪟 Adaptive in-page workspace Resize down to a 220 px panel; text shrinks with the width, while Compact, Balanced, and Large preferences preserve user choice.
🔌 Connection checks Test the current key and model, or a local endpoint, before saving the configuration.
🛡️ Direct data path Settings stay in local extension storage; requests go directly to the provider you configure.

The extension reads the text you explicitly select. It sends that text and the active prompt instructions only after you choose Explain. Learning Copilot has no analytics and no developer-operated backend.

How it works

Select a passage  →  Choose a style  →  Explain  →  Read, move, resize, or stop

Cloud mode sends the request directly to Gemini, OpenAI, or Anthropic. Local mode accepts only HTTP(S) endpoints on localhost or 127.0.0.1; the extension does not bundle or start a model server.

Screenshots

See it in action

Text selected on an arXiv page with the Learning Copilot explanation action and style picker visible
Select a difficult passage without leaving the page
Choose an explanation style and start from the text you are already reading.

Learning Copilot explaining scientific text with a custom Angry dad persona
Explain it in your own style
Use a custom persona to change the tone, depth, and structure.

Learning Copilot explanation panel enlarged over an arXiv page to demonstrate dragging and resizing
Make room when you need it
Drag the explanation panel anywhere and resize it for longer answers.

Configure it your way

Learning Copilot provider configuration screen
Bring your preferred provider
Configure and test a cloud key or local model endpoint.
Learning Copilot custom explanation personas screen
Make explanations sound right for you
Create reusable instructions for tone, depth, and structure.

Quick start

Requirements

  • Node.js 24+
  • npm
  • Chrome, Edge, Brave, or another Chromium-based browser

Build and install

git clone https://github.com/ari-abb/learning-copilot.git
cd learning-copilot
npm ci
npm run build

Open chrome://extensions, enable Developer mode, choose Load unpacked, and select .output/chrome-mv3.

Get your first explanation

  1. Open Learning Copilot from the browser toolbar.
  2. Choose Gemini, OpenAI, Claude, or Local and enter the required connection details.
  3. Choose a Compact, Balanced, or Large interface, then select Test Key or Test Connection and Save Changes.
  4. Open a normal webpage and select up to 20,000 characters.
  5. Choose an explanation style and select Explain.

Provider-specific setup and troubleshooting live in Getting Started.

Privacy and product boundaries

  • API keys and settings are stored in chrome.storage.local, not an encrypted credential vault. Anyone with access to the browser profile may be able to recover them.
  • Cloud requests may be retained, billed, or rate-limited under the selected provider's policies.
  • Browser-internal pages, extension stores, and some embedded viewers block content scripts.
  • Chrome's built-in PDF viewer does not expose selected PDF text as a normal webpage DOM. On arXiv, use the paper's HTML version for the in-page selection workflow.
  • Selected webpage text is untrusted input and may contain prompt-injection instructions. Treat generated output as a learning aid, not medical, legal, financial, or security advice.
  • Chrome is the reviewed release target. A Firefox build command exists, but this release has not completed a Firefox compatibility pass.

See the Privacy Policy for the full data flow and Security Policy for the trust model and reporting path.

Documentation

Guide Use it for
Getting Started Installation, provider setup, first use, and troubleshooting
Project Overview Architecture, data flow, permissions, and technical constraints
Privacy Policy Data handling, third-party providers, retention, and user control
Security Policy Trust boundaries and private vulnerability reporting
Contributing Local development, validation, and pull-request expectations

Development

npm run dev          # Start WXT development mode
npm run check        # Run TypeScript and runtime-boundary tests
npm run verify:store # Check, build, and audit the production package
npm run release:chrome

The production-package gate validates the Manifest V3 targets, permissions, provider-host allowlist, icon dimensions, source maps, starter assets, and common remote/evaluated-code patterns.

Project status and license

Learning Copilot v0.8.1 is the stable Chrome Web Store release. New changes are developed and validated on the dev branch before they are promoted to main.

No open-source license has been declared yet. Until a LICENSE file is added, the repository is source-available but does not grant general rights to copy, modify, or redistribute the code.

Releases

Packages

Contributors

Languages