Terminal tools
Five Rust programs I wrote for my own Mac, from database backups to WhatsApp. Each one installs from my Homebrew tap.
- Tools
- 5
- Lines of Rust
- 31,085
- Tests
- 337
brew install takshakmudgal/tools/{siphon,groom,snag,wa-tui,ejector}From takshakmudgal/homebrew-tools. Every formula builds from source with cargo.
siphon
Database dumps and restores from one terminal UI.
Backs up Postgres, MySQL and MariaDB, MongoDB, SQLite and Redis, and finds the databases already running in Docker. You need no client tools: if pg_dump is missing, siphon runs it in a throwaway container. Every action is read-only except restore, and on macOS a restore asks for your login password first.
v0.5.2, released 29 Jul 2026. 223 tests, 13,625 lines of Rust, macOS and Linux.
Keys
- d
- dump now
- R
- restore a dump
- I
- import a file
- i
- import a detected container
- a
- auto-backup schedule
- t
- test and refresh stats
- r
- rescan Docker
- n
- new connection
groom
A Mac cleanup tool that knows what is safe to delete.
Thirteen tabs for keeping a Mac honest: vitals, dotfiles, CLI tools, apps, caches, build artifacts, installers, a disk analyzer, maintenance, diagnostics, drives, launch agents and listening ports. It traces each binary to the package manager that installed it and removes it through that manager. Everything else goes to the Trash.
v0.1.0, released 12 May 2026. 67 tests, 8,263 lines of Rust, macOS.
Keys
- space
- mark
- T
- apply the plan
- U
- uninstall or unload
- A
- mark all orphans
- c
- clean caches
- e
- eject a drive
- x/X
- SIGTERM or SIGKILL
- tab
- next tab
ejector
Names the process that keeps your drive busy.
The “disk is in use” dialog, with answers: ejector lists mounted volumes, finds every process holding files open on them and lets you stop the process and eject the drive, one keystroke each.
v0.1.1, released 26 May 2026. 40 tests, 2,674 lines of Rust, macOS.
snag
A download manager with a Chrome extension.
Video from the sites yt-dlp supports, direct files split into parallel byte ranges that resume after a dropped connection, and torrents through aria2. A Chrome extension hands links to the native binary through native messaging.
v0.1.0, released 11 May 2026. 7 tests, 2,109 lines of Rust, macOS.
Commands
- snag get
- download URLs
- snag probe
- list formats
- snag install-host
- connect the extension
wa-tui
WhatsApp in the terminal.
Pair once with a QR code and chat from the terminal: new chats, replies, reactions, edits, attachments and search. The session lives in a local SQLite file and every chat is saved as plain JSONL on your machine.
v0.1.0, released 11 May 2026. No tests yet, 4,414 lines of Rust, macOS and Linux.