🧹 safaai — TUI-first Developer Workstation Optimizer
___ ___ ___ ___ ___ _
/ __| / _ \ | __|/ _ \ / _ \ | |
\__ \| (_) || _| \_, / \_, / |_|
|___/ \___/ |_| /_/ /_/ (_)
Understand your workstation. Never blindly delete. Optimize like a developer.
💡 The Motivation: AI Era vs. Developer Disk Space
We live in the golden age of AI, local LLMs, and agentic coding workflows. But with great developer power comes great disk-space responsibility.
Every single week, your workstation accumulates:
- Gigabytes of Xcode DerivedData and archived artifacts.
- Monstrosity-level
node_modulesdirectories hidden in old forgotten directories. - Orphaned Docker volumes and dangling images.
- Caching artifacts from package managers like Homebrew.
- Massive model weights and vector DB test logs.
Sometimes, your machine starts chugging, and you just need an instant performance boost (freeing inactive RAM, purging caches, killing rogue memory-hogging consumer apps) without launching a heavy, closed-source consumer GUI app.
While there are plenty of disk cleaning utilities for Windows, developers on macOS and Linux are often left to guess which rm -rf command will break their local databases or compilation systems.
safaai is built for devs: terminal-first, completely open-source, interactive, and transparent.
🛠️ Commands Reference
Press / inside the application to open the command palette and run slash commands:
| Command | Action | Risk Level | What it does |
|---|---|---|---|
/clean |
Scan & Clean | Safe (Review required) | Streams live disk scans across node, docker, brew, and Xcode projects. Reclaims space interactively with individual/parallel selectors. |
/doctor |
Compute Health Score | None | Audits your workstation and returns a developer health score from 0 to 100 based on bloated caches, memory leaks, and boot speed. |
/optimize |
RAM & Process Boost | Medium | Instantly purges system memory pages and terminates heavy background third-party applications to recover active RAM. |
/logs |
Browse Logs | None | Full searchable audit log of every operation, file path, and byte reclaimed during safaai runs. |
/ignorelist |
Manage Exclusions | None | Configure directory exclusions so safaai never scans or touches sensitive paths. |
/sysinfo |
System Dashboard | None | Visual real-time CPU, RAM, disk read/write, and network bandwidth meters. |
/update |
In-App Self Update | None | Automatically fetches latest release assets, checks versions, and atomically replaces the binary executable. |
/help |
Command Assistant | None | Displays quick command hints and keyboard binds. |
/quit |
Exit safaai | None | Terminate all active scanners safely and exit the TUI. |
💻 OS Support Matrix
| OS | Status | Notes |
|---|---|---|
| macOS | Fully Supported (11.0+) | Optimized for Apple Silicon (arm64) and Intel (x86_64). Includes Apple-specific scanners (Xcode, LaunchAgents, system memory purges). |
| Linux | Fully Supported | Runs natively in standard TTY terminals. Bypasses macOS-specific routines automatically. |
| Windows | Coming Soon 🛠️ | Native command shell adapters and Windows registry/temp cleanup scanners are currently under development. |
🚀 Installation & Launch
Run it instantly using uv (recommended):
uv tool install safaai
safaai
Or install via pipx / pip:
pipx install safaai
safaai
For macOS standalone binary downloads or custom Homebrew formula taps, check the Releases page.
🔧 For Developers
If you want to run safaai locally and contribute new scanners:
# Clone the repository
git clone https://github.com/manugopinath-dev/safai.git safaai
cd safaai
# Install dependencies and sync environment
uv sync
# Run the TUI in development mode
uv run safaai
# Run the test suite
uv run pytest
Made with ♥ by Manu Gopinath
Metadata
Release files for safaai 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| safaai-0.1.2.tar.gz | 481.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| safaai-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 565.4 kB
Release files / safaai-0.1.2.tar.gz
| Download URL | safaai-0.1.2.tar.gz |
|---|---|
| Size | 481.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0cd7ff583483372e8afc31154ed008f3e987f633cde73ece94191afdfbc7b511
|
|
BLAKE2b-256 checksum How to use checksums |
87069ba657d3217bcaeb25cdac6eff810a2937d8948c20219ee14e8bf4d7652d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / safaai-0.1.2-py3-none-any.whl
| Download URL | safaai-0.1.2-py3-none-any.whl |
|---|---|
| Size | 84.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
69857f83c68018c92ac9086564f3d9ddafa7156e8efc2f5bba7096a01dd5c30b
|
|
BLAKE2b-256 checksum How to use checksums |
92c026b3bead282aed4b0742370f1e631a0f7f15f3854a772ed321fdfbd043dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|