bai-it breaks long English sentences into chunks inside your browser
掰it — Chrome extension for English reading comprehension. Break long sentences into chunks, learn vocabulary in context.
At a glance
- What is it?
- bai-it is a Chrome, Edge and Firefox extension that splits difficult English sentences into readable chunks, marks unknown words against an offline dictionary and keeps learning records in the browser. The GitHub repository is explicitly a frozen snapshot, and the licence is BSL 1.1 rather than open source.
- Who is it for?
- bai-it fits a self-learner reading English articles in the browser who wants sentences broken into digestible pieces, unknown words marked without a lookup service, and a record of vocabulary kept on their own machine.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Activity is slowing. The repository last received commits 6 months ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The repository is a snapshot and says so at the top
The most important thing about this repository is stated in a callout in the readme: the repository is no longer updated, the latest version of the extension is published only on the official site and in the browser stores, and the code here is a historical snapshot that you should not install from.
The readme repeats the point further down, saying the source is published for reference so that people can understand how the extension works, that the build instructions are in package.json if you want to build it yourself, and that only the store version keeps getting updates, so a build from this source is a historical version and not recommended for daily use.
That changes how to evaluate the project. You are not looking at an active open source project that you might contribute to and deploy. You are looking at a snapshot of a version of a commercial-ish extension, published for inspection, with the maintained artefact living in the Chrome Web Store, the Microsoft Edge Add-ons store and Firefox Add-ons.
The activity record matches that description. The repository is not archived, but the last push was on 2026-04-22, and the tagged releases v0.2.5, v0.2.4 and v0.2.3 all date from 2026-03-08, with the release notes covering fixes for pages containing links, sentence splitting improvements, Firefox compatibility and an installation guide.
Chunking sentences and marking words are the two core features
What the extension does is best described by its own summary: a browser extension for Chrome, Edge and Firefox that helps you break long English sentences on web pages into pieces you can read, and marks unfamiliar words along the way.
The core features are listed as five items. Automatic splitting of long sentences turns complex sentences on any English page into readable chunks. Word marking underlines unfamiliar words with a dashed line, and hovering shows the definition, using a built-in offline dictionary, so no lookup service is involved. Manual splitting gives you a button to break up a sentence that the automatic pass left alone. Optional LLM deep analysis enables AI sentence analysis once you supply an API key. And a learning management page tracks the unfamiliar words and your progress.
The offline dictionary is the detail that shapes the whole design. Because the dictionary is built in, the tool can mark a word as unfamiliar without a network request, and because the analysis of the page happens in the extension, the text never has to be sent anywhere to be chunked.
The optional LLM feature is layered on top of that. It is not required for the core loop of reading, breaking and looking up, which means the extension is useful without any API key, and also means the sentences you read stay local unless you deliberately turn the analysis on.
Zero backend, zero login, learning records in IndexedDB
The privacy section is a list of four claims, and they describe the architecture rather than a promise.
There is no backend server, so your data is not uploaded anywhere. There is no login, because there is no account to create. Learning records are stored in the browser's IndexedDB, which is the same database the fake-indexeddb development dependency in package.json stands in for during tests. And the API key is stored locally, with the extension calling the LLM API directly from your browser rather than through any intermediate server.
That last point is the one with consequences. A direct browser-to-API call means no proxy is holding your key, and it also means the key lives in the extension's storage in a browser profile, and that the request is visible in the network tab of your browser. Whether that is acceptable is a decision about your own threat model, and it is the reason the analysis feature is optional and off until you supply a key.
The repository layout is consistent with a client-side only extension. There is no server directory and no API service in the tree. Instead there is src/ for the extension code, data/ for the bundled dictionary, docs/, icons/, tests/, and the extension entry points: manifest.json, options.html for the settings and learning pages, popup.html, and options.css. A build.mjs sits at the root as the bundler entry point, and vitest.config.ts is the test configuration.
The build is esbuild, the tests are vitest, Firefox is packaged separately
If you read the package.json to understand the stack, the picture is small and modern. The package is named bait and is marked private, so it is not published to a registry, and the licence field says BSL-1.1.
The scripts are the whole workflow.
"scripts": {
"dev": "node build.mjs --watch",
"build": "node build.mjs",
"test": "vitest run"
},A watch mode for development, a production build through the same bundler script, and vitest for the test run. The runtime dependencies are just React.
"dependencies": {
"react": "^19.2.4",
"react-dom": "^19.2.4"
}The interesting part is the release script, which runs the tests, runs the build, reads the version out of manifest.json, zips the dist directory into a versioned archive, and then calls a separate script, scripts/package-firefox.mjs, to produce the Firefox package, since the two stores expect different artefacts. The build tooling around that is esbuild with TypeScript and the type packages for Chrome and React, and puppeteer alongside fake-indexeddb for tests, which suggests browser-level tests that run against a real Chromium instance with a stubbed IndexedDB.
All of this is the historical version. The readme's warning applies to anything you build here.
BSL 1.1 is the boundary for anyone who wants to build on it
The licence is the part that decides whether this repository is useful to you beyond reading it.
The project describes it as BSL 1.1, and the readme spells out what that means in one line: the code is publicly visible, but you are not allowed to copy, modify or distribute the software or its derivatives as a product or a service.
That is not open source in the sense most people mean it. There is no copyleft obligation and no permission grant for redistribution, and the repository listing itself records the licence as a custom one that GitHub cannot classify. If your plan was to fork the extension, put it on your own domain, or ship it inside a product, the terms say no. If your plan was to read how it splits sentences and mark vocabulary, the code is right there.
That is a legitimate trade for a project whose maintained artefact is distributed through the browser stores, and it explains why the readme can publish the source for reference and still tell you not to install it.
One point of care: the project listing records the licence as a custom one that GitHub cannot classify, while package.json records BSL-1.1 and the readme links to the BSL 1.1 file. The LICENSE file in the repository is the one to read, since the terms in it are what bind.
Where bai-it is the wrong tool
The scope is narrower than the feature list suggests, and three limits are worth naming.
The first is language. This is a tool for reading English. The sentence splitting and the vocabulary marking are built around English word boundaries, and the built-in dictionary is an English one. For a page in another language it has nothing to offer.
The second is what a chunk actually gives you. Splitting a sentence into blocks and marking the hard words changes the reading experience, but it does not produce a translation or a simplified rewrite of the sentence, and the optional LLM analysis is the only part that reaches for meaning rather than structure. For someone who needs the actual sense of a sentence, a translator or a reading assistant built for that job serves better.
The third is the review surface. An extension that reads every page you open, marks words in the text and stores a vocabulary list is a privileged component, and the honest question is whether you trust the store version with that access given that the code in this repository is a frozen snapshot rather than the code that ships. You cannot diff the two.
So the sensible order is to install the store version, use it for a while, and only then decide whether the code is interesting. The repository is worth reading for the sentence splitting and the dictionary design, and it is not a base you can build a competing product on.
Editorial conclusion
bai-it fits a self-learner reading English articles in the browser who wants sentences broken into digestible pieces, unknown words marked without a lookup service, and a record of vocabulary kept on their own machine. It is the wrong choice if you need the source code as a starting point for your own product, because the BSL 1.1 terms forbid redistributing it or its derivatives as a product or service, and it is the wrong choice if you expect the repository to track the extension, since the last push was on 2026-04-22 and the readme states the repository is no longer updated. Check first that the store version you install matches the features you need, that you are comfortable supplying your own API key for the optional analysis, and that the licence permits whatever you intend to do with the code.
Frequently asked questions
Is the bai-it repository still being updated?
No. The readme states that the repository is no longer updated, that the latest version is published only on the official site and the browser stores, and that the code here is a historical snapshot. The last push was on 2026-04-22.
Does bai-it need an account or send my data to a server?
No account and no backend server. Learning records are stored in the browser's IndexedDB, and the optional LLM analysis calls the API directly from your browser with a key you supply and store locally.
Can I use bai-it commercially or build my own version from the source?
Not according to the licence terms described in the readme. It is BSL 1.1, which makes the code publicly visible but forbids copying, modifying or distributing it, or its derivatives, as a product or a service.
Where do I install bai-it from?
From the browser stores: the Chrome Web Store, Microsoft Edge Add-ons and Firefox Add-ons are all linked in the readme. The readme explicitly advises against installing a version built from this repository.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/capeaga-bai-it)Was this useful?