Skip to content
anouk GitHub

About

Built for the weekend extension that ends up shipping.

A lot of AI side-projects start as a browser extension. A few of them ship. Most of them get stuck in the part nobody enjoys: wiring the model call, caching responses, handling rate limits, and giving the user a place to put their API key.

Why a framework just for extension AI

Frameworks like Plasmo and WXT are excellent at the extension layer: bundling, manifests, hot reload, multi-browser builds. They are not opinionated about how you talk to a model, because they do not need to be.

Anouk fills the other half. It assumes you have an extension (built however you like) and you want to add an AI feature. It gives you a configured request layer, a cache, a queue, and a settings panel that the user can open to swap providers or rotate a key.

The thesis: AI features belong in the extension

You can build an AI feature in a browser extension two ways. You can ship a thin client that calls your backend, which calls the model. Or you can let the extension call the model directly, with the user's own key, from the browser.

The second option is shorter, cheaper, and friendlier to privacy: the user's content never leaves the user's machine on the way to the provider they chose. Anouk is built for that pattern. The AIService is designed to run inside a content script or background worker, talking straight to the provider over fetch.

There is a long tradeoff conversation to have about server-side versus client-side AI calls, but for the indie-dev sweet spot — small extensions, single-user usage, BYO API key — calling from the extension is the right answer.

What is already done for you

What is intentionally not in scope

Anouk is not a build tool. It does not bundle, hot-reload, or generate a manifest from convention. It does not target Firefox or Safari today — the README and templates target Chrome / Chromium-style Manifest V3 explicitly. It does not ship a hosted backend; the whole point is that the extension is the backend.

If you need cross-browser builds, pick Plasmo or WXT and import Anouk's AIService from inside that. If you need a hosted control plane, you are building a different product.

Who is building it

Anouk is a project of Skelf-Research, MIT licensed and developed in the open on GitHub. It started as the AI plumbing for our own browser extensions and was extracted because rewriting it every time was the worst part of every new project.

How to engage

If you are about to build an AI-powered browser extension, npm install -g anouk and run anouk init. If you already have an extension and just want the runtime, npm install anouk and import { AIService }. If something is missing or rough, open an issue on the GitHub repo. PRs welcome.