🧹 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.
[!IMPORTANT] safaai's Golden Rule: Never delete automatically. Explain everything. Every cleanup is previewable. Every action can be dry-run.
🛠️ 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. |
⌨️ TUI Keyboard Shortcuts & Emoji Reference
To make safaai fully keyboard-accessible, every clickable action has an associated keyboard shortcut labeled directly in the button or row.
🧹 Cleanup Preview (/clean)
[c]— Clean (🧹 Clean [c]): Run the cleanup execution on all checked items.[s]— Safe Only (🟢 Safe [s]): Select only low-risk items (e.g. system cache, temp folders) for deletion.[a]— Toggle All (⚡ All [a]): Cycle selection states between safe-only, select all, and deselect all.[Esc]— Cancel (✕ Cancel [Esc]): Exit the cleanup preview and return to the main dashboard.
📋 Checklist Row Actions
Use the Up/Down Arrow keys to navigate and move focus between the list items. Once a row is highlighted (focused with a green left-border indicator), use these shortcut keys:
[Space]/[Enter]: Toggle the checked state of the highlighted item.[o]— Open Directory (👁️ [o]): Open the target item's folder in Finder (macOS), xdg-open (Linux), or Explorer (Windows) to review its content manually.[i]— Ignore Item (🙈 [i]): Add the target item to your exclusion list, ignoring it in all future scans.
📊 Log Viewer (/logs)
[r]— Refresh (🔄 Refresh [r]): Reload and refresh the audit logs database.[c]— Clear (🗑 Clear [c]): Permanently truncate the SQLite audit log database.[d]— Export (📥 Export [d]): Export and download all audit logs to a CSV file.[Esc]— Done (✓ Done [Esc]): Dismiss the log browser.[Home]/[End]: Jump directly to the first/last page of logs.[PageUp]/[PageDown]: Scroll up/down the datatable page.
🔑 Authentication Modal
[Enter]— Authenticate (🔑 Authenticate [Enter]): Submit the entered sudo password.[Esc]— Cancel (✕ Cancel [Esc]): Reject authentication and cancel the operation.
⚙️ Self Update Modal (/update)
[u]— Update Now (⚙️ Update Now [u]): Confirm and apply the in-app version update.[Esc]— Cancel (✕ Cancel [Esc]): Dismiss the updater.
💻 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):
# Force install the latest version, bypassing local cache
uv tool install --force --no-cache safaai
safaai
Or run it on-demand without permanent installation:
uvx --no-cache safaai
Or install via pipx / pip:
pipx install --force safaai
safaai
[!TIP] Bypassing Cached Versions:
uvhas aggressive local metadata caching. To guarantee that you fetch and run the absolute latest release ofsafaai, always include the--no-cacheflag when installing, upgrading, or running on-demand.
For macOS standalone binary downloads or custom Homebrew formula taps, check the Releases page.
Made with ♥ by Manu Gopinath
Metadata
Release files for safaai 0.1.11
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.11.tar.gz | 552.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| safaai-0.1.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 640.7 kB
Release files / safaai-0.1.11.tar.gz
| Download URL | safaai-0.1.11.tar.gz |
|---|---|
| Size | 552.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1d255a841e09d9aee09ccf702e9096cd05f2b87d0e49d72dee6ba10f7dfe05ac
|
|
BLAKE2b-256 checksum How to use checksums |
65fe6a2b7f8db0075e50290ed3fd52c186401f493c74c4323918b160e7d1f4d7
|
| 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.11-py3-none-any.whl
| Download URL | safaai-0.1.11-py3-none-any.whl |
|---|---|
| Size | 87.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06ce65f450083afabcbd66d2251e554867bb95b7e8f602210f5a22f6ef02b35b
|
|
BLAKE2b-256 checksum How to use checksums |
cd6b9d77af5bdd7d538602f60010bf1e0372f6db8fcff7b6a66158560d823921
|
| 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}
|