A modern, cross-platform SNMP MIB browser and network management desktop application.
Built with Wails (Go + Svelte).
SNMP Operations with Smart Table View
Hierarchical MIB Tree Browser with search and favorites
Real-time OID Monitoring with Chart.js graphs
SNMP Trap Listener with filtering and export
CIDR Network Discovery, Ping and Traceroute
Query History with side-by-side diff comparison
Anonymous Mode — sensitive data hidden for safe screenshots
Light Theme
127d 3h 46m), large numbers with thousand separatorsDevice-1, Device-2, etc. (consistent within a session)Ctrl+Shift+A or checkbox in Settings > PrivacyANON badge in the tab bar when activeCtrl+Shift+A)| Shortcut | Action |
|---|---|
Ctrl + 1 |
Operations tab |
Ctrl + 2 |
Traps tab |
Ctrl + 3 |
History tab |
Ctrl + 4 |
Monitor tab |
Ctrl + 5 |
Network / Discovery tab |
Ctrl + , |
Open Settings |
Ctrl + Shift + A |
Toggle Anonymous Mode |
F5 |
Reload MIB files |
Esc |
Close modal |
| Layer | Technology |
|---|---|
| Framework | Wails v2 — Go backend + Web frontend in one binary |
| Backend | Go 1.25 — gosnmp, gosmi, SQLite, pro-bing |
| Frontend | Svelte 3 + Vite |
| Charts | Chart.js with date-fns adapter |
| i18n | svelte-i18n |
| Database | SQLite (embedded, WAL mode) |
| Requirement | Version |
|---|---|
| Go | 1.25+ |
| Node.js | 18+ |
| Wails CLI | v2 |
Linux only — install GTK and WebKit development libraries:
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev
wails dev
Starts a hot-reload development server with live frontend updates.
wails build
The compiled binary is output to build/bin/.
wails build -platform windows/amd64 # Windows
wails build -platform linux/amd64 -tags webkit2_41 # Linux
wails build -platform darwin/universal # macOS (Intel + Apple Silicon)
SnmpLens
├── main.go / app.go # Wails application entry point and bindings
├── pkg/
│ ├── mib/ # MIB loading and tree construction (gosmi)
│ ├── snmp/ # SNMP client, operations, traps, discovery
│ ├── network/ # Ping and traceroute tools
│ └── storage/ # SQLite persistence for monitoring data
├── mibs/ # Bundled standard SNMPv2 MIB files
└── frontend/
└── src/
├── App.svelte # Main layout with tabbed navigation
├── MibPanel.svelte # MIB tree browser
├── OperationsPanel # SNMP operations UI
├── MonitorPanel # Real-time polling and charts
├── TrapPanel # Trap listener/sender
├── DiscoveryPanel # Network tools
├── HistoryPanel # Query history and diff
├── stores/ # Svelte stores (state management)
├── utils/ # Helpers (crypto, CSV, formatting)
└── i18n/ # Translation files (en, fr, de, es, zh)
The Go backend exposes methods to the frontend via Wails bindings. SNMP operations run concurrently using goroutines for multi-target execution. Monitoring data is persisted in an embedded SQLite database with WAL mode. Sensitive credentials are encrypted with AES-256-GCM in the browser's localStorage.
Configuration is managed through the in-app Settings dialog (Ctrl + ,):
MIB files and the monitoring database are stored in the user config directory:
| OS | Path |
|---|---|
| Windows | %APPDATA%\SnmpLens\ |
| macOS | ~/.config/SnmpLens/ |
| Linux | ~/.config/SnmpLens/ |
A built-in Python SNMP agent simulator is provided in tools/snmp_test_agent.py for testing without real network equipment. It requires no external dependencies beyond pycryptodome (for SNMPv3 AES).
pip install pycryptodome
python tools/snmp_test_agent.py --trap-port 1162 --trap-interval 10
| Version | User | Auth | Priv |
|---|---|---|---|
| v1/v2c | — | community public |
— |
| v3 | snmplens |
SHA / authpass123 |
AES-128 / privpass123 |
| v3 | sha256user |
SHA-256 / authpass123 |
AES-128 / privpass123 |
| v3 | sha512user |
SHA-512 / authpass123 |
AES-256 / privpass123 |
| v3 | authonly |
SHA / authpass123 |
— |
| v3 | noauthuser |
— | — |
MIT — Geoffrey Lecoq