A tiny macOS companion that sits on your screen and gently nudges you when your words start getting a little heated.
[安]chor watches what you type — entirely on-device, no data ever leaves your Mac — and shows a small pixel-art buddy whose mood reflects yours. Type something kind and they'll beam. Type something not-so-kind and they'll let you know, maybe even block the message before you regret sending it.
Think of it as a friend who cares enough to tap you on the shoulder.
- On-device ML — a CoreML toxicity classifier scores your text in real time. Nothing is sent anywhere.
- System-wide — hooks into the macOS Accessibility API, so it works in any text field.
- Companion mood — the little sprite reacts to your tone: happy, excited, concerned, angry, sleepy, or just vibing with sunglasses.
- Configurable — adjust sensitivity, toggle blocking, or tell the companion to take a nap.
- Override a block — press ⌥ Option + Enter, or click on the companion, to send a blocked message anyway.
- Drag the companion anywhere on screen.
- Menu bar — click the status icon to toggle the app, open settings, or quit.
- Settings — adjust sensitivity threshold and other preferences.
- Updates — the app checks GitHub for new releases on launch and lets you know when one is available.
Grab the .dmg from the
latest release,
drag [安]chor to Applications, and open it. You'll need to grant
Accessibility permissions on first launch.
Because the app isn't notarized (yet?), right-click → Open the first time to bypass Gatekeeper.
# requires: Rust, macOS 11+ SDK, codesign, hdiutil
git clone https://github.com/eyusd/an.chor.git
cd an.chor
bash bundle.sh
# → dist/[安]chor.app + dist/anchor-<version>.dmgThe ML model (~240 MB) is downloaded automatically on first launch.
Companion artwork adapted from the Sprout Lands - UI Pack by Cup Nooble — thank you for the lovely sprites!