Watch your Mac think.
RAMble is a free, native macOS overlay that turns your system's inner life — RAM pressure, CPU, GPU, swap, and your local LLMs — into living, glowing animations on your desktop. When Ollama streams tokens, you see a neural network firing. When memory pressure climbs, you see the machine strain. No graphs, no numbers — you just know, at a glance, like watching weather.
It sits behind your windows (or in front, your call), never catches a click, and idles light enough to leave on all day.
- Native — Swift + Metal, universal (Apple Silicon + Intel). No Electron, no browser, no ports.
- Private — reads public system counters and localhost only. Nothing leaves your machine, no analytics, no accounts.
- Open — MIT-spirited source, plugin SDK, ~zero dependencies.
| Synapse ⭐ | The flagship. A living neural graph — colored nodes joined by curved fibers, signal pulses racing along the edges and triggering cascade fires downstream. Idle, it has a resting heartbeat; run a local LLM and it storms. This is what "the model is thinking" looks like. |
| Plinko | Glowing marbles (memory allocations) rain through a peg board. Pressure jams the board; swap spills red overflow; escapees bounce along your real screen bottom and fade away. |
| Galaxy | 2,600 stars in wound spiral arms with nebula haze. Load speeds the spin; memory pressure drags orbits inward; heavy swap collapses the core into a black hole with an accretion ring. |
| Water Tank | A glass reservoir. Water level = RAM. Pressure whips up the waves, CPU simmers bubbles from below, swap overflows the rim in red. |
| Motherboard | Data packets route between CPU cores, RAM modules, GPU, and disk. Congestion backs traffic up along the traces; jammed packets buzz; swap opens red packet routes to disk. |
| Factory | Conveyor belts, spinning gears (P-cores drive the big ones), machines that fall behind under pressure so crates pile up — and get rejected off the line when you hit swap. |
| Rain | A storm on a receding ground plane. Drops land big and bright at the front, small and dim toward the horizon, each throwing a splash crown and ripple. Load drives the downpour, wind slants it, and lightning strikes as the gauges climb. |
Seven themes (Glass, Cyberpunk, Minimal, Synthwave, Terminal, Dark, Light) restyle everything, and an Intensity slider runs the whole show from slow-drip-zen to full chaos.
- Memory — used / free / cached / wired / compressed, real memory pressure, and swap (usage, growth, page-ins/outs)
- CPU — total, per-core, efficiency vs performance cores
- GPU — utilization via IOKit
- Disk — read/write throughput
- Local AI — Ollama, LM Studio, llama.cpp, vLLM, Open WebUI, and any process you add: model loads/unloads, context length, and generation activity (model load = burst; tokens = firing; finish = ripple)
Honesty note: local LLM servers don't expose live token counters, so tokens/sec is an intensity estimate derived from accelerator activity — perfect for driving visuals, not for benchmarking.
-
Grab
RAMble.app.zipfrom the latest release. -
Unzip it and drag RAMble.app into your Applications folder.
-
Run this one command in Terminal — you almost certainly need it:
xattr -dr com.apple.quarantine /Applications/RAMble.app
-
Now open RAMble normally. A welcome window confirms it's running.
Why step 3? RAMble is open-source and signed ad-hoc rather than with a $99/yr Apple Developer ID, so it isn't notarized. macOS quarantines anything downloaded from the internet, and for un-notarized apps Sequoia often reports "RAMble is damaged and can't be opened" — which is misleading; nothing is damaged. The command above just removes the quarantine flag. Right-click → Open no longer reliably bypasses this on macOS 15+, so use the command. Building from source (Option 2) avoids the issue entirely, since locally built apps are never quarantined.
After launch, look for the ram-head icon in your menu bar — RAMble has no Dock icon and no window, so that icon is the whole interface. Reopen the guide any time from menu bar → Welcome / Help.
Runs on Apple Silicon and Intel (universal binary), macOS 15+.
Requirements: macOS 15+ (Apple Silicon or Intel) and the Swift toolchain from Apple's Command Line Tools.
# 1. Get the toolchain (skip if you already have git/swift):
xcode-select --install
# 2. Clone and build:
git clone https://github.com/jangles-byte/RAMble.git
cd RAMble
./scripts/make-app.sh
# 3. Install and launch:
cp -R build/RAMble.app /Applications/
open /Applications/RAMble.appWant to try it without installing? swift run -c release runs it in place.
Everything lives under the ram-head menu bar icon (top-right of your screen):
- Show Overlay — toggle the animation on/off
- Animation — switch between Synapse, Plinko, Galaxy, Water Tank, Motherboard, Factory, Rain
- Welcome / Help — reopen the first-run guide
- Settings… — the good stuff (below)
- Check for Updates… — one-click update to the latest release
- Quit RAMble
The overlay draws behind your windows, on the desktop itself — hide or move a window (or press F11) to see it. It's fully click-through: it can never steal a click, a keystroke, or focus.
Appearance
- Bring to front — float the animation over all your windows instead (still click-through). Pair with the opacity slider to keep working through it.
- Intensity — tortoise-to-hare slider. Left: sparse and calm even under load. Right: busy screen even at idle. System load layers on top either way. (Lower intensity also means less CPU spent.)
- Opacity / Scale — how visible, how big. Scale shrinks the scene from the center; physics objects can tumble out of a shrunken scene and bounce along your real screen edges before fading away.
- Animation / Theme / Frame rate — pick your look; 30 FPS roughly halves RAMble's cost vs 60.
Displays — choose which monitors show the overlay.
Monitoring
- Desktop meters — a compact, draggable panel of live bars (RAM, pressure, swap, CPU, GPU, disk, stress, tokens/sec). Click and hold to drag it anywhere; it can't be lost off-screen; picking a corner resets it.
- Watched processes — add your own process names (comma-separated) to the AI watch list.
- Live state — the raw numbers, if you want to peek behind the curtain.
General — start at login, hide/show Dock icon, version + Check for Updates button.
# If you use Ollama:
ollama run llama3.2 "write me a limerick about RAM"Watch Synapse light up while tokens stream — bursts on model load, cascade storms during generation, a ripple when it finishes. No LLM handy? Open a few heavy apps or build some code and watch the stress climb.
Menu bar icon → Check for Updates… → click Update to X. RAMble downloads the new version, swaps itself, and relaunches. Done.
Quit RAMble from the menu bar, then drag /Applications/RAMble.app to the
Trash. There are no background helpers; settings live in standard macOS
preferences and weigh a few KB.
| Symptom | Fix |
|---|---|
| "I opened it and nothing happened" | That's almost the point — check the menu bar for the ram icon, then hide a window to see the desktop. |
| Can't see the animation | Menu bar icon → make sure Show Overlay is checked; Settings → Displays → your monitor is enabled; try Bring to front to rule out wallpaper utilities that cover the desktop layer. |
| "RAMble is damaged and can't be opened" | Nothing is damaged — it's the quarantine flag on an un-notarized app. Run xattr -dr com.apple.quarantine /Applications/RAMble.app and open it again. |
| Double-clicked it and nothing happened | RAMble has no Dock icon or window by design. Check the menu bar for the ram icon. If your menu bar is full (or hidden by a notch), quit some menu-bar apps or use a manager like Bartender. First launch also shows a welcome window. |
| Won't launch on an older Mac | RAMble needs macOS 15+. The binary is universal (Apple Silicon + Intel), but Sequoia is the floor. |
| Feels heavy | Settings → Appearance: drop Frame rate to 30 and/or pull Intensity left. Debug builds are slow — always use the release build. |
| LLM activity not detected | RAMble polls Ollama on :11434 and OpenAI-compatible servers on :1234/:8080/:8000. Custom setup? Add your server's process name under Settings → Monitoring. |
| Meters panel vanished | Settings → Monitoring → pick any corner — that resets its position. |
Release builds render up to ~32k particles through a single instanced Metal draw with trail and bloom post-passes. Monitoring samples at 1 Hz (system) and 2.5 Hz (processes + LLM HTTP), so the watcher itself is near-free. Your levers: FPS limit, Intensity, and animation choice. At 30 FPS + low intensity, RAMble fades into single-digit-idle territory; at 120 FPS + maximum chaos, it's a light show and priced accordingly.
- docs/ARCHITECTURE.md — monitors → unified
SystemState→ stress engine → Metal renderer → plugins. - docs/PLUGIN_SDK.md — write your own animation in ~60 lines; see Examples/PulseRingPlugin.swift.
- docs/BUILDING.md — targets, tests, packaging.
- Verify any change with
swift run RAMbleSelfTest(60+ checks, no Xcode required).
Built with Swift 6, SwiftUI, Metal, and Combine. PRs welcome.
