AI-powered security scanning tool with web dashboard and system tray integration
The Windows build is not working correctly. Users should use WSL (Windows Subsystem for Linux) instead. Anyone else using Windows does so at their own risk.
See DOCUMENTATION.md for WSL setup instructions.
- 🔍 AI-Powered Scanning - Automated security analysis using Claude AI
- 📊 Web Dashboard - View scan results in a modern Next.js interface
- 🖥️ System Tray - Background operation with menu bar integration (includes server)
- 🔄 Auto-Update - Self-update from GitHub with update notifications
- 💾 Local Storage - SQLite database for scan history
- 🚀 Fast & Lightweight - Single binary with embedded frontend
- 🔧 Configurable - Support for multiple AI providers
| Dashboard | System Tray |
|---|---|
![]() |
![]() |
curl -sSL https://raw.githubusercontent.com/ndzuma/probeTool/main/install.sh | bashbrew tap ndzuma/probetool
brew install probetoolDownload the latest release for your platform:
curl -L -o probe.tar.gz https://github.com/ndzuma/probeTool/releases/latest/download/probeTool_*_darwin_arm64.tar.gz
tar -xzf probe.tar.gz
sudo mv probe /usr/local/bin/curl -L -o probe.tar.gz https://github.com/ndzuma/probeTool/releases/latest/download/probeTool_*_darwin_amd64.tar.gz
tar -xzf probe.tar.gz
sudo mv probe /usr/local/bin/curl -L -o probe.tar.gz https://github.com/ndzuma/probeTool/releases/latest/download/probeTool_*_linux_amd64.tar.gz
tar -xzf probe.tar.gz
sudo mv probe /usr/local/bin/Download probeTool_*_windows_amd64.zip from releases and extract to your PATH.
probe config add-provider openrouterYou'll be prompted for:
- Base URL (e.g.,
https://openrouter.ai/api/v1) - API Key
- Models (e.g.,
anthropic/claude-3.5-haiku)
probe trayWhat it does:
- Launches system tray icon in your menu bar
- Automatically starts dashboard server
- Polls for updates every 4 hours
- Provides quick access menu:
- Open Dashboard
- Update Available (when new version found) / Check for Updates
- Restart Server
- View Version
- Quit
# Full scan of current directory
probe --full
# Quick scan
probe --quick
# With custom model
probe --model anthropic/claude-3.5-sonnet
# Verbose output
probe --verboseThe dashboard opens automatically at http://localhost:37330
Or manually start the server:
probe serveprobe Run a security scan (default: full)
probe tray Launch system tray (includes dashboard server)
probe serve Start dashboard server only
probe serve --quiet Start server as background daemon
probe stop Stop running server daemon
probe status Show server/tray status with PIDs
probe update Check for updates and install latest version
probe update --check Only check for updates, don't install
probe config Manage configuration
probe setup Install agent files (runs automatically on first use)
probe clean Clean scan reports
probe migrate Migrate config to new location
probe version Show version information
probe --help Show all commands and flags
--full Run a full scan (default)
--quick Run a quick scan
--model <model> Override default AI model
--verbose, -v Enable verbose output
--version Show short version
# Run tray in background
probe tray &
# Full scan with specific model
probe --full --model anthropic/claude-3.5-sonnet
# Check version
probe -v
probe version # Detailed version info
probe version --json # JSON format
# Update to latest version
probe update # Check and install update
probe update --check # Only check for update
probe update -y # Skip confirmation prompt
probe update -f # Force check bypassing cache
# Configure new provider
probe config add-provider anthropic
probe config set-key openrouter sk-...
probe config list- macOS:
~/Library/Application Support/probeTool/ - Linux:
~/.config/probeTool/ - Windows:
%APPDATA%\probeTool\
probeTool/
├── config.json # Provider configuration
├── update_cache.json # Cached update check results
├── probes/
│ ├── probes.db # SQLite database
│ └── *.md # Scan reports
├── agent/ # AI agent files
└── cache/ # Temporary files
{
"providers": {
"openrouter": {
"name": "openrouter",
"base_url": "https://openrouter.ai/api/v1",
"api_key": "sk-...",
"models": ["anthropic/claude-3.5-haiku"],
"default_model": "anthropic/claude-3.5-haiku"
}
},
"default": "openrouter"
}┌───────────────────────────────────────────┐
│ User │
└────────┬──────────────────────────────────┘
│
▼
┌───────────────────────────────────────────┐
│ CLI (Go) │
│ ┌────────┬────────┬────────┬──────────┐ │
│ │ probe │ serve │ tray │ config │ │
│ └────────┴────────┴────────┴──────────┘ │
└────┬─────────────────┬────────────────────┘
│ │
▼ ▼
┌───────────┐ ┌───────────────┐
│ Agent │ │ Dashboard │
│ (Node.js) │ │ (Next.js) │
│ │ │ Port 37330 │
└────┬──────┘ └───────────────┘
│
▼
┌───────────┐
│ SQLite DB │
└───────────┘
See DOCUMENTATION.md for detailed architecture.
See DEVELOPMENT.md for:
- Development setup
- Project structure
- Making changes
- Testing
- Release process
Contributions welcome! See CONTRIBUTING.md for guidelines on:
- Setting up development environment
- Commit message format
- Pull request process
- Code style
- DOCUMENTATION.md - Architecture and API reference
- DEVELOPMENT.md - Development guide with diagrams
- CONTRIBUTING.md - Contribution guidelines
- .github/AI_CONTEXT.md - Context for AI assistants
MIT License - see LICENSE for details.
- 🐛 Report Issues
- 📧 Questions? Open an issue!
- Built with Claude Agent SDK for security analysis
- Powered by Go, Next.js, and Node.js


