GodMode
ActiveA native dashboard to drive all my local projects and AI models, in a single click.

The context
Juggling several local projects (backends, frontends, workers) and LLM models loaded in RAM turns the command line into friction. GodMode is a unified control panel: a menu-bar icon plus a detailed window. One click to start, stop or restart a service; one shortcut to unload every AI model overheating the machine. Multi-project by design: what works for one project works for all, with no hardcoding.
My role
End-to-end design and development: Rust core architecture, IPC surface, system scanners, LLM runtime detection, React interface and test suite. Built solo.
Key features
- Project dashboard: per-project cards, start/stop/restart per service, a health dot and favorites-then-alphabetical sorting.
- Process lifecycle: graceful SIGTERM shutdown with a grace window then SIGKILL, cleanup of orphaned children.
- LLM control: detection of the main local inference runtimes, with real RAM footprint, model, size, quantization and owning-process attribution.
- Kill all LLMs: a large long-press button, a system-bar item and a global shortcut, with a macOS notification of the number of processes stopped and the RAM freed.
- Memory-pressure panel: detailed system memory (used, wired, compression, swap), a deterministic pressure level, hiding of non-killable daemons.
- Automatic service detection by reading manifests (package.json, Cargo.toml, pyproject.toml, requirements.txt, Makefile), inferring the port and build script.
- Live scan of listening ports (lsof cross-referenced with the current directory) and live log tailing, with a readable crash summary extracted from stderr.
- Developer toolbox: inspecting and freeing a busy port, measuring and purging caches (npm, pnpm, yarn, pip, Homebrew, Hugging Face, Xcode).
Technical challenges
- Cleanly killing a shell-wrapped service: GodMode creates a process group at spawn (setsid) then signals the whole group (killpg, grace window, SIGKILL escalation) and sweeps the remaining children: the cause handled, not the symptom.
- Making user-installed tools visible: an app launched from Finder inherits launchd's minimal PATH; the tool resolves the real PATH once at startup via a login shell, then caches it.
- Attributing an LLM model to its project: walking up the parent-process chain (bounded depth, cycle detection) and matching directories at exact boundaries, with the project match winning over the named owner.
- Identifying the model robustly: a fallback cascade (--model flag, Hugging Face cache, weights file, Python module) with size and quantization extraction, using linear ReDoS-safe regexes.
- Measuring true memory pressure: two-level filtering of system daemons to surface only safe-to-kill processes, and pressure computed deterministically (usage, compression, swap) rather than a plain percentage.
- Scanning continuously without drowning the UI: oversampling before filtering, parallel ps/lsof enrichment, distinct cadences (ports, health) and deduplication.
Scale
A real, tested implementation, not a prototype.
- A native desktop application, genuinely functional and battle-tested, not a mock-up.
- Secure by design: everything runs locally, with no server and no port exposed to the outside.
- A carefully tested core, for reliable behaviour on every launch.
Results
An active tool, used daily to orchestrate a multi-project development environment.
- A tool in daily use: starting, stopping and supervising every local project in a single gesture.
- A modular Rust architecture (registry, process manager, scanners) that drives any repository without hardcoding.
Tech stack 03 families · 08 technologies
The tech stack
Every technology in this project, wired into the rest of my practice: the wider a neuron, the more projects it has proven itself on.
Full inventory
Architecture
- IPC natif
- État server-authoritative (source de vérité backend Rust)
- Event bus Rust → frontend
- Isolation sous ~/.godmode/
Core
- Rust
- Tokio (multi-thread, process, signal)
- rusqlite
- nix (signaux POSIX)
- sysinfo
- regex linéaires
- serde
- anyhow / thiserror
- tracing
Desktop
- Tauri 2
- Plugins global-shortcut, notification, dialog, fs
- Trayicon permanent + titlebar custom
- Cible macOS 13+ (Apple Silicon / Intel)
Interface
- React 19
- TypeScript 5
- Tailwind 4
- Zustand
Quality
- 64 tests Rust
- 24 Vitest + Testing Library
- 6 Playwright e2e
- cargo clippy -D warnings
- écritures config atomiques
Approach
- Un clic = une action, safe-by-default
- allowlist de permissions, zéro injection shell, aucun sudo
- regex anti-ReDoS, chemins sanitizés
- fix à la cause racine
Architecture
- IPC natif
- État server-authoritative (source de vérité backend Rust)
- Event bus Rust → frontend
- Isolation sous ~/.godmode/
Core
- Rust
- Tokio (multi-thread, process, signal)
- rusqlite
- nix (signaux POSIX)
- sysinfo
- regex linéaires
- serde
- anyhow / thiserror
- tracing
Desktop
- Tauri 2
- Plugins global-shortcut, notification, dialog, fs
- Trayicon permanent + titlebar custom
- Cible macOS 13+ (Apple Silicon / Intel)
Interface
- React 19
- TypeScript 5
- Tailwind 4
- Zustand
Quality
- 64 tests Rust
- 24 Vitest + Testing Library
- 6 Playwright e2e
- cargo clippy -D warnings
- écritures config atomiques
Approach
- Un clic = une action, safe-by-default
- allowlist de permissions, zéro injection shell, aucun sudo
- regex anti-ReDoS, chemins sanitizés
- fix à la cause racine
Next project
Alpha
ActiveA real-time autonomous system, built with extreme engineering discipline.
