A real-time, privacy-first network monitor for your desktop.
Visualise traffic, track connections, and detect anomalies — 100% locally, zero telemetry.
Muninn is an open-source, cross-platform desktop application that gives you full visibility into your network activity. Built with Electron and React, it captures and visualises real-time bandwidth, active connections, protocol breakdowns, and geographic traffic flows — all processed on-device with no data ever leaving your machine.
Named after one of Odin's ravens in Norse mythology ("Memory"), Muninn remembers and records your network activity so you don't have to.
- Real-time area chart showing download and upload bandwidth over time
- Filterable by direction (All / Download / Upload) and timeframe (5 min / 15 min / All)
- Interactive timeline scrubber with mini-graph preview for navigating history
- Spike detection with hover tooltips identifying the responsible application
- By Application — see which apps consume the most bandwidth
- By Host — track every remote server your machine talks to
- By Protocol — HTTP, DNS, mDNS, SSDP, NetBIOS, DHCP breakdown
- By Country — geographic origin/destination of traffic with flag indicators
- Geographic visualisation of traffic destinations plotted on a world map
- Proportional markers sized by traffic volume per country
- Bandwidth column — live rate gauge, download/upload volume bars, session total, and time window
- Connectivity column — subnet device count, active sockets, RTT latency bar, tracked hosts bar, link quality status
- Traffic split column — WAN/LAN ratio ring, segmented Rx/Tx bars, geographic region count, protocol count
- Per-application bandwidth usage with proportional bars
- Historical volume tracking across the monitoring session
- Active connection table with process names, remote addresses, ports, and protocols
- Real-time socket state tracking (ESTABLISHED, CLOSE_WAIT, TIME_WAIT, etc.)
- ARP-based subnet scanner to discover all devices on your local network
- Displays IP, MAC address, hostname, and vendor information
- Cached results for instant tab switching
- Configurable alerts for unusual network activity
- Notification logging with timestamps
- 5 built-in themes: Deep Forest, Cyber Midnight, Nordic Frost, Bloodmoon, and Custom
- Custom accent colour picker for download/upload graph colours
- All preferences persisted locally
- 100% local — no analytics, no telemetry, no cloud, no accounts
- No background network connections beyond your own traffic
- Manual update checks only — the app never phones home
| Layer | Technology |
|---|---|
| Desktop Shell | Electron 35 |
| UI Framework | React 19 |
| Build Tool | Vite via electron-vite |
| Styling | Tailwind CSS 4 |
| Typography | Geist Sans & Mono (variable) |
| Charts | Recharts |
| Animations | Framer Motion |
| Icons | Lucide React |
| Network Data | systeminformation |
| Packaging | electron-builder |
- Node.js ≥ 18
- npm ≥ 9
- Git
git clone https://github.com/HawkdotDev/muninn.git
cd muninn
npm install
npm run devThe app launches in development mode with hot-reload at localhost:6969.
# Platform-specific builds
npm run build:win # Windows (.exe)
npm run build:mac # macOS (.dmg)
npm run build:linux # Linux (.AppImage)Build artifacts are output to the dist/ directory.
muninn/
├── src/
│ ├── main/ # Electron main process
│ │ ├── index.js # App lifecycle, window management
│ │ └── monitor.js # Network data collection engine
│ ├── preload/ # Electron preload scripts (IPC bridge)
│ └── renderer/ # React frontend
│ └── src/
│ ├── App.jsx # Root component, routing, state
│ ├── main.css # Global styles, themes, Geist fonts
│ ├── components/
│ │ ├── Header.jsx # Navigation header with tabs
│ │ ├── LiveGraphs.jsx # Main graph view + telemetry panel
│ │ ├── common/ # Shared components (AppIcon, CountryFlag)
│ │ └── pages/
│ │ ├── Alerts.jsx
│ │ ├── BreakdownColumns.jsx
│ │ ├── Firewall.jsx
│ │ ├── MapView.jsx
│ │ ├── Settings.jsx
│ │ ├── Things.jsx # Device scanner
│ │ └── Usage.jsx
│ └── utils/
│ └── format.js # Formatting helpers (KB/MB/GB, rates)
├── assets/ # README screenshots
├── build/ # App icons
├── electron-builder.yml # Packaging configuration
└── electron.vite.config.mjs
Muninn will never auto-update or download anything in the background. You can check for updates manually from within the app — it queries GitHub Releases and notifies you if a new version is available.
Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
This project is licensed under the AGPL-3.0 License.
Built with 🤍 by HawkdotDev
