Catto is a browser extension that reads the current page, summarizes it, and lets you chat with an in-page cat companion to ask questions, get summaries, and request page changes — all in natural language.
- Smart content extraction — pulls clean article text from the current page using Readability
- Structural page mapping — builds an outline of headings, links, buttons, and form fields so the assistant understands page layout, not just text
- Floating cat widget — a lightweight, in-page chat UI that stays out of your way until you need it
- Natural-language page edits — describe what you want changed, and Catto plans and applies the action
- Powered by Groq — fast LLM responses for chat and action planning
- Clone or download this repository.
- Open
chrome://extensions(oredge://extensionsin Edge). - Enable Developer mode (top-right toggle).
- Click Load unpacked and select the extension folder.
- Pin the Catto icon to your toolbar for quick access.
Catto needs a Groq API key to power its chat and reasoning features. The key is stored locally in your browser and never leaves your machine except to call the Groq API directly.
- Open the extension's service worker console:
- Go to
chrome://extensions - Find Catto → click service worker (under "Inspect views")
- Go to
- Run the following in the console:
chrome.storage.sync.set({ groqApiKey: "YOUR_GROQ_API_KEY" });
- Reload the extension and open any web page — the cat widget should appear.
chrome.storage.sync.set({ groqApiKey: "NEW_GROQ_API_KEY" });💡 Tip: You can verify the stored key at any time with:
chrome.storage.sync.get("groqApiKey", console.log);
- Navigate to any web page.
- Click the floating cat widget in the corner of the page.
- Ask Catto to:
- Summarize the page or article
- Explain a specific section
- Find a link, button, or form field
- Make a change — e.g. "hide the sidebar" or "make the font bigger"
- Catto reads the page structure, plans an action (if needed), and applies it directly.
| File | Description |
|---|---|
manifest.json |
Extension manifest (permissions, entry points) |
background.js |
Service worker — handles Groq API integration |
content.js |
Extracts page content/structure and applies actions |
cat-buddy.js |
Floating cat widget and in-page chat UI |
Readability.js |
Mozilla's article extraction library |
- Your Groq API key is stored in
chrome.storage.syncand stays local to your browser (synced across your own signed-in Chrome profile only). - Never commit your API key to source control. Consider adding a
.envor local config exclusion if you fork this project. - Page content is sent to the Groq API only when you actively chat with Catto — nothing is sent in the background.
| Issue | Fix |
|---|---|
| Cat widget doesn't appear | Reload the extension and refresh the page |
| "No API key" error | Re-run the chrome.storage.sync.set command above |
| Page edits not applying | Check the console for errors in content.js; some sites with strict CSP may block DOM changes |
Issues and pull requests are welcome! If you'd like to add support for other LLM providers or browsers, feel free to open a discussion first.
Add your license here (e.g., MIT).