A collection of handy CLI scripts to speed up your dev workflow. Stop, clean, build, debug — all from short memorable commands.
git clone https://github.com/melisselima/dev-utils.git
cd dev-utils
./install.shThen reload your shell:
source ~/.zshrc # or ~/.bashrc / ~/.bash_profileThat's it. All commands are now available globally.
Re-run
./install.shanytime you add new scripts — it will pick them up automatically.
| Command | Description |
|---|---|
good-morning |
Prune unused Docker images. Use --hard to stop all containers, remove images, volumes, networks, and full system prune. |
dockerup [dir ...] |
Find docker-compose.yml files and spin up services. Pass project directories as arguments or run in the current directory. |
port-who <port> |
Show which process is using a specific port. |
killport <port> [...] |
Kill whatever is running on one or more ports. |
good-morning # remove unused Docker images
good-morning --hard # nuke all Docker resources
dockerup ~/projects/api # spin up a specific project
port-who 3000 # who's on port 3000?
killport 3000 8080 # free up ports 3000 and 8080| Command | Description |
|---|---|
git-nuke |
Delete local branches already merged into main/master, prune remote tracking branches, and run git gc. |
git-fresh <branch-name> |
Checkout the default branch, pull latest, and create a new branch. |
git-oops |
Undo the last commit with a soft reset — your changes stay staged. |
git-nuke # clean up old branches
git-fresh feature/new-login # start fresh from main
git-oops # undo last commit, keep changes| Command | Description |
|---|---|
nuke-modules [dir] |
Recursively remove node_modules, .next, dist, build, __pycache__, and other build artifacts. |
dev-up [dir] |
Auto-detect project type (Node.js, Python, Go, Rust, Docker Compose) and run install + start. |
env-check [dir] |
Compare .env.example (or .env.sample / .env.template) with .env and flag missing or empty variables. |
nuke-modules ~/projects # free up disk space across all projects
dev-up # detect and start the current project
env-check # check for missing env vars| Command | Description |
|---|---|
ram-hog [n] |
Display the top n processes by memory usage (default: 10). |
cleanup |
Purge caches from Homebrew, npm, yarn, pnpm, pip, Docker, and macOS system caches. Optionally empties the Trash. |
ram-hog # top 10 memory hogs
ram-hog 20 # top 20
cleanup # reclaim disk space from all caches| Command | Description |
|---|---|
wtf |
Show recent error logs for the current project. Auto-detects Docker Compose, Next.js, npm/yarn/pnpm logs, Python, Laravel, and Rails. |
note "text" |
Save a quick timestamped note to ~/dev-notes/YYYY-MM-DD.md. |
note |
View today's notes. |
note --list |
List all note files. |
note --search <term> |
Search across all notes. |
wtf # what broke? show me the logs
note "fixed the auth bug" # jot it down
note --search auth # find past notes about auth| Command | Description |
|---|---|
rn-init <Name> [flags] |
Scaffold a bare React Native project (no Expo) with TypeScript. Supports --yarn, --pnpm, --skip-pod. |
rn-nuke |
Nuclear clean: kill Metro, clear Watchman, remove node_modules, ios/Pods, android/build, DerivedData, temp caches — then reinstall everything. |
rn-pod [--clean] |
Install CocoaPods with --repo-update. Use --clean to wipe Pods and Podfile.lock first. Shows elapsed time. |
rn-run <ios|android> [flags] |
Smart launcher — auto-detects physical devices, picks simulator/emulator, supports --device, --simulator, --release, --clean. |
rn-build <ios|android> [flags] |
Build APK/AAB or iOS archive. Supports --release (default), --debug, --clean, --apk, --aab. |
rn-init MyApp # scaffold bare RN project
rn-init MyApp --yarn # use yarn instead of npm
rn-init MyApp --skip-pod # skip pod install
rn-nuke # full nuclear clean + reinstall
rn-pod # pod install --repo-update
rn-pod --clean # wipe pods first, then install
rn-run ios # run on simulator (or device if connected)
rn-run android --device # force run on physical device
rn-run ios --release --clean # clean release run
rn-build android # release AAB
rn-build android --apk # release APK
rn-build ios --clean # clean iOS archive./uninstall.shThis removes the DevUtils PATH entry from your shell config. Then reload your shell:
source ~/.zshrc # or ~/.bashrc / ~/.bash_profileOptionally, delete the repo folder to fully remove everything.
- Create a new file in the
scripts/directory (no file extension needed). - Add
#!/usr/bin/env bashas the first line. - Run
./install.shto make it executable and available.
- bash 4+ (macOS ships with zsh by default — all scripts use
#!/usr/bin/env bash) - Docker (for Docker-related scripts)
- Git (for git-related scripts)
- lsof (pre-installed on macOS/Linux — used by
port-whoandkillport) - Xcode & CocoaPods (for React Native iOS scripts)
- Android SDK & adb (for React Native Android scripts)
MIT