A Chrome side-panel extension: describe a browser task in plain language and Jevvy does it in your current tab.
typesafe-ai/jev) makes the fast per-step decisions: which element to click, whether the goal is met, whether it's stuck, whether an action is risky, and how to classify each item in a list.Jevvy is not on the Chrome Web Store yet. Install it manually with the steps below (about 2 minutes).
Works on Chrome 116+ and other Chromium browsers (Edge, Brave, Arc, Opera, Vivaldi).
jevvy.zip in the repo's file list and click the download icon.)~/Extensions/jevvy). Don't move or delete the folder afterwards; Chrome loads the extension from it.chrome://extensions (Edge: edge://extensions, Brave: brave://extensions).manifest.json).You need Node.js 20 or newer.
git clone https://github.com/Atominac/jevvy.git
cd jevvy
npm install
npm run build
Then follow steps 3-6 above, selecting the dist/ folder.
On first launch the panel opens Settings:
typesafe-ai/jev via https://ai-gateway.vercel.sh/typesafe; needs paid credits).Keys are stored only in chrome.storage.local in your browser. Use keys with spend limits.
Download the new jevvy.zip and replace the folder's contents (or, if built from source, git pull && npm install && npm run build). Then click the reload icon on the Jevvy card in chrome://extensions and reopen the side panel.
| Problem | Fix |
|---|---|
| "Manifest file is missing or unreadable" | You picked the wrong folder. Select the folder that directly contains manifest.json (dist/ if built from source). |
| Clicking the icon does nothing | Chrome is older than 116. Update it. |
| "Connection lost" in the panel | The extension was reloaded. Close and reopen the panel. |
| "Can't control this page" | Use a normal http(s) tab, not chrome:// or the Web Store. |
| Old UI after an update | Reload the extension on chrome://extensions, then reopen the panel. |
| "Disable developer mode extensions" prompt | Chrome shows this for unpacked extensions. Keep them enabled. |
| Kind | Example | How it works |
|---|---|---|
| act | "Find the cheapest one-way SFO→JFK flight next Friday" | snapshot → Jev picks from a menu of real page elements → execute → verify, looped |
| extract | "Scrape name and price of every product" | finds the repeated list, scrolls to load more, planner maps rows to your fields → table + CSV |
| classify | "Sort my inbox into urgent / newsletter / receipt" | finds the list, Jev classifies each item (8 in parallel) → table + CSV |
| ask | missing dates, names | asks you in the panel |
chrome.storage.local).npm run watch # rebuild on change (reload the extension after)
npm run typecheck
npm run package # builds and writes jevvy.zip from dist/
Layout: src/content.ts page snapshot/actions/list detection · src/agent.ts the loop · src/jev.ts Jev calls · src/planner.ts LLM planner · src/background.ts service worker · src/sidepanel.tsx + src/components/ UI (React, Tailwind v4, shadcn/ui; add components with npx shadcn@latest add <name>).
To add a provider, add an entry to PROVIDERS in src/shared.ts and a matching method in src/planner.ts.
Known limits: main frame only (no iframes or shadow DOM), viewport-only element menus, one tab at a time.
Issues and pull requests are welcome.
2 commits
TypeScript
96.7%
CSS
2.1%
A Chrome side-panel extension: describe a browser task in plain language and Jevvy does it in your current tab.
typesafe-ai/jev) makes the fast per-step decisions: which element to click, whether the goal is met, whether it's stuck, whether an action is risky, and how to classify each item in a list.Jevvy is not on the Chrome Web Store yet. Install it manually with the steps below (about 2 minutes).
Works on Chrome 116+ and other Chromium browsers (Edge, Brave, Arc, Opera, Vivaldi).
jevvy.zip in the repo's file list and click the download icon.)~/Extensions/jevvy). Don't move or delete the folder afterwards; Chrome loads the extension from it.chrome://extensions (Edge: edge://extensions, Brave: brave://extensions).manifest.json).You need Node.js 20 or newer.
git clone https://github.com/Atominac/jevvy.git
cd jevvy
npm install
npm run build
Then follow steps 3-6 above, selecting the dist/ folder.
On first launch the panel opens Settings:
typesafe-ai/jev via https://ai-gateway.vercel.sh/typesafe; needs paid credits).Keys are stored only in chrome.storage.local in your browser. Use keys with spend limits.
Download the new jevvy.zip and replace the folder's contents (or, if built from source, git pull && npm install && npm run build). Then click the reload icon on the Jevvy card in chrome://extensions and reopen the side panel.
| Problem | Fix |
|---|---|
| "Manifest file is missing or unreadable" | You picked the wrong folder. Select the folder that directly contains manifest.json (dist/ if built from source). |
| Clicking the icon does nothing | Chrome is older than 116. Update it. |
| "Connection lost" in the panel | The extension was reloaded. Close and reopen the panel. |
| "Can't control this page" | Use a normal http(s) tab, not chrome:// or the Web Store. |
| Old UI after an update | Reload the extension on chrome://extensions, then reopen the panel. |
| "Disable developer mode extensions" prompt | Chrome shows this for unpacked extensions. Keep them enabled. |
| Kind | Example | How it works |
|---|---|---|
| act | "Find the cheapest one-way SFO→JFK flight next Friday" | snapshot → Jev picks from a menu of real page elements → execute → verify, looped |
| extract | "Scrape name and price of every product" | finds the repeated list, scrolls to load more, planner maps rows to your fields → table + CSV |
| classify | "Sort my inbox into urgent / newsletter / receipt" | finds the list, Jev classifies each item (8 in parallel) → table + CSV |
| ask | missing dates, names | asks you in the panel |
chrome.storage.local).npm run watch # rebuild on change (reload the extension after)
npm run typecheck
npm run package # builds and writes jevvy.zip from dist/
Layout: src/content.ts page snapshot/actions/list detection · src/agent.ts the loop · src/jev.ts Jev calls · src/planner.ts LLM planner · src/background.ts service worker · src/sidepanel.tsx + src/components/ UI (React, Tailwind v4, shadcn/ui; add components with npx shadcn@latest add <name>).
To add a provider, add an entry to PROVIDERS in src/shared.ts and a matching method in src/planner.ts.
Known limits: main frame only (no iframes or shadow DOM), viewport-only element menus, one tab at a time.
Issues and pull requests are welcome.
2 commits
TypeScript
96.7%
CSS
2.1%