Launch every AI tool from one popup — and see what you're paying for.
Install from the Chrome Web Store · Website · Privacy
You probably have five AI tools open in five tabs. SubLens puts them behind one keyboard shortcut, and — only if you ask it to — shows what each subscription costs and when it renews.
- Launch anything fast. 14 built-in AI tools, searchable by name, alias, category, or tag.
- Add your own. Any HTTPS URL becomes a tool, deep links included, with an icon you pick.
- Keyboard first.
Ctrl/Cmd + Kto search, arrow keys to move, Enter to launch, Escape to clear. - Favorites and recents. The tools you actually use, at the top.
- Optional subscription tracking. Connect ChatGPT, Claude, GitHub Copilot, or Cursor to see plan, price, next billing date, and your monthly total.
- Local only. Everything lives in
chrome.storage.local. No servers, no analytics, no accounts.
Chrome Web Store — one click, no account required.
Install from a release build
- Download the latest
sublens-vX.X.X.zipfrom Releases - Unzip it
- Open
chrome://extensions→ enable Developer mode - Load unpacked → select the unzipped
dist/folder
Build from source
git clone https://github.com/heartleo/sublens.git
cd sublens
npm ci
npm run buildThen load dist/ through chrome://extensions with Developer mode enabled.
| Launcher | Subscriptions |
|---|---|
![]() |
![]() |
| Search | Custom tools |
|---|---|
![]() |
![]() |
ChatGPT, Claude, Gemini, DeepSeek, Grok, Midjourney, Runway, Kling AI, Cursor, GitHub Copilot, Codex, Hugging Face, OpenRouter, and NotebookLM.
Anything missing is one Settings → Tools → Add tool away.
| Provider | Plan & price | Billing date |
|---|---|---|
| ✓ | ✓ | |
| ✓ | ✓ | |
| ✓ | ✓ | |
| ✓ | ✓ |
Each connection is separate and optional. SubLens requests access to a provider's site only when you click Connect, uses the session you're already signed into, and never reads or stores cookie values. Disconnecting revokes the host permission.
SubLens has no backend. Favorites, recents, custom tools, preferences, and subscription snapshots are
stored with chrome.storage.local on your machine, and requests go straight from your browser to the
provider you connected. Removing the extension deletes everything.
Full policy: heartleo.github.io/sublens/privacy.html
npm ci # install the locked dependency set (CI uses Node 20)
npm run dev # Vite dev server
npm run build # type-check + production build into dist/
npm run typecheck # strict TypeScript, no emit
npm run lint # ESLint
npm test # Vitest
npm run format # PrettierArchitecture, conventions, and the provider checklist live in AGENTS.md; domain vocabulary lives in CONTEXT.md.
- Copy
src/providers/_template.tstosrc/providers/<provider-id>.tsand implementfetch() - Return failures through
SubscriptionInfo.error— never throw - Register it in
src/providers/index.ts - Add the origin to
optional_host_permissionsinmanifest.json - Add an SVG logo to
public/logos/and update the privacy documentation - Run
npm run lint,npm run typecheck,npm test, andnpm run build
- Create
src/i18n/locales/<code>.tsusingen.tsas the template and register it insrc/i18n/index.ts - Add a matching dictionary for
<code>insrc/options/messages.ts— the options page has its own, separate translation dictionary — and register it ingetOptionsMessages() - Add the language to the
<select>options insrc/options/App.tsx
Issues and pull requests are welcome. Keep commits scoped, use Conventional Commit subjects
(feat:, fix:, docs:), and include before/after screenshots for UI changes.
MIT. Product names and logos are trademarks of their respective owners; icon attribution is in public/logos/THIRD_PARTY_NOTICES.md.




