Vibecode BetterTouchTool

track this build5 phases, 15 steps, beginner friendly
YES · one-shottable
price variesbuild time one sittingcategory ⚙️ productivity utilitiesreplaced by 0 people

The core loop is small enough for a capable coding agent to produce a useful local version in one sitting. For BetterTouchTool, map trackpad, mouse, keyboard, and window gestures to explicit local actions. The hard boundary is huge input-device coverage, scripting depth, community presets, and os maintenance, plus os integration polish and maintenance.

the project pack5 files · written for this build, step by step
README.md
# BetterTouchTool · indie build

A background agent that watches trackpad gestures, mouse buttons and keyboard shortcuts, matches them against rules scoped to the frontmost application, and runs an action: a keystroke, a shell command, a window arrangement or a sequence of them, with a conflict checker so two rules never fight over the same input.

Estimated effort: **weekend**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Language | Swift 6 and SwiftUI in Xcode | input events, the Accessibility API and window management are all AppKit |
| App type | A background agent with LSUIElement true | it listens; it does not need a window most of the time |
| Input capture | A CGEvent tap for keyboard and mouse, NSEvent monitors for gestures | an event tap can consume an event, which a monitor cannot, and consuming is what makes a remap work |
| Window control | The Accessibility API against other applications | the only sanctioned way to move a window your process does not own |
| Storage | JSON in Application Support, versioned | rules are documents people will want to share, diff and back up |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **A Mac running macOS 14 or newer with a trackpad** · free if you already own one
  - Why: Gesture recognition cannot be developed against a mouse, and the whole build is macOS input handling.
  - Get it: Any recent Mac. A laptop trackpad or a Magic Trackpad both work.
  - Verify: About This Mac reports macOS 14 or higher and a trackpad is present
- [ ] **Xcode 16 or newer** · free
  - Why: Builds and signs the agent.
  - Get it: Mac App Store or developer.apple.com/xcode.
  - Verify: xcodebuild -version prints 16 or higher
- [ ] **Willingness to grant Accessibility to your own build** · free
  - Why: Nothing here works without it, and it is the permission that reads every keystroke. Understand what you are granting before asking anyone else to.
  - Get it: System Settings, then Privacy and Security, then Accessibility. During development it must be re-granted whenever the binary path or signature changes.
  - Verify: AXIsProcessTrusted returns true and the event tap installs
- [ ] **Three applications with different input behaviour** · free
  - Why: Phase 3 and 4 need real variety: a text editor, a browser and something that refuses window manipulation. Testing against one application hides most of the bugs.
  - Get it: Anything already installed. Include at least one that ignores Accessibility window commands, because handling refusal is part of the work.
  - Verify: All three respond differently to the same rule and each case is handled
- [ ] **Apple Developer Program membership** (optional) · 99 USD per year
  - Why: Product phase only. Without it there is no notarization and a Gatekeeper warning everywhere else.
  - Get it: Enrol at developer.apple.com/programs.
  - Verify: A Developer ID Application certificate appears in Xcode settings

## Quick start

```sh
xcrun notarytool submit Input.zip --keychain-profile AC --wait
xcrun stapler staple Input.app
```

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Broad input device coverage across stream decks, tablets and controllers.
- The scripting depth accumulated over a decade.
- The community preset library.
- Guaranteed compatibility across macOS releases.
- huge input-device coverage, scripting depth, community presets, and OS maintenance
- years of OS-version edge cases
- large extension ecosystem
- cross-device sync
- commercial support and rapid compatibility fixes

If one of those is essential to you, that is the reason to keep paying for BetterTouchTool, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

People still pay for BetterTouchTool because small utilities are technically reproducible, but customers pay for polish and immediate fixes when an OS update breaks a daily habit. The recurring cost buys permissions, accessibility APIs, sandboxing, signing, notarization, OS regressions, updates, backups, and support, not just the visible interface.

what you lose

xhuge input-device coverage, scripting depth, community presets, and OS maintenance

xyears of OS-version edge cases

xlarge extension ecosystem

xcross-device sync

xcommercial support and rapid compatibility fixes

prior art · use these instead of building, if you'd ratherEspansoActive open-source cross-platform text expansion utility with system integration.↗
share on X ↗"I just replaced BetterTouchTool with one prompt"
the numbers

BetterTouchTool pricing

planmonthlyannual (per mo)what you get
standard licencecustom—1 user on all personally owned Macs; 2 years of updates, then the last eligible version keeps working.
lifetime licencecustom—1 user on all personally owned Macs; lifetime BetterTouchTool updates and other folivora macOS apps released within the next 2 years.

free tierno free tier

billingone-time purchase; no monthly or annual plan; trial available

hidden costsThe $15 licence stops receiving updates after 2 years; taxes and country-specific pricing may change the checkout total.

verified 2026-08-14 · source ↗

questions
Vibecode BetterTouchTool

Yes. A competent AI coding agent (Claude Code, Codex, Cursor) can build a usable personal BetterTouchTool replacement in one session with the prompt on this page. It runs on your own machine or server with no subscription.

How much does BetterTouchTool cost?

BetterTouchTool's pricing is usage-based or varies by plan · Sold as a time-limited or lifetime one-time licence; canonical monthly amount is null..

What do I lose by replacing BetterTouchTool?

Honestly: huge input-device coverage, scripting depth, community presets, and OS maintenance; years of OS-version edge cases; large extension ecosystem; cross-device sync; commercial support and rapid compatibility fixes. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to BetterTouchTool?

Yes: Espanso (Active open-source cross-platform text expansion utility with system integration.). Using prior art is also vibecoding; the prompt is for when you want it exactly your way.