FlexWeb is an AI-powered Chrome extension MVP for customizing websites with natural language prompts. It can generate CSS/JavaScript modifications through an OpenAI-compatible API provider such as OpenRouter, save them locally, and re-apply them on matching pages.
Status: MVP / experimental. Review generated modifications before approving them.
- Manifest V3 Chrome extension
- React + TypeScript UI for popup, side panel, and options page
- OpenAI-compatible BYOK provider settings, defaulting to OpenRouter
- Page context collection from the active tab
- AI prompt-to-modification generation with structured JSON validation
- Persistent local modifications with enable/disable/delete controls
- Edit and regenerate existing modifications from their original prompt
- Optional DevTools-style element picker for targeting one specific page element
- CSS, JavaScript, and hybrid modification runtime
- Built-in starter modification library
- Node.js 20+
- npm
- Chrome or another Chromium-based browser with extension developer mode
npm installnpm run buildThe compiled extension is written to dist/.
dist/ is intentionally ignored by git. Build it locally before loading the extension.
- Run
npm run build. - Open
chrome://extensions. - Enable Developer mode.
- Click Load unpacked.
- Select the
dist/directory.
- Open the FlexWeb extension options page.
- Use base URL:
https://openrouter.ai/api/v1. - Enter your OpenRouter API key.
- Choose an OpenAI-compatible model, for example
openai/gpt-4o-mini. - Save settings.
npm run devFor extension testing, use npm run build and reload the unpacked extension from chrome://extensions after changes.
npm run typecheck- Do not commit
node_modules/,dist/,.envfiles, API keys, browser profiles, or exported local extension storage. - Use
npm ciin CI and clean checkouts. - GitHub Actions runs
npm ciandnpm run buildon pushes and pull requests tomain.
- Generated JavaScript runs after user approval in the page's main world via
chrome.scripting.executeScriptso behavior is closer to code pasted into DevTools Console. - API keys and modifications are stored locally with
chrome.storage.local. - Community modification sharing, account sync, billing, and extension export are intentionally deferred.
- Some browser-restricted pages, such as
chrome://URLs and the Chrome Web Store, cannot be modified by extensions.
See SECURITY.md for vulnerability reporting guidance, API key handling notes, and current MVP security limitations.
FlexWeb is licensed under the MIT License.