1. Getting Started
When you launch FlowMoSNMP for the first time, the onboarding window appears. Fill in your device details to start monitoring.
What you need
- The IP address or hostname of an SNMP-enabled device (router, switch, NAS, etc.)
- The SNMP community string (usually
publicfor v1/v2c) or SNMPv3 credentials - The interface index you want to monitor (the onboarding window can discover this for you)
Onboarding steps
- Enter your Device IP / Host and Community String
- Choose your SNMP Version (v1, v2c, or v3)
- Tap Discover... next to Interface Index to browse available interfaces on the device
- Tap Test to verify connectivity — a green checkmark and the device name confirm success
- Tap Get Started to begin monitoring
3. Dashboard
Click the menu bar icon to open the dashboard popover. It shows everything about your current connection in one view.
Header
The status dot indicates connection health: green for connected, red for error, orange while starting up. The device name, interface, and SNMP version are shown below. A pin button in the top-right lets you detach the dashboard into a standalone window.
Rate cards
Two side-by-side cards show your current inbound and outbound bandwidth rates. If the app detects your interface's link speed, a utilization bar and percentage are shown below each rate.
Bandwidth chart
A history chart plots your inbound (cyan) and outbound (orange) rates over time. The time window is configurable: 5 minutes, 15 minutes, 30 minutes, or 1 hour.
- Hover over the chart to see exact rates at any point in time
- Click a legend label (In or Out) to isolate that series — click again to restore both
Stat cards
Optional cards appear below the chart. All are off by default — enable them in Settings → Stat Cards:
- Packets per Second — inbound and outbound packet rates
- Errors per Second — interface errors and discards (highlights yellow when errors are present)
- Peak Rate — highest recorded rate with timestamp, over a configurable window (1h, 6h, 24h, or 7d)
- Rolling Total — cumulative bytes transferred over a configurable window (1h, 6h, 24h, or 7d), with a "Since" date
Peak rates and rolling totals are persisted to disk and survive app restarts.
4. Pinned Panel
Click the pin icon in the dashboard header to detach it into a floating panel. The panel:
- Stays visible when you switch to other apps
- Persists across all Spaces
- Can be moved anywhere on your desktop
Click the X button on the panel or the pin icon again to return to the popover mode. Left-clicking the menu bar icon toggles the panel's visibility.
5. Settings
Open Settings from the context menu (right-click the menu bar icon) or from within the dashboard. Settings are organized into five tabs.
Connection
Configure your SNMP device:
- Device IP / Host — IP address or hostname
- Custom Device Name — override the name reported by SNMP
- SNMP Version — v1, v2c, or v3
- Community String (v1/v2c) — defaults to
public - Username, Auth Protocol, Auth Password (v3) — password is stored in the macOS Keychain
- Interface Index — the interface to monitor. Use Discover... to browse all interfaces on the device
- Poll Interval — how often to query the device (1s, 2s, 5s, 10s, 30s, 60s)
- UDP Port — defaults to 161
The Test button (bottom bar) verifies connectivity and displays the device name on success.
Display
- Bandwidth Unit — Auto (bits), Auto (bytes), Bits, or Bytes
- Show Rates — Stacked, Inline, Out only, or In only
- Chart Window — 5m, 15m, 30m, or 1h
- Swap In / Out — reverses upload and download labels
- Idle: Show Device Name — shows device name when traffic is near zero
Stat Cards
Toggle which stat cards appear on the dashboard: Packets per Second, Errors per Second, Peak Rate, and Rolling Total. Peak and Total cards have their own configurable history windows and reset buttons.
Alerts
Set inbound and outbound bandwidth thresholds. When exceeded, a macOS notification is sent. Notifications are rate-limited to once per minute per direction. Set a threshold to 0 to disable. See Alerts for details.
System
- Appearance — System, Light, or Dark
- Menu Bar Text Color — custom color for normal rates
- Menu Bar Error Color — custom color when disconnected
- Launch at Login — start automatically when you log in
- iCloud Sync — sync settings across Macs. See iCloud Sync
About
Shows the app version, build number, and links to the Privacy Policy and License Agreement. Also includes copy-to-clipboard buttons for snmpwalk commands (v1, v2c, and v3) to help verify your device from Terminal.
6. Connection Log
The Connection Log records every significant event: poll starts, successful connections, device info, warnings, and errors. Open it from the context menu or the dashboard.
- Filter by level: All, Warnings, or Errors
- Right-click any row to copy it to the clipboard
- Export... saves the log as a plain text file
- Clear removes all entries
The log auto-scrolls to the latest entry unless you've scrolled up to read older entries. It is capped at 500 entries to keep memory usage low.
Consecutive duplicate errors are deduplicated — the first 3 are logged, then every 30th — to prevent flooding during prolonged outages.
7. SNMP Data
The SNMP Data window shows raw per-poll counter values, deltas, computed rates, packet rates, and error rates. This is useful for verifying that your device is reporting correctly or diagnosing unexpected readings.
- Sort order — toggle between Newest First and Oldest First
- Errors Only — filter to show only failed polls
- Show Suppressed — reveal zero-delta polls (hidden by default)
- Right-click any row to copy the full row, or copy individual raw counter values
- Export... saves the data as a CSV file
Capped at 1,000 records. The info button in the toolbar documents each column.
8. Alerts
FlowMoSNMP can send macOS notifications when your bandwidth exceeds a threshold you define.
- Set thresholds independently for inbound and outbound traffic in Settings → Alerts
- Choose your preferred unit: Kbps, Mbps, Gbps, KB/s, MB/s, or GB/s
- Set a threshold to 0 to disable alerts for that direction
Notifications are rate-limited to one per direction per minute to avoid flooding. macOS will prompt for notification permission the first time you save a non-zero threshold.
9. iCloud Sync
Enable iCloud Sync in Settings → System to keep your configuration in sync across all your Macs.
- Configuration data syncs via iCloud Key-Value Store
- SNMPv3 passwords sync separately via iCloud Keychain — they are never stored in iCloud KV
- Changes made on one Mac appear on your other Macs automatically
- The System tab shows the last sync time and status
Remove Data from iCloud deletes your configuration from iCloud without affecting local settings on the current Mac.
10. Exporting Data
Connection Log
Click Export... in the Connection Log window to save entries as a plain text file. The export respects your current filter (All, Warnings, or Errors).
SNMP Data
Click Export... in the SNMP Data window to save records as a CSV file. The export respects your current filter and sort settings.
Copy Stats
Right-click the menu bar icon and choose Copy Stats to Clipboard to copy a summary of your current rates, peak rates, and rolling totals as plain text.
11. Verifying Your Device via Terminal
Before installing the app, or to troubleshoot connectivity, you can use snmpwalk and snmpget in Terminal. Install with brew install net-snmp if needed.
Step 1 — Find your interface index
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.2.2.1.2
This lists each interface with a number. For example:
IF-MIB::ifDescr.1 = STRING: lo0 IF-MIB::ifDescr.2 = STRING: eth0 IF-MIB::ifDescr.3 = STRING: WAN
Step 2 — Verify all counters
Using the interface index (e.g., 3 for WAN):
snmpget -v2c -c public 192.168.1.1 \ 1.3.6.1.2.1.2.2.1.10.3 \ 1.3.6.1.2.1.2.2.1.16.3 \ 1.3.6.1.2.1.2.2.1.11.3 \ 1.3.6.1.2.1.2.2.1.17.3 \ 1.3.6.1.2.1.2.2.1.14.3 \ 1.3.6.1.2.1.2.2.1.20.3
This checks all six metrics: bytes in/out, packets in/out, and errors in/out. If all six return numeric values, every stat the app can display is supported.
Replace public with your community string and 192.168.1.1 with your device IP.
12. FAQ
Does FlowMoSNMP have to be running to capture data?
Yes. The app must be running and active in the menu bar to poll your device and collect bandwidth data. It does not run as a background service — if you quit the app, data collection stops. If your Mac goes to sleep, polling pauses and you'll see gaps in the chart and history when it wakes back up.
How many devices will this monitor at one time?
FlowMoSNMP monitors one device at a time. You configure a single SNMP host and interface, and the app polls that device continuously.
What devices have been tested to work?
Ubiquiti and Synology devices have been confirmed to work. In general, any device that supports standard SNMP interface counters (ifInOctets / ifOutOctets) should be compatible — including routers, switches, and NAS devices from most major vendors.
Do all devices support 1-second polling?
No. Some devices update their SNMP counters less frequently than once per second — commonly every 5 or 10 seconds. When polling faster than the device refreshes, you'll see zero-rate readings between real updates. FlowMoSNMP detects this pattern automatically and logs a notice to the Connection Log so you know what to expect from your device.
Does it keep running when I close the window?
Yes. FlowMoSNMP lives entirely in the menu bar — there is no Dock icon and no main window to close. Clicking the menu bar icon opens and closes the dashboard, but polling continues in the background the whole time.
Why does the menu bar show dashes or a timeout error?
This usually means the app can't reach your device. Check that the IP address and port are correct (default is 161), SNMP is enabled on the device, and your community string matches. The Connection Log shows the exact error to help narrow it down.
Where do I find my SNMP community string?
Log in to your router, switch, or NAS admin panel and look for an SNMP settings page. The community string is usually listed there — the default on most devices is public. For SNMPv3, you'll set a username and auth password in the same area.
What happens if my device goes offline?
The menu bar text turns orange to signal a problem, and each failed poll is recorded in the Connection Log with a timestamp. When the device comes back online, polling resumes automatically and the color returns to normal.
13. Troubleshooting
Menu bar shows dashes or a timeout error
The app cannot reach your device. Check that:
- The IP address and port are correct (default SNMP port is 161)
- SNMP is enabled on the device
- Your community string matches the device's configuration
- No firewall is blocking UDP traffic on port 161
Open the Connection Log for the exact error message.
Rates show zero even though there is traffic
Some devices update their SNMP counters less frequently than your poll interval (e.g., every 5 or 10 seconds). When polling faster than the device refreshes, you'll see zero-rate readings between real updates. FlowMoSNMP detects this automatically and logs a notice to the Connection Log with the estimated counter update interval.
The app shows "No Such Object" errors
The device doesn't support the requested counter on this interface index. Try:
- A different interface index — use Discover... in Settings to browse available interfaces
- Verify SNMP is enabled for the correct interface on the device
SNMPv3 authentication fails
- Confirm your username, auth protocol (MD5 or SHA-1), and password match the device configuration
- The auth password must be at least 8 characters
- FlowMoSNMP supports
authNoPrivsecurity level — privacy/encryption is not currently supported
Memory usage grows over time
If you leave windows open (Settings, Connection Log, SNMP Data) for extended periods, SwiftUI may accumulate overhead. Close windows you're not actively using. The dashboard popover automatically releases its view tree when closed.
Resetting the app
To reset onboarding and start fresh, run this in Terminal:
defaults delete app.flowmosnmp.flowmosnmp hasCompletedOnboarding
Then relaunch the app.
This user guide was generated with the help of AI and reviewed by a human. We use AI to help keep the guide up to date as features change. While we review for accuracy, mistakes are still possible. If you notice something that doesn't look right, please email us at .