ChatGPTBox: a browser extension that puts an LLM in every page
Integrating ChatGPT into your browser deeply, everything you need is here
At a glance
- What is it?
- ChatGPTBox is an MIT-licensed browser extension that adds a chat window, page summarisation and selection tools to Chrome, Edge, Firefox, Safari and Android. It is a thin client for whichever model endpoint you point it at, and its limits follow from that design.
- Who is it for?
- Adopt it if you want one keyboard-driven chat surface across Chrome, Firefox, Edge, Safari and Android and you are willing to bring your own API key or rely on a logged-in web session. Skip it if you need guaranteed model availability, a documented rollback path for releases, or an audited dependency tree, because the README does not cover any of those.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What ChatGPTBox actually solves, and for whom
Most LLM browser extensions pick one surface: a sidebar, a popup, or a search-engine result injection. ChatGPTBox spreads across all three. The README lists a chat dialog on any page (Ctrl+B), a right-click summarise action (Alt+B), and a standalone conversation page (Ctrl+Shift+H). The same build also adapts specific sites, with Reddit, Quora, YouTube, GitHub, GitLab, StackOverflow, Zhihu and Bilibili named in the feature list.
The target user is someone who already pays for or self-hosts a model and wants it reachable from wherever the text lives, without copying paragraphs into a separate tab. That is a different audience from people who want a hosted product with a billing relationship. ChatGPTBox is a client. It does not ship a model, and the README's install badges point at the Chrome Web Store, Edge Add-ons, addons.mozilla.org, a Safari wiki page and an Android wiki page rather than at any hosted backend.
The second audience is people who want to keep their prompts out of a vendor's analytics. The README states the extension does not collect data, that it will not transmit prompts or page content unless an AI feature is triggered, and that the extension must be activated manually by default. Those are claims about behaviour, and the README also tells you how to check them: search the code for fetch( and XMLHttpRequest(.
How the extension is wired: content scripts, a manual trigger, and your own endpoint
The architecture implied by the README is a content-script layer plus a background layer, with the LLM call happening only after an explicit user action. The extension injects UI into the current page (the floating window, the selection bubble, the site-specific panels), and the request to the model goes out only when a feature is invoked. The README's second news item is explicit that prompts and page content are not sent unless an AI-powered feature is triggered, and issue #407 is cited as the origin of the manual-activation default.
On the model side, ChatGPTBox is a multiplexer. The feature list names Web API for free and Plus users, GPT-3.5, GPT-4, Claude, New Bing, Moonshot, Self-Hosted and Azure, plus a Custom Model mode. The README points at two ways to widen that further: run litellm or one-api to expose any LLM behind an OpenAI-shaped endpoint, or point Custom Model at Ollama or OpenRouter. That is the useful part of the design. The extension does not care who serves the tokens as long as the API shape matches.
Page understanding is handled locally where possible. @mozilla/readability is a dependency in package.json, which is the standard library for extracting article text from a DOM, and @nem035/gpt-3-encoder is also present, which suggests token counting happens in the extension rather than on a server. Neither is documented in the README, so treat that as an inference from the dependency list rather than a stated design.
Installing ChatGPTBox: store build versus building from source
For normal use you install from a store. The README links Chrome, Edge, Firefox, Safari and Android, and the Safari and Android routes go through the project wiki rather than a store listing. The GitHub badge links to a wiki page titled Install, which is where the platform-specific steps live. The README itself gives no command line for a store install, so there is nothing to reproduce here.
Building from source is the other path. package.json declares node >=22 and a build script. The .nvmrc file is present at the repository root, so the expected Node version is pinned there.
npm install
npm run buildThe build runs node build.mjs --production. A development build is available as npm run dev, and npm run analyze runs the same script with an analysis flag. The README does not document where the production build writes its output or how to load the unpacked result into a browser, so check build.mjs before assuming a directory name.
If you are changing the code, the repository ships tests and a linter, and the scripts are worth knowing before you open a pull request:
npm test
npm run lint
npm run pretty:checknpm test runs the Node test runner with a browser shim, so it does not need a real browser. npm run verify runs a separate search-engine config check, and the repository has a verify-configs workflow badge for it.
The free-tier dependency is the real limitation
The README advertises "Web API for Free and Plus users" alongside API-key modes. That free path is not an API. It is the chat web session, which means the extension's behaviour depends on an interface the project does not control. When that interface changes shape, the free path breaks until the maintainers ship a fix, and users on that path cannot simply swap in a key unless they have one.
The same applies to New Bing in the feature list. Every session-based provider in that list is a moving target, while GPT-3.5, GPT-4, Claude, Azure, Moonshot and Custom Model are addressed through APIs with published shapes. If your use case is production-adjacent, the session-backed options are the ones to avoid.
The second limitation is scope. ChatGPTBox is a general-purpose assistant overlay, not a tool with a domain model. It has no retrieval layer, no document store and no evaluation harness in the README. If you need answers grounded in a corpus you control, you are building that yourself and pointing Custom Model at it.
The third is verification burden. The README asks you to audit the network calls by searching for fetch( and XMLHttpRequest( in the code. That is a reasonable request for a small codebase, and the README says the amount of code is not much, but it is still work you have to do rather than a property you can assume. There is also a SOURCE_CODE_REVIEW.md at the repository root, which suggests the project has done some of this itself, though the README does not describe its contents.
ChatGPTBox versus a single-provider extension
The obvious comparison is with an extension built around one vendor's API. Those tend to be simpler: one auth flow, one endpoint, one set of model names, and no Custom Model configuration screen. The trade is that you cannot move. If the provider changes pricing, rate limits or availability, your browser tooling moves with it.
ChatGPTBox takes the opposite position. The README's news section points at litellm and one-api for converting arbitrary LLM APIs into OpenAI format, and at Ollama and OpenRouter as Custom Model targets. The practical consequence is that switching providers is a settings change rather than a reinstall, and you can run a local model through Ollama without the extension knowing the difference.
That flexibility has a cost in surface area. The settings screen, shown in the README's preview screenshots, has to cover multiple providers, custom API addresses, language preference, and per-site toggles. The README notes that all site adaptations and selection tools can be switched on or off so you can disable modules you do not need. If you only ever use one provider, you are carrying configuration you will never touch.
Maintenance, releases and the MIT licence
The repository is not archived, and the last push was on 2026-09-14. Recent releases are v2.7.1 on 2026-09-06, v2.7.0 on 2026-08-25 and v2.6.1 on 2026-06-29. The gap between v2.6.1 and v2.7.0 is roughly two months, and the gap between v2.7.0 and v2.7.1 is under two weeks, so the release cadence is not uniform. It is a maintained project, but the version history does not promise a schedule.
Upgrade cost for users is low by construction: browser extensions update through the store. The README does not document a rollback procedure, and store channels generally do not offer one, so pinning a known-good version means building from source or installing an unpacked build you keep yourself.
The code is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are retained. That is the standard reading of the text, not legal advice. If you fork it and ship a store build, the licence file at the repository root is the artefact to carry forward.
One maintenance detail worth noting: package.json includes release scripts for submitting to stores and for checking an Edge API key expiry. Those are operational concerns of the maintainers, and their presence indicates store submission is scripted rather than manual.
Editorial conclusion
Adopt it if you want one keyboard-driven chat surface across Chrome, Firefox, Edge, Safari and Android and you are willing to bring your own API key or rely on a logged-in web session. Skip it if you need guaranteed model availability, a documented rollback path for releases, or an audited dependency tree, because the README does not cover any of those. Before installing, read the Install wiki page for your browser, then run a global search for fetch( and XMLHttpRequest( in the source to confirm the network calls yourself, which is what the project asks you to do.
Frequently asked questions
Is ChatGPTBox free to use?
The extension itself is MIT licensed and the README describes it as completely for free. What you pay for is the model: the free path uses the web session for free and Plus users, while API-key modes bill through whichever provider you configure.
Does ChatGPTBox send my page content to a server?
The README states that prompts and page content are not transmitted to the configured AI service unless an AI-powered feature is triggered, and that the extension must be activated manually by default. It also tells you to verify this by searching the code for fetch( and XMLHttpRequest(.
Can I use ChatGPTBox with a local model like Ollama?
Yes. The README points at Ollama and OpenRouter as targets for the Custom Model mode, and at litellm or one-api for converting other LLM APIs into OpenAI format.
Which browsers does ChatGPTBox support?
The README lists Chrome, Edge, Firefox, Safari and Android. Chrome, Edge and Firefox install from their respective stores, while Safari and Android go through the project wiki.
How do I build ChatGPTBox from source?
package.json requires Node 22 or newer and provides npm run build for a production build and npm run dev for development. The README does not document where the build output is written, so check build.mjs.
Community notes