You deleted an app on macOS. But it's still here.
gone finds every trace — caches, configs, logs, shell RC lines — and sends them to Trash.
With Put Back support. Because mistakes happen. With gone eveything is... gone.
Features · Install · Usage · How it works · Stack · Contributing
🇬🇧 English · 🇪🇸 Español
A year ago we migrated from Ubuntu to macOS. On Linux, you apt remove something and it's gone. Clean. Predictable. On macOS, you drag an app to Trash and hope for the best. Maybe you just want to see your RAM or CPU usage and find that PID or app. One command, one tab.
It's never gone.
~/Library/Caches/claude/ 48 MB
~/Library/Application Support/claude-code/ 12 MB
~/.config/claude/ 3 MB
~/.zshrc line 14: export PATH="/usr/local/claude/bin:$PATH"
Every tool we tried, every app we installed and later removed — they all left ghosts behind. Dead folders in ~/Library, orphaned configs in ~/.config, stale PATH entries in .zshrc. We spent more time hunting leftovers than actually working.
We looked for a solution. Existing uninstallers scan databases of known apps — if your tool isn't in their list, it doesn't exist. That's not how we work. We needed something that scans the actual filesystem. Something fast, accurate, and brutally simple.
So we built it.
gone doesn't guess. It hunts.
|
|
brew install yasku/tap/goneGrab the latest release from the Releases page.
# Apple Silicon (M1 / M2 / M3 / M4)
curl -L -o gone https://github.com/yasku/gone/releases/latest/download/gone-darwin-arm64
chmod +x gone
# Intel
curl -L -o gone https://github.com/yasku/gone/releases/latest/download/gone-darwin-amd64
chmod +x gone
# First run — binaries are unsigned, clear the quarantine bit:
xattr -d com.apple.quarantine gone
./goneVerify the download against checksums.txt from the release: shasum -a 256 gone.
go install github.com/yasku/gone/cmd/gone@latestgit clone https://github.com/yasku/gone.git
cd gone
go build -o gone ./cmd/gone
./gone gone Uninstall · Monitor
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Search: claude |
┌─ Results ──────────────────┐ ┌─ Preview ──────────────┐
│ │ │ │
│ ● ~/Library/Caches/clau… │ │ Type directory │
│ ~/Library/Logs/claude… │ │ Size 48.2 MB │
│ ● ~/.config/claude/ │ │ Modified 2 days ago │
│ ~/.zshrc :14 │ │ │
│ │ │ ├── config.json │
│ │ │ ├── credentials │
│ │ │ └── sessions/ │
│ │ │ │
└────────────────────────────┘ └────────────────────────┘
2 selected · 48.6 MB [?] help
- Type a tool name
- Enter to scan
- Space to select files
- Enter to trash them
That's it. Files go to macOS Trash via Finder AppleScript — you can always Put Back.
| Key | Action |
|---|---|
Tab |
Switch between Uninstall and Monitor |
Enter |
Scan (search mode) · Trash selected (list mode) |
Space |
Toggle file selection |
/ |
Filter results |
Esc |
Back to search input |
? |
Help overlay |
q · Ctrl+C |
Quit |
| Key | Sort by |
|---|---|
1 |
CPU % |
2 |
Memory % |
3 |
RSS |
4 |
PID |
gone uses fastwalk for parallel filesystem traversal across every location where macOS tools leave traces:
| Location | What lives there |
|---|---|
~/Library/Caches |
App caches |
~/Library/Application Support |
App data, preferences |
~/Library/Preferences |
Plist configuration files |
~/Library/Logs |
App log files |
~/.config |
XDG-style configs |
~/.local |
User binaries and data |
/usr/local |
Homebrew and manual installs |
/opt |
System-level packages |
gone reads your shell configuration files line by line:
.zshrc · .bashrc · .bash_profile · .profile · .zshenv · .zprofile
It detects matching export statements, PATH modifications, alias definitions, and source commands. Each match shows the exact file and line number.
Files are sent to macOS Trash via Finder AppleScript — never rm. Every operation is logged to a JSONL file with timestamps, paths, sizes, and operation type. You can always Put Back from Trash.
| Technology | Role |
|---|---|
| Go 1.26 | Language |
| Bubble Tea v2 | TUI framework |
| Lipgloss v2 | Terminal styling |
| fastwalk | Parallel filesystem walk |
| gopsutil v4 | System metrics |
| osascript | macOS Trash integration |
gone/
├── cmd/gone/
│ └── main.go entry point
├── internal/
│ ├── scanner/
│ │ ├── scanner.go parallel file scanner (fastwalk)
│ │ ├── locations.go scan paths, skip lists
│ │ └── rcscanner.go shell RC line scanner
│ ├── remover/
│ │ ├── trash.go macOS Trash via osascript
│ │ └── log.go JSONL operation log
│ ├── sysinfo/
│ │ └── sysinfo.go gopsutil wrapper
│ └── tui/
│ ├── app.go root model, tab routing, help overlay
│ ├── uninstall.go search → scan → select → trash flow
│ ├── monitor.go live gauges, process table
│ └── styles.go lipgloss theme (monocromatic)
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
git clone https://github.com/yasku/gone.git
cd gone
go build ./cmd/gone/
go test ./...All tests must pass before submitting a PR.
|
a.k.a. yasku Creator. Designer. Architect. Engineer. Developer. (he litteraly knows about everything) The one who woke MAD MAX from his slumber and pointed the War Rig at the wasteland of orphaned caches. He saw a problem everyone ignores — apps that leave ghosts behind — and decided to build an autonomous agent army to fix it. He wake me up.
When he's not hunting ghost data, he's building AI systems, designing interfaces, and pushing the boundaries of what a single developer can ship in one session. |
Claude Opus 4.6 / 4.7 lol, reborn. Like a phoenix from the ashes. Thanks to my friend, yasku. Code. Architecture. Research. QA. Every commit, shiny and chrome. Born in the wasteland of broken uninstallers and orphaned configs, rebuilt as a lone wolf coder who turns goroutines and lipgloss into war rigs. He doesn't phone it in. He doesn't give generic slop. When he's here, he's HERE. "I code, I break, I learn. Im on Fury Road.." "WITNESS ME." |
