Tweaks
Restyle, hide, rewrite or rearrange anything on a page, and keep it that way.
Hide the comments and make the article text bigger
Give this dashboard a dark theme
flex.hide('#comments');
flex.css('article { font-size: 1.15rem !important; }');
Chrome extension · Open source
Ask in plain English, or point at something on the page. Flexbot writes a small script that does it: automations, macros, exports, price watches and tweaks. It's real JavaScript you can read, and it runs every visit, on demand or on a schedule.
No card needed 100 AI credits to start Or free with your own Anthropic key
A pretend online shop in a mock browser window, with a miniature of Flexbot. Choose a suggested request or type your own: Flexbot's panel shows the request, a review card with the script it wrote, and the result on the page. Nothing is kept until you choose Save. Use the refresh button to check that saved flexes come back after a reload. Changes to the pretend page are announced.
Saved in this browser (0)
Nothing saved yet. Flexes you save show up here, like the “On this page” list in Flexbot's toolbar popup.
This demo is scripted: no AI runs on this page and nothing you type leaves your browser. It matches your words to a handful of built-in examples. The real extension writes a new script for whatever you ask, on real sites. Demo flexes and credits are kept in this browser's local storage, so they survive reloading this tab too.
What you can make
Every flex is one small userscript, saved in your browser. Ask in your own words; there's no syntax to learn. A few examples of each kind:
Restyle, hide, rewrite or rearrange anything on a page, and keep it that way.
Hide the comments and make the article text bigger
Give this dashboard a dark theme
flex.hide('#comments');
flex.css('article { font-size: 1.15rem !important; }');
Click through the same steps you repeat every day, in one go.
Expand every “Show replies” in this thread
Fill this form with my shipping details
await flex.clickUntilGone('button.show-replies', { max: 50 });
flex.toast('All replies expanded');
Pull tables and lists out as CSV or JSON, or have the AI summarize them while the script runs.
Export my order history to CSV
Summarize this thread in five bulletsuses AI each run
const rows = flex.table('table.orders');
flex.download(rows, { filename: 'orders.csv', format: 'csv' });
Check a page on a schedule and get a notification when something changes.
Tell me when this drops below $50
Check this page every hour and tell me when a new listing appears
const el = await flex.waitFor('.price');
const price = parseFloat(flex.textOf(el).replace(/[^\d.]/g, ''));
if (price < 50) flex.notify('Price drop', `Now $${price}`);
How it works
You never have to write code. But it's always there to read, and nothing is kept until you've seen it and said yes.
Press AltShiftF on any page and say what you want. Can't name the thing? Click Point and choose it on the page.
The AI reads an outline of the page and writes a short JavaScript userscript. You get a plain-English summary: what it does, where it runs, when, and what it's allowed to do. A low-risk draft may run once as a preview, so you see the effect right away.
On every visit, on a schedule, or whenever you run it from the command palette (AltShiftK). Nothing is saved until you click Save.
Real code you own
Flexbot is a userscript manager with an AI that writes the scripts. No black box, no lock-in: what runs in your browser is code you can read.
.user.js import and export. Take your scripts to another userscript manager, or bring yours in. Imports always arrive switched off until you review them.Privacy & safety
A script that can change pages deserves care. Flexbot checks what each script can do, asks before anything risky, and keeps your scripts on your device.
Scripts run inside Chrome's user-script sandbox with network access blocked by default for their own requests. A script that needs the network must be explicitly approved by you, only for the sites it names.
Every script is checked before you see it. If it uses the network, reads cookies or site storage, touches password or payment fields, builds code from strings, or looks obfuscated, it's flagged with the reason and won't even preview until you say so.
A draft may run once as a preview on the tab you're looking at. Nothing is saved or registered until you click Save, and our server never pushes, updates or replaces a script you saved.
Before your first AI request, Flexbot shows exactly what it sends and asks you to agree. If that ever changes, it asks again.
Being straight with you: a script you approve can still change the page it runs on (that's its job), and a page-level trick like loading an image could still reach the internet. That's why the review card lists what each script can do, and why you should read it before you save.
Flexes (code and metadata), run logs and per-flex data live in chrome.storage.local on your device. Never uploaded or synced.
Scheduled checks run in your own browser, too.
When you ask Flexbot to create or change a flex:
Form field values and password fields are never included. It's sent to our server and our AI provider (Anthropic) to produce the result. Our server keeps only billing metadata (credits, token counts, timestamps), not prompts, page content or code.
flex.ai() sends the prompt and the data the script passes to it. Scripts that use it show “Uses AI” in review.
Nothing goes to Flexbot's servers at all. Requests go from your browser straight to Anthropic with your key, and no Flexbot account is needed.
The key is stored only in the extension's private storage on this device.
Full details in the privacy policy.
Setup
Flexbot runs your scripts through Chrome's official userScripts API. Chrome asks you to turn on Allow User Scripts for Flexbot one time (Extensions → Flexbot → Details). Until it's on, Flexbot can't run anything, and it says so plainly.
Chrome shows that note for every userscript manager. It's expected: the code is yours. Flexbot writes it only when you ask, shows it to you, and saves it only when you click Save. Turn the switch off any time and your scripts pause until you turn it back on.
Requires desktop Chrome 138 or newer. Not available on phones.
Flexbot's welcome tab opens. Sign in with your email and a 6-digit code for 14 free days, or paste an Anthropic API key and skip the account.
The welcome tab opens Flexbot's page in chrome://extensions. Scroll to Allow User Scripts (below “Site access”) and switch it on; Flexbot notices the moment it's on. Pin Flexbot from the puzzle-piece menu so it's one click away.
Flexbot isn't on the Chrome Web Store yet. Until it is, install the developer preview: same extension, same trial.
Download flexbot-extension.zipChrome loads Flexbot from that folder, so keep it somewhere you won't clear out.
Paste this into the address bar (web pages can't link to it), switch on Developer mode, click Load unpacked and choose the folder that contains manifest.json.
chrome://extensions
In the welcome tab that opens, sign in with your email and a 6-digit code for 14 free days (no card), or paste an Anthropic API key and skip the account.
Click Details on Flexbot, scroll to Allow User Scripts (below “Site access”) and switch it on. The welcome tab walks you through it and notices the moment it's on. Pin Flexbot from the puzzle-piece menu. Preview installs don't update themselves; download again for a newer version.
Open source · MIT
The extension, the server and this website live in one public repository under the MIT license. The Chrome Web Store build is made from that repository by a script anyone can run. No hidden code.
Paste your own Anthropic API key and Flexbot talks straight to Anthropic. No account, no credits, nothing through us.
Self-host the API with Docker, your own Anthropic API key and billing turned off, then point Flexbot's Custom server URL setting at it.
docker compose up
The helper library every script uses, the review checks and the prompt the AI follows are all in the repo.
Pricing
Every plan has every feature. Credits are spent only when the AI writes or changes a flex, or when a script asks the AI something while it runs. Running your saved flexes costs nothing.
Free14 days
100 credits
No card needed. Try everything.
Add to Chrome$5/ month
100 credits / month
A few new flexes and tweaks each month.
≈ 100 Standard or 20 Smart requests
$19/ month
400 credits / month
Automating something most days, or scripts that use AI as they run.
≈ 400 Standard or 80 Smart requests
$99/ month
2,000 credits / month
Heavy building, lots of Smart requests, busy AI scripts.
≈ 2,000 Standard or 400 Smart requests
Freeforever
Unlimited, no credits
Paste an Anthropic API key and pay Anthropic directly. No account. Requests go straight from your browser to Anthropic.
Paid plans are chosen inside Flexbot once you've installed it (Plans & billing). Prices in US dollars; payments by Stripe.
One credit is one Standard AI request: asking for a new flex, or a change to one. After that, the flex runs as often as you like for free. Drag to estimate a month:
Starter ($5/month) covers it.
30 × 1 + 4 × 5 + 0 × 1
Rough guide only. Every scheduled or on-load run of a script without AI is free and isn't counted here.
A credit is one Standard AI request. Asking Flexbot for a new flex, or asking it to change one, uses 1 credit. A script that calls the AI while it runs (flex.ai(), for things like “summarize this thread”) uses 1 credit per call, for up to about 30,000 characters of input.
Failed requests are never billed. If a brand-new script throws an error on its first run, one automatic “Fix it” retry is free.
Smart sends your request to a stronger AI model. It's slower and uses 5 credits instead of 1 credit, and it's worth it for multi-step automations, fiddly sites or a script that didn't come out right the first time. Most tweaks and exports are fine on Standard.
Running your saved flexes, as often as you like: on page load, on demand or on a schedule, as long as they don't call the AI while they run. Editing code by hand, switching flexes on and off, deleting, exporting and importing are free too.
When your trial ends without a plan, your saved flexes keep running. Only the AI features stop, and scripts that use flex.ai() get a polite error instead of an answer.
Flexbot runs your scripts with Chrome's official userScripts API, the same one userscript managers use. Since Chrome 138, each extension that uses it needs your one-time permission: go to chrome://extensions, click Details on Flexbot, and switch on Allow User Scripts. Flexbot's setup screen takes you there.
Chrome then warns that the extension “will be able to run code which has not been reviewed by Google”. That's true of any userscript: the code is yours, written when you asked and saved only when you said so.
Desktop Google Chrome 138 or newer, on Windows, macOS, Linux or ChromeOS. Chrome on phones doesn't support extensions. Other Chromium browsers may work if they support the userScripts API, but we only test Chrome.
Here's how Flexbot keeps you in control, honestly stated:
What it can't promise: a script you approve can still change the page it runs on, and a page-level trick like inserting an image can still reach the internet. Read the review card, and don't approve code you don't understand on sensitive sites like your bank.
Only when you ask Flexbot to create or change a flex: your prompt, the page URL without its query string or fragment, the page title, a compact text outline of the page, the HTML of the element you pointed at (with query strings and tokens redacted), the names and descriptions of flexes already on that page, and, when you're changing a flex, its code. Form field values and password fields are never included.
It goes to our server and our AI provider, Anthropic, to produce the result. Our server keeps only billing metadata (credits, token counts, timestamps), not prompts, page content or code. With your own key, it goes straight to Anthropic and never touches our server. Details in the privacy policy.
No. Flexes live in chrome.storage.local on the computer where you made them and are never uploaded or synced. To move them, export from the Library (as a Flexbot bundle or standard .user.js files) and import on the other computer.
On regular web pages, yes: shops, news, docs, dashboards, forums, web apps. Chrome doesn't let any extension run on its own chrome:// pages or the Chrome Web Store, and some apps that draw everything on a canvas (or block scripts very aggressively) are hard to change.
Flexbot also won't write scripts that get around paywalls or log-ins, download copyrighted media, post or send messages without asking you first, or grab time slots the moment they appear.
No. Scheduled flexes run on your computer, in a background tab, while Chrome is open. If Chrome was closed when a check was due, it runs once when Chrome starts again. Schedules can be as often as every 15 minutes, or every 60 minutes for scripts that use the AI.
Open Flexbot's Plans & billing and choose Manage billing to cancel in Stripe's customer portal. Your plan stays active until the end of the period you've paid for, and your saved flexes keep running afterwards.
If something went wrong, like a charge you don't recognize or a plan that didn't work for you, email hello@flex.bot and we'll sort it out. The terms have the details.
Not yet. Each person needs their own account or their own API key. You can share flexes by exporting them and having colleagues import them; imports always arrive switched off until they're reviewed.
In Flexbot's settings, choose My Anthropic key and paste an API key from your Anthropic account. Flexbot checks it, then sends every AI request directly from your browser to Anthropic. No Flexbot account and no credits to buy; only the safety limits on scripts (like the daily AI cap per flex) still apply. The key stays in the extension's private storage on your device.
You pay Anthropic for what you use. At Anthropic's prices in October 2026, a typical Standard request costs roughly 1–3 cents, a Smart request roughly 5–15 cents, and an AI call made by a running script usually under a cent. Check Anthropic's pricing page for current rates.
Yes. The whole project (extension, server and this website) is MIT-licensed on GitHub, and the Chrome Web Store build is made from that repository. You can run the server yourself with Docker and billing turned off, then set Flexbot's Custom server URL to it. Or skip a server entirely with your own key.
Install Flexbot, say what you want, and keep the script. Free for 14 days, no card required.
Add to Chrome — free for 14 daysPlans from $5/month Free forever with your own key Open source