ColibotAI - Translate, summarize & explain any text on-device

Most AI extensions lock you to one cloud model and send your text to their servers. ColibotAI is different. Select any text and translate, summarize or explain it - and YOU pick the engine: on-device with Chrome's built-in AI (free; nothing leaves your computer), your own key (Claude, GPT, Gemini, OpenRouter), or your own local model (Ollama, LM Studio). No account, no analytics, no tracking, no backend. Results save as searchable local notes. Free, Made in Switzerland.

Add a comment

Replies

Best
Hi Product Hunt 👋 I'm Edoardo, from WebWakeUp. ColibotAI started as a simple "highlight‑and‑translate" extension. People liked it — but under the hood it had grown into something I wasn't comfortable shipping anymore. So for 0.8 we didn't patch it. We rewrote it from scratch. Here's the honest why. What was wrong with the old build 🔑 The API key was stored in chrome.storage.sync — i.e. synced to your Google account. There were "encryption" modules too, but they were dead code (and broken in a service worker). 🐛 A regex "sanitizer" was being run over the AI prompts themselves, quietly corrupting them. 🐦 A little hummingbird icon followed your cursor via a mousemove listener on every page. 📦 ~15 content scripts + 3 stylesheets were injected into every HTTPS page, even when the extension was off — and toggling it reloaded all your tabs. 🧱 No types, no bundler, no tests, a hardcoded model and a 500‑token cap. It worked, but it was fragile, leaky, and slow to evolve. What we did instead We rebuilt ColibotAI on a modern stack and a privacy‑first architecture: WXT + TypeScript + Vite (Manifest V3). WXT gives file‑based entrypoints, a generated MV3 manifest, typed messaging/storage, and — crucially — the in‑page UI now lives in an isolated Shadow DOM (createShadowRootUi) that can't clash with the page's CSS. UI is injected on demand (activeTab), not on every page. A hybrid AI engine. On‑device first (Chrome's built‑in Gemini Nano — free & private), with automatic fallback to your own key across OpenAI, Anthropic, Google and OpenRouter — plus a new Custom / Local option that points ColibotAI at any OpenAI‑compatible server (Ollama, LM Studio, llama.cpp, or your own gateway), so you can run open models fully local and free. There's no backend — your text goes straight from your browser to the provider you chose, to your own machine, or nowhere at all on‑device. Security & privacy as defaults. The key lives in chrome.storage.local only (never synced), with an optional session‑only mode; a one‑time migration moves any legacy synced key to local and deletes it from sync. AI output is rendered with marked + DOMPurify (no more regex‑sanitizer XSS surface). Minimal permissions; provider hosts are optional and requested only when you add a key. The little things that add up: typed end‑to‑end messages, EN/IT localization, light/dark, ESLint + Prettier + Vitest, a notes side panel with search and JSON export/import, API‑key validation on save (a zero‑token check so you know immediately if a key works), a debug mode, and a smart cache that reuses a saved answer for near‑identical selections so you don't spend tokens twice. Same idea, a much better tool. It's free, GDPR‑compliant, and Made in Switzerland. Would love your feedback — especially on the on‑device vs. bring‑your‑own‑key balance. 🙏

the privacy-first rebuild is solid, but tbh the on-device gemini nano quality ceiling is real - idioms and technical language tend to fall apart. feels like the byok path will be where most serious users end up, which makes the 'nothing leaves your computer' headline a bit misleading for typical use. worth being upfront about that

 Fair point, Gal — and thank you for saying it plainly.

On-device (Gemini Nano) has a real quality ceiling. Idioms, nuance, and dense technical text are exactly where it struggles. We use it for speed, zero cost, and true local privacy — not as a replacement for a frontier model.

That's why ColibotAI is hybrid by design, not “on-device only”:

  • Auto (default): tries on-device first, falls back to your configured provider when language/quality isn't enough.

  • BYOK or local LLM: Claude/GPT/Gemini/OpenRouter, or Ollama / LM Studio on your machine — still no ColibotAI backend; the request goes straight from your browser to the endpoint you chose.

You're right that “nothing leaves your computer” applies to on-device mode, not to every path. With BYOK, text goes to your provider; we never see it, store it, or proxy it — but it isn't “never leaves the device.” We should keep making that distinction clearer in the listing, and your comment helps.

If you've tried a specific language pair or doc type where Nano fell apart, I'd genuinely love the example — it informs where we nudge people toward BYOK/local earlier.

I really appreciate the transparency in this post. It takes a lot to step back, acknowledge what wasn't working, and rebuild something properly instead of continuing to patch it.

What stands out most is the privacy-first approach. Giving users the option to run things locally or bring their own key while keeping control of their data is a huge plus.

I also like that you focused on performance and simplicity behind the scenes. Those improvements may not always be visible to users immediately, but they make a big difference in the overall experience.

 Thank you so much, Gabriella — this means a lot.

The rebuild was exactly that: step back, fix the foundations (privacy, performance, no backend), then ship something we'd actually use every day. Hearing that the local-first + your-key choice resonates is the best validation.

If anything feels rough around the edges as you use it, please call it out — that's how the next improvements get prioritized. 🙏

On-device/BYOK is a nice answer to the trust issue with browser text tools. Translate/summarize/explain selected text is crowded, but privacy + notes could differentiate. Are you planning per-site rules or quick actions for repeated workflows?

 Thanks Sarvesh — really appreciate the thoughtful take.

You're right that the category is crowded; we're betting on privacy + local notes as the wedge, not “yet another translate button.”

Per-site rules: not shipped yet — it's on our radar. The idea would be things like “on GitHub always summarize in English” or “disable the toolbar on this domain.” We'd love to hear what rules would actually save you time.

Quick actions today: keyboard shortcuts (Quick Translate, summarize/translate page, side panel), right‑click on selection or the page, and the in-page toolbar. We also reuse similar past results from your local notes so repeated selections don't burn tokens again.

Coming next on the roadmap: custom user actions (your own prompts/workflows). If you have a repeatable pattern in mind, I'd love a concrete example — it helps us prioritize.

Store update: v0.9 was rejected over an unused permission — fixed & resubmitted, waiting on Google. The listing is still the old build for now. v0.9 adds streaming, follow-ups, whole-page summarize/translate, and a better notes panel. Full details on our site — we'll announce here when the store update goes live.