Every keystroke, sharpened.
The story of BumbleTap in releases — what shipped, what got sharper, and what's landing next. It's built in the open by one person, and it never stops moving.
Now on v2.2.7What's landing next
In progress- ImprovedLibraries resolved the moment a Blueprint is added rather than on the first keypress, so a missing dependency tells you at install time instead of the first time you press the key.
v2.2.7
Triggers that fire when they should, and a smarter recorder
Latest- FixedKey-triggered automations now run every time you press the shortcut. Before, a key-triggered auto-action would run once and then keep reporting "already executed" until you reloaded the page — even though "Play now" still worked. Pressing the key now fires it each time, the way it always should have.
- FixedTwo-key chord shortcuts (press g, then b) now fire even when a single key is bound to the same first key. The shorter binding waits to see whether you're starting a chord instead of stealing the first keypress, so g → b is reachable again.
- New"Element visible" and "JS condition" automations can now re-fire every time the condition happens again — a modal that reopens, a value that comes back — instead of only ever firing once per page. Choose "Every time" as the run mode to switch it on.
- ImprovedRecording an automation with Smart waits now inserts wait-for-the-element steps instead of fixed time delays, so a recorded flow adapts to how fast each page actually loads rather than guessing a duration.
- ImprovedWhile you're recording, the Save button becomes "Stop & Save": one click stops the recorder, finalizes the captured steps, and saves — instead of leaving the recorder running on the page after you save.
- FixedHolding a shortcut key no longer machine-guns the action or breaks a chord mid-sequence — key auto-repeat is ignored, so each press counts once.
- ImprovedBindings and steps created from the right-click menu now use the same resilient element matching as the visual picker — a whole portfolio of ways to re-find the element, not one brittle CSS selector. They keep working when the page layout shifts, like a button that collapses from text to an icon at narrower widths.
- FixedWhen the side panel is popped out into its own window, Record and the element picker now act on the page you're browsing instead of doing nothing. The detached panel was targeting its own window; it now correctly reaches the browsing tab.
- ImprovedRecorded automations now capture and re-find elements the way the visual picker does. They snap to the actual button or link you clicked — not the stray bit of text or icon inside it — and re-find it with the same resilient matching engine, and retry, that key bindings use. So an automation recorded at one screen width keeps working when the layout shifts — like a button that collapses to an icon when the window narrows or the side panel is docked. (Re-record any earlier automation that only worked at one size.)
v2.2.6
Blueprints, and code that brings its own libraries
- NewBlueprints: add a whole set of shortcuts from bumbletap.com in one click. The page hands the bundle to the extension, you approve it in BumbleTap's own popup, and the site is registered for you. Nothing installs silently and everything stays editable afterwards.
- NewCustom code can now declare its own dependencies with a Tampermonkey-style // @require <url> line. The library is fetched and cached the first time the code runs, so a shortcut you imported from the web works immediately instead of failing until you open it in the editor and save.
- NewNew http() helper for custom code — fetch from other domains without the page's CORS rules getting in the way. Requests are sent without cookies by default and are size-capped before anything is buffered.
- ImprovedRequired libraries are content-addressed and cached by hash, so the same library shared by several shortcuts is only ever downloaded and stored once. A URL can be pinned with #sha256=… and is rejected if the contents don't match.
v2.2.5
Reliable context-menu bindings & bigger site limit
- FixedCreating a binding from the right-click menu now reliably adds the site for you if it wasn't already — no more "saved" toast while the binding is nowhere to be found. It registers the site first and tells you the real result.
- ImprovedRaised the per-browser site limit from 50 to 500.
- ImprovedSaving a binding from the right-click menu is now instant no matter how many sites you have — it writes just that site's data instead of rewriting all of them.
v2.2.4
Context-menu binding fixes
- FixedThe right-click "Create a binding" recorder now captures your keystroke exclusively — no site shortcut or existing binding fires while you're recording a new one.
- FixedRecording a binding no longer disturbs the page's layout. A style reset was leaking out of the recorder onto the host site and collapsing its spacing.
- FixedApplied the same style-isolation fix to the macro recorder and auto-action editor, so opening either never touches the page underneath.
- ImprovedThe "Create a binding" right-click menu is recreated reliably on startup, so it can't go missing after the background worker restarts.
v2.2.3
Side panel, surface modes & a smarter resolver
- NewSide panel as a full SPA, with a detachable pop-out editor you can float anywhere.
- NewFour binding surface modes — follow window, pin to tab, pin to host, and follow focused — plus action-lock to stay safe mid-flight.
- NewA resilient element resolver: multi-representation voting and shadow-DOM piercing so bindings keep landing on the right element across redesigns.
- NewA "Before page loads" auto-action trigger — run your custom JS in a page before its own scripts, for patching globals, hooking fetch, or injecting early CSS.
- ImprovedStorage rebuilt on per-site keys (schema v6), with unlimited storage — no more 5 MB cap.
- FixedShortcuts and auto-actions now keep working after you use the browser's Back button (they were being torn down by the back/forward cache).
v2.1.0
Shareable actions & sharper targeting
- NewParameter form — turn an auto-action into a shareable, parameterized template others can fill in.
- New3-mode site filter — run a binding everywhere, exclude some sites, or only on specific ones.
- ImprovedHostname normalization (so example.com and www.example.com are one site) and clearer toast notifications.
- ImprovedShadow DOM input detection — text steps now reach fields inside web components.
v2.0.0
Power tools — recorder, palette & a code editor
- NewMacro recorder — record your clicks, typing, scrolling and navigation on any page, then replay them as auto-action steps.
- NewCommand palette — one fuzzy search to find and run any shortcut or action.
- NewRight-click context menu to add a binding to an element without opening the full editor.
- NewA built-in CodeMirror 6 editor for custom JavaScript, with a variable system shared across steps via a ctx bridge.
- ImprovedRebuilt on fast per-site storage.
v1.5.0
Auto-actions — workflows that run themselves
- NewAuto-actions: multi-step workflows a page runs on its own, built in a visual timeline with drag-and-drop steps.
- NewTriggers — on page load, after a delay, when an element appears, on URL change, or a custom JS condition.
- NewA deep step palette — click, double-click, right-click, long-press, hover, drag-and-drop, text input, set value / checkbox / dropdown, scroll, wait, and navigate.
- NewConditional logic (if/else), loops (repeat N times or for each match), and extract steps that pull data off the page into {{variables}}.
- NewTab actions (open / switch / close), fetch & HTTP steps, clipboard copy, and call-another-action sub-routines.
- NewURL filtering with wildcards and regex, per-action enable/disable, and a "run now" test button.
v1.0.0
The foundation — bind any key to anything
- NewBind any key or key-combo to a click on any element, chosen with a visual element picker.
- NewBuilt-in events — scrolling in any direction (and to top/bottom), media controls, and page navigation & refresh — bindable with zero setup.
- NewText-input bindings that type canned text into any field, and custom-code bindings that run your own JavaScript on a keypress.
- NewChord sequences (like g then g), modifier keys (Ctrl / Alt / Shift / ⌘), and repeat-on-hold.
- NewPer-site and global bindings with URL-pattern matching, plus conflict detection so you never clobber a browser shortcut.
- NewImport and export your entire setup.