Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (devmop) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
devmop
Mop up the junk that silently eats your disk.
node_modules, Docker images, git garbage, Flutter caches, system temp files —
devmop finds them all and wipes them clean, on any OS.
Quick Start
# Install globally
npm install -g devmop
# See how much disk space you can recover
devmop usage
# Interactive cleanup — pick what to clean
devmop clean -i
# Clean everything, no questions asked
devmop clean --allFeatures
- Plugin Architecture — Modular cleaners for Node.js, Docker, Git, Flutter, and System caches. Easy to extend.
- Cross-Platform — Runs natively on macOS, Linux, and Windows. No bash required.
- Disk Analyzer — Visual ASCII bar chart showing exactly how much space each category uses.
- Interactive Mode — Multi-select TUI to cherry-pick what to clean.
- Watch Mode — Monitors disk usage in the background and sends a native OS notification when a threshold is exceeded.
- Git Workspace Cleaner — GC, merged branch removal, stash clearing, and untracked file cleanup across all your repos.
- Dry Run — Preview every deletion before anything is touched.
- Configurable — Persistent settings via
~/.devmoprc. - Scheduling — One-line crontab (Linux/macOS) or Task Scheduler (Windows) setup.
Commands
devmop clean — Run cleanup
devmop clean [targets] [options]Targets
| Flag | What it cleans |
|---|---|
--node |
node_modules directories + npm cache |
--docker |
Docker images, containers, volumes, builder cache |
--git |
Git GC, merged branches |
--flutter |
Flutter build artifacts + pub cache |
--system |
OS temp files, caches, logs |
--all |
Everything above |
-i, --interactive |
Multi-select TUI to choose targets |
Options
| Flag | Description |
|---|---|
--dry-run |
Show what would be deleted — nothing is touched |
--aggressive |
Deep clean (Xcode data, stash, untracked files, git --aggressive GC) |
Examples
devmop clean --all --dry-run # Preview everything
devmop clean --node --docker # Clean Node + Docker only
devmop clean --all --aggressive # Deep clean everything
devmop clean -i # Pick interactivelydevmop usage — Disk usage breakdown
devmop usageScans all plugins and renders an ASCII bar chart:
Disk Usage Breakdown:
═══════════════════════════════════════════════════════════
node [████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 3.2 GB
system [████████████████████████████████████████] 12.1 GB
docker [██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 800.0 MB
flutter [█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 420.0 MB
git [░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 120.0 MB
═══════════════════════════════════════════════════════════
Total Recoverable: 16.64 GBdevmop git — Git workspace manager
devmop git [options]| Flag | Description |
|---|---|
--analyze |
Table view of all repos: branch count, merged branches, stash entries, .git size |
--branches |
Delete merged local branches (keeps main, master, develop) |
--gc |
Run git gc --prune=now on every repo |
--stash |
Clear all stash entries |
--untracked |
Remove untracked files (git clean -fd) |
--aggressive |
All of the above + deep GC |
--dry-run |
Preview actions |
Examples
devmop git --analyze # See stats across all repos
devmop git --dry-run # Preview what would change
devmop git --branches --gc # Remove merged branches + GC
devmop git --aggressive # Full deep clean--analyze output
Git Repository Analysis (31 repos)
Repo Branches Merged Stash Git Size
----------------------------------------------------------------------
projects/my-app 18 9 1 2.23 MB
projects/another-project 3 2 0 857 kB
tools/sqlmap 1 0 0 89.9 MB
----------------------------------------------------------------------
Total 31 19 521 MBdevmop watch — Disk usage monitor
devmop watch [options]Runs in the foreground, checking disk usage on a set interval. Sends a native OS notification (macOS Notification Center, Linux notify-send, Windows toast) when the threshold is exceeded.
| Flag | Default | Description |
|---|---|---|
-t, --threshold <size> |
1gb |
Alert threshold. Accepts 500mb, 2.5gb, 1024, etc. |
-i, --interval <time> |
30m |
Check interval. Accepts 30s, 15m, 1h, etc. |
--auto-clean |
off | Automatically run clean --all when threshold is exceeded |
Examples
devmop watch # Default: 1gb threshold, check every 30m
devmop watch --threshold 5gb # Alert above 5 GB
devmop watch --threshold 2gb --interval 1h
devmop watch --threshold 500mb --auto-clean # Auto-clean when exceededdevmop schedule — Set up automatic cleanup
devmop schedule [--weekly | --monthly]Prints a ready-to-use cron expression (macOS/Linux) or schtasks command (Windows).
devmop schedule --weekly # Every Sunday at midnight
devmop schedule --monthly # First of every monthCross-Platform Support
devmop automatically detects the OS and adapts — no configuration needed.
| Feature | macOS | Linux | Windows |
|---|---|---|---|
| Node.js cleanup | ✅ | ✅ | ✅ |
| Docker cleanup | ✅ | ✅ | ✅ |
| Git workspace | ✅ | ✅ | ✅ |
| Flutter cleanup | ✅ | ✅ | ✅ |
| System caches | ~/Library/Caches |
~/.cache |
%LOCALAPPDATA%\Temp |
| OS notifications | Notification Center | notify-send |
Toast notification |
| Scheduling | crontab |
crontab |
Task Scheduler |
Plugin System
Each cleaner is a plugin that extends BasePlugin:
// lib/plugins/my-plugin.js
import { BasePlugin } from "../base-plugin.js";
export class MyPlugin extends BasePlugin {
constructor() {
super("myplugin", "Clean my tool's cache");
}
async getSize() { /* return bytes */ }
async clean({ dry, aggressive }) { /* perform cleanup */ }
}Register it in lib/plugin-manager.js:
import { MyPlugin } from "./plugins/my-plugin.js";
this.register(new MyPlugin());Configuration
devmop reads ~/.devmoprc on startup:
{
"defaults": {
"aggressive": false
},
"plugins": {}
}Benchmarks
| Scenario | Scan Time | Recovered |
|---|---|---|
50+ JS projects (node_modules) |
~2.1s | 12.4 GB |
| Docker (medium usage) | ~0.4s | 4.8 GB |
| 31 git repos (GC + branches) | ~18s | 521 MB |
| System caches (macOS) | ~0.8s | 2.1 GB |
Contributing
Contributions welcome! Great first plugins to add: Python (__pycache__, .venv), Rust (target/), Go (~/go/pkg/mod), Gradle (.gradle/, build/).
git clone https://github.com/mertcanureten/devmop
cd devmop
npm install
node bin/devmop.js --helpLicense
MIT © Mertcan Ureten