Monitor, update, and manage 27+ development tools — Node, npm, Bun, Deno, Python, pip, Rust, Cargo, Zig, Go, Swift, Ruby, .NET, Java, PHP, Docker, Homebrew, and more — all from one native app.
Built with Tauri 2 + React + Rust. Cross-platform, fast, and open-source.
- 27+ tools detected out of the box across 8 ecosystems
- Latest-version lookup against each tool's official API (Node dist index, GitHub releases, npm registry, …)
- Outdated detection with semver-aware comparison
- macOS menu-bar tray with live summary and per-tool version lines
- Detects multiple installations of the same tool (Homebrew / nvm / pyenv / system)
- Pick which installation to track as default
- One-click Install / Upgrade / Uninstall for tools and global packages
- Streaming terminal panel with live command output + Cancel button
- Confirmation dialog before every system-mutating command
- OS notification on completion
- Configurable cadence: every N hours, N times per day, or both
- Quiet hours window (wraps midnight)
- Dedupe — won't notify twice about the same tool in one day
- Scans
$HOME+ common project locations for 8 ecosystems - Tree view grouped by directory structure
- Dependency inspection with outdated badges (Node)
- On-disk size per project and per package
- Context menu: open folder, open in IDE, open terminal, copy path, move to Trash
- Auto-detects installed editors (VS Code, Cursor, Zed, …)
- Finds loose scripts outside any project (
.py,.rs,.ts,.go, …) - Filter by 11 languages
- Searchable list with file sizes
- Checks GitHub releases on startup
- One-click update with progress notification
- Global error boundary catches crashes
- "Report on GitHub" button pre-fills an issue with stack trace + system info
- Node.js 20+
- Rust stable —
rustup update stable - Tauri 2 prerequisites
npm install
npm run tauri devnpm run tauri buildPre-built binaries are available on the Releases page for:
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | .dmg |
| macOS (Intel) | .dmg |
| Windows | .msi / .exe |
src-tauri/src/
├── lib.rs # entry: state, plugins, tray, command registration
├── commands.rs # #[tauri::command] — the IPC surface
├── runner.rs # streaming command execution + notifications
├── scheduler.rs # background notification scheduler
├── tray.rs # macOS menu-bar tray icon
└── tools/
├── types.rs # shared data types
├── registry.rs # declarative tool definitions (27+ tools)
├── checker.rs # run `tool --version`, detect multi-version
├── latest.rs # fetch latest versions from public APIs
├── packages.rs # enumerate global packages + sizes
├── projects.rs # whole-machine project scanner (BFS)
├── source_files.rs # standalone source-file scanner
├── history.rs # SQLite snapshot storage
└── settings.rs # settings + notification config
src/
├── App.tsx # layout, tabs, updater, error boundary
├── components/ # Sidebar, DetailPanel, ProjectsView, FilesView, …
├── hooks/ # useTools, useProjectScan, useFileScan, useTerminalRun
└── lib/ # api wrappers, icons, tree builder
Contributions are welcome! See CONTRIBUTING.md for guidelines.
Append a ToolDefinition to builtin_tools() in src-tauri/src/tools/registry.rs — no other code changes needed.
MIT © Toolpulse Contributors


