CaretGlide
CaretGlide enables you to hold down a modifier key at any input position in the text, and then use two fingers to slide on the touchpad to make the cursor "follow the movement". When you release your fingers, it will stick to the target position. It is specially designed for text and code editing scenarios.
CaretGlide: moving the caret with two fingers
CaretGlide is a small macOS utility that lets you hold a modifier key, swipe two fingers on the trackpad, and drop the caret exactly where you want it.
The interaction
CaretGlide answers a specific complaint: the trackpad cursor moves, but the text caret does not follow you. Hold a modifier key, swipe two fingers on the trackpad, and a highlight bar glides under your finger. Release the key and the caret snaps to that spot. Slow swipes give precise small steps while fast swipes accelerate, and the sensitivity is adjustable. It is written for text and code editing, with zero data collection, and the project metadata lists Swift and the MIT license.
Setup and permissions
Installation is a drag into Applications from a downloaded disk image, with a catch: the build is unsigned, so the first launch needs a right-click and Open. Before anything works you grant Accessibility permission in System Settings, and the README has a fix for the most common failure, which is stale permission state. Remove the app from the Accessibility list, re-add it from Applications, and relaunch. Settings live in four modules modeled after the Mos settings window, and the language switches between English and Simplified Chinese without a restart.
How it is built
The architecture is a data flow, spelled out in the README. A global event tap feeds scroll and modifier events into a gesture router, which drives a glide session and an overlay window. Placement uses an accessibility precise path when the app supports it, so the mouse stays still, and editors like VS Code fall back to a synthetic click. The stack is Swift with SwiftUI and AppKit, CoreGraphics for the event tap, ApplicationServices for caret positioning, and UserDefaults for preferences, with no third-party dependencies and no sandbox, which the README says is required for the global event tap and accessibility access.
Shipping and limits
Releases are built by CI as a universal disk image, published to GitHub Releases on every version tag. Because there is no Apple Developer account, builds ship unsigned. Updates are checked manually against GitHub Releases, and the app otherwise stays fully offline. The README also makes the scope clear: this is a caret tool, nothing more.
Editorial conclusion
It is a narrowly scoped utility with a clear setup path and a documented reason for every design choice, from the unsigned builds to the synthetic click fallback.
Community notes