A fast scientific calculator that lives in your browser's side panel.
Do quick arithmetic and scientific math right next to the page you're reading — no extra tab, no separate app, no floating window.
Prefer to build it yourself? See Development.
- Side panel, always at hand — opens beside the current page, not in a separate tab or window
- Two modes — switch between a simple everyday calculator and a full scientific calculator
- Scientific functions — trigonometric and inverse functions, logarithms (
log,ln), powers, roots, factorials, percentages, parentheses, and theπandeconstants - Degrees & radians — toggle angle units with a visible degree marker for trigonometry
- Calculation history — reopen and reuse previous expressions with one click
- Copy results — one-click copy of any answer to the clipboard
- Light & dark themes
- Localized UI — English, Spanish, French, German, and Russian
- Privacy-friendly — no tracking, no network requests; the Chrome build needs only the
sidePanelpermission
| Browser | Open calculator |
|---|---|
| Chrome | Ctrl+Shift+L / Cmd+Shift+L |
| Opera | Ctrl+Shift+Y / Cmd+Shift+Y |
Shortcuts can be remapped from the extension's settings and your browser's shortcut manager (chrome://extensions/shortcuts).
- React 18 + TypeScript
- math.js for expression parsing and evaluation
- Tailwind CSS for styling, rendered inside a Shadow DOM via react-shadow
- webpack build, packaging Chrome and Opera (Manifest V3) targets
- Jest for tests, ESLint + Prettier for code quality
pnpm installpnpm build:chrome # build the Chrome extension
pnpm build:opera # build the Opera extension
pnpm build:all # build both targetsWebpack writes the unpacked extension to dist/.
Chrome
- Run
pnpm build:chrome. - Open
chrome://extensions/and enable Developer mode. - Click Load unpacked and select the
dist/folder. - Open the calculator from the toolbar icon or with
Ctrl+Shift+L/Cmd+Shift+L.
Opera
- Run
pnpm build:opera. - Open
opera://extensions/and enable Developer mode. - Click Load unpacked and select the
dist/folder. - Enable the extensions sidebar, then open the calculator with
Ctrl+Shift+Y/Cmd+Shift+Y.
pnpm lint # run ESLint
pnpm test # run the Jest test suitesrc/
├── manifest.json # Chrome (Manifest V3) manifest
├── manifestOpera.json # Opera (Manifest V3) manifest
├── sidebar/ # React side panel calculator UI
├── worker/ # extension service worker
├── utils/ # calculator, formatting, i18n, and browser helpers
├── assets/ # icons and fonts
└── _locales/ # localized extension strings (en, es, fr, de, ru)
store/ # localized store listing descriptions
The UI and store listings ship in English, Spanish, French, German, and Russian.
- Extension strings live in
src/_locales/<locale>/messages.json. - Store descriptions live in
store/<locale>/description.md.
Contributions that add a new locale or improve an existing translation are welcome — add a matching messages.json (and, ideally, a store description) and keep the keys in sync with src/_locales/en/messages.json.
Issues and pull requests are welcome. To propose a change:
- Fork the repository and create a branch for your change.
- Run
pnpm lintandpnpm testbefore opening a PR. - Keep commits focused and describe the user-facing impact.
Released under the MIT License.