Skip to content

Latest commit

 

History

History
199 lines (155 loc) · 6.25 KB

File metadata and controls

199 lines (155 loc) · 6.25 KB
Mochi

Mochi

A tiny pixel-art companion that lives above your macOS menu bar. Reacts to your system. Naps when you do. Carries your downloads.


Why Mochi

Alive, not animated

Mochi wanders with purpose, pauses to look around, sits to chill, and naps. No random twitching — natural cat-like rhythms.

Aware of your system

Sweats when your CPU runs hot, fattens up when RAM fills, carries a sack when downloads hit. A glanceable health monitor.

Stays out of your way

Lives above the menu bar. Optional click-through. Pin it next to your status icons. Notch-aware on M-series MacBooks.

Meet the Cast


Mochi
the cat

Goldchi
the dog

Switch pets anytime from settings.


Moods & Reactions

Mochi's appearance reflects what's happening underneath. All thresholds are tunable.

Wander
Picks a destination across the menu bar and strolls to it. Default state.
Look around
Tilts head after arriving somewhere — quick curiosity beat.
Sit
Settles in for a moment of calm.
Nap
Drifts off when nothing's going on. Wakes up refreshed.
Sweat
CPU is running hot. Default trigger: 70%.
Chonk
Memory's filling up. Default trigger: 75%.
Carrying
Heavy download in progress. Default trigger: 2 MB/s.
Being petted
Hover the cursor — rolls over with floating hearts.

Tricks

Click

Opens a native settings popover with live system stats and a quick toggle for every reaction.

Right-click

Mochi dashes for one second toward the farther edge of the screen — a quick playful sprint.

Hover

Petting mode — Mochi rolls over and three small hearts float up.

Notch portal

On M-series MacBooks, Mochi walks into a glowing portal on one side of the notch and emerges on the other.

Install

brew install --cask zekiahmetbayar/mochi/mochi

The build is ad-hoc signed, Modern macOS still flags it on first launch, so run this once to clear Gatekeeper:

xattr -dr com.apple.quarantine /Applications/Mochi.app
open -a Mochi

After it appears in your menu bar, click Mochi → settings popover → enable Start at login so it launches on every boot. No Dock icon, no helper process, no LaunchAgent — just a Login Item the system handles cleanly.

Update later with brew upgrade --cask mochi. Uninstall with brew uninstall --cask mochi.

Requires macOS 13 or newer. Universal binary — runs on both Apple Silicon and Intel Macs.


Build from Source

For development:

git clone https://github.com/zekiahmetbayar/mochi.git
cd mochi
swift run Mochi

To produce a distributable .app and .dmg locally:

scripts/build-app.sh 0.0.0      # builds build/Mochi.app (universal, ad-hoc signed)
scripts/make-dmg.sh  0.0.0      # packages build/Mochi-0.0.0.dmg

The same scripts power the Release GitHub Action; pushing a tag like v1.2.3 automatically builds the DMG and publishes it to the Releases page.


Settings

Click Mochi to open the popover. From there:

  • Pet — switch between Cat and Dog
  • Size — Small, Medium, or Large
  • Click-through overlay — let clicks fall through to apps underneath
  • Pin to menu gap — park Mochi next to your status icons instead of wandering
  • Start at login — launch Mochi on boot
  • CPU sweat / RAM chonk / Heavy download — adjust the thresholds that trigger each mood

Live readouts for CPU, RAM, and download rate sit at the top of the popover.


Under the Hood

  • SwiftUI for the menu-bar overlay and settings UI.
  • AppKit NSPanel bridge for borderless, status-bar-level positioning.
  • Pure-Swift core (MochiCore) for state machines, hysteresis filters, settings persistence — fully unit-tested and platform-agnostic.
  • Public Apple APIs only for system monitoring (host_statistics64, proc_pid_rusage, SCNetworkReachability).
  • Notch-aware placement via NSScreen.auxiliaryTopLeftArea / auxiliaryTopRightArea.

Privacy

Everything stays on your Mac. No telemetry, no network calls beyond the reachability check, no analytics.

License

MIT.