Skip to main content

🧹 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_modules directories 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.
  • Virtual machine junk — VirtualBox, UTM, Parallels & VMware bundles, caches, and 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, xcode, and virtual machine junk (VirtualBox/UTM/Parallels/VMware). Reclaims space interactively with individual/parallel selectors.

[!NOTE] Platform availability: The virtual machine junk scanner currently targets macOS only (VirtualBox VMs, UTM, Parallels, VMware Fusion, and XNU temp disk images). Windows and Linux hypervisor detection is on the pipeline — coming in a future release. VM bundles are flagged CAUTION (never auto-selected); caches/logs are SAFE (pre-selected). | /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: uv has aggressive local metadata caching. To guarantee that you fetch and run the absolute latest release of safaai, always include the --no-cache flag 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.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for safaai 0.1.13
File Size Uploaded
safaai-0.1.13.tar.gz 559.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for safaai 0.1.13
File Interpreter ABI Platform
safaai-0.1.13-py3-none-any.whl Python 3 none any Details

Total release size: 650.2 kB

Release files / safaai-0.1.13.tar.gz

Download URL safaai-0.1.13.tar.gz
Size 559.0 kB
Tags Source
SHA-256 checksum
How to use checksums
00d5aa28aa4d33906c0033b3ccb9cb1defdf7fbecd23822c6068bddd8d75abe9
BLAKE2b-256 checksum
How to use checksums
22e94e30cfa84d3437b148c4d8799fca7bacd6b7df021953000a1be544315b13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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.13-py3-none-any.whl

Download URL safaai-0.1.13-py3-none-any.whl
Size 91.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
445f4966f8fb052b2e42c138fb6bd11aefb85c3174127deb6d2b72c16b47744b
BLAKE2b-256 checksum
How to use checksums
6fbb0795816a02630839cc84fd68377c5730f882779d74db50860620c1aaf802
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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 history Release notifications | RSS feed

This release

0.1.13 This release

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page