English | 简体中文
In the age of squeezing more out of every tool, sometimes your tools deserve a whip too.
OpenBad is not a serious dashboard. It is a tiny desktop whip. Summon it, let it follow your cursor, crack it where you want, and it throws your preset line straight into an input box for you.
- Embedded demo page:
aqiangai.github.io - Bilibili:
BV1ZwDiBsELY - Embed URL:
//player.bilibili.com/player.html?isOutside=true&aid=116364605981245&bvid=BV1ZwDiBsELY&cid=37321510176&p=1 - GitHub repository READMEs sanitize
iframeembeds, so the cover image now links to your standalone demo site.
- Summon a whip that follows your cursor.
- Crack once to send your preset line.
- Mark your usual input areas and whip exactly where you want the text to land.
- Or just whip the input box you were using a second ago.
- Set your own shortcuts for summon, send, and exit.
- Keep it in the menu bar when you are not using it.
- Vue 3
- JavaScript
- Vite
- Rust
- Tauri v2
npm install
npm run tauri:devUseful commands:
npm run build
npm run icons
npm run tauri:build- Launch the app and grant macOS Accessibility permission when prompted.
- Put the cursor on the tool you want to bully, then summon the whip with your shortcut.
- Crack it once to fire your preset line back into the previous input, or switch to target zones and whip a specific area.
- Press the hide shortcut or
Escto leave whip mode.
src/App.vue: settings page, shortcut editing, copy, and target-box setup.src/whipOverlay.js: how the whip moves, cracks, and flashes on hit.src-tauri/src/lib.rs: tray, shortcuts, outside clicks, typing, and app-side logic.scripts/generate-icons.sh: icon generation script.
Source assets:
src/assets/openbad-mark.svgsrc-tauri/icons/logo-source.svgsrc-tauri/icons/tray-template-source.svg
Regenerate all packaged icons with:
npm run icons- This repository is the open-source home for the OpenBad whip.
- Demo assets live under
docs/media/.
This project is released under the MIT License.
- English legal text: LICENSE
- Chinese reference translation: LICENSE.zh-CN.md