Skip to content

jbovet/AirMone

Repository files navigation

AirMone icon

AirMone

A free, open-source WiFi analyzer and signal mapper for macOS.

FeaturesInstallationBuildArchitectureContributingLicense

macOS 14+ Swift 5.10 MIT License CI Status


AirMone is a native macOS utility built entirely with SwiftUI. It gives you real-time visibility into your wireless environment through interactive gauges, charts, heat maps, and detailed statistics — all without leaving your desktop.

Features

Signal Monitor

Signal Monitor

  • Signal Gauge — Semi-circle gauge with color-coded range segments (Unusable → Excellent), needle indicator, and dBm tick labels for instant signal assessment.
  • History Chart — Tracks RSSI over time so you can observe fluctuations and correlate them with environmental changes.
  • Network Info — Displays SSID, BSSID, IP address, gateway, band, channel, protocol, security, TX rate, noise, SNR, and signal quality at a glance.
  • Reference Guide — Built-in quick reference for signal strength ranges, frequency bands, and router optimization tips.

Nearby Networks

Nearby Networks

  • Band Filtering — Filter discovered networks by 2.4 GHz, 5 GHz, or 6 GHz.
  • SSID Grouping — Access points sharing the same SSID are automatically grouped; expand any group to inspect individual BSSIDs.
  • Multiple Sort Orders — Sort by signal strength, channel, or name.
  • Signal History — Per-SSID signal tracking with color-coded chart lines (top 10 strongest networks).

Location Mapping & Measurements

Location Mapping

  • Drop Pin — Record signal strength at named locations within your space.
  • Persistent Storage — Measurements are stored locally and survive app restarts.
  • CSV / JSON Export — Export collected data for analysis in external tools.

Signal Heat Map

  • IDW Interpolation — Generates a continuous signal-strength surface from discrete measurement points using Inverse Distance Weighting.
  • Gaussian Smoothing — Optional smoothing pass for cleaner visual output.
  • Drag-and-Drop Layout — Position location pins on a canvas to match your physical floor plan.

Statistics

  • Distribution Analysis — View signal quality distribution across all measurements.
  • Per-Location Metrics — Average RSSI, measurement count, and strength per location.
  • Per-SSID Metrics — Track performance across different networks.

Installation

  1. Download: Get the latest .dmg from the Releases page.
  2. Install: Open the .dmg and drag AirMone to your Applications folder.
  3. First Launch (Required):
    • Go to your Applications folder.
    • Right-click (or Control-click) AirMone and select Open.
    • Click Open in the confirmation dialog.

Note on Security Warnings: macOS displays the message "Using an app that can’t be checked for malicious software might harm your Mac..." for any application that is not signed with an Apple Developer certificate. Since AirMone is a community-driven open-source project, it is currently distributed without this signature. You are encouraged to review the source code here on GitHub to verify the app's safety.

Fix Security Permissions

If the right-click method doesn't work:

  1. Try to open AirMone normally (it will fail and show a warning).
  2. Open the Apple menu  > System Settings.
  3. Click Privacy & Security in the sidebar.
  4. Scroll down to the Security section.
  5. You should see a message about "AirMone" being blocked. Click Open Anyway.
  6. Enter your login password and click OK.

Tip

These steps are only necessary for the first launch. Subsequent launches can be done normally via Spotlight or Launchpad.

Requirements

Requirement Minimum
macOS 14.0 (Sonoma)
Xcode 15.0+ (for building)
Permissions Location Services must be enabled for WiFi scanning

Note: macOS requires Location Services authorization for apps that access WiFi network information via CoreWLAN. You will be prompted on first launch.

Building from Source

# Clone the repository
git clone https://github.com/jbovet/AirMone.git
cd AirMone

# Open in Xcode
open WiFiAnalyzer.xcodeproj

# Or build from the command line
xcodebuild -scheme WiFiAnalyzer -destination 'platform=macOS' build

Select the WiFiAnalyzer scheme, choose a macOS destination, and press Cmd + R.

Running Tests

xcodebuild test -project WiFiAnalyzer.xcodeproj \
  -scheme WiFiAnalyzer \
  -destination 'platform=macOS'

Test coverage includes:

Test Suite Scope
SignalStrengthTests RSSI-to-category mapping, colors, percentages
NearbyNetworksTests Network grouping, filtering, ViewModel state
PersistenceServiceTests Local data storage and retrieval
HeatMapInterpolatorTests IDW interpolation correctness
ExportServiceTests CSV and JSON export output
StatisticsViewModelTests Aggregation and distribution calculations
LocationMappingServiceTests Grid layout and coordinate mapping
LocationCoordinateTests Coordinate model validation

Architecture

AirMone follows the MVVM (Model-View-ViewModel) pattern:

WiFiAnalyzer/
├── Models/              # Data models (WiFiNetwork, SignalStrength, etc.)
├── ViewModels/          # Observable state management
├── Views/               # SwiftUI views organized by feature
│   ├── Dashboard/       # Signal gauge, history chart, network info
│   ├── NearbyNetworks/  # Network list with grouping and filtering
│   ├── Measurements/    # Location-based measurements
│   ├── HeatMap/         # Signal heat map visualization
│   └── Statistics/      # Statistical analysis views
├── Services/            # Business logic and system integration
│   ├── WiFiScannerService    # CoreWLAN wrapper
│   ├── PersistenceService    # Local data storage
│   ├── ExportService         # CSV/JSON export
│   ├── HeatMapInterpolator   # IDW interpolation
│   └── LocationMappingService # Coordinate management
└── Helpers/             # Utilities (color palette, etc.)

Key frameworks: SwiftUI, CoreWLAN, CoreLocation, Charts, SystemConfiguration.

Contributing

Contributions are welcome! Please read the Contributing Guidelines before opening a pull request.

Author

Jose Bovet Derpichjose.bovet@gmail.com

License

This project is licensed under the MIT License — see the LICENSE file for details.

About

A native macOS application to measure and visualize WiFi signal strength throughout a physical space.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages