WiFi Analyzer
Wi-Fi signal analyzer, channel planner and local connection diagnostics tool.
Built with GTK4/Adwaita. Part of the Danne L10n Suite.
Example networks shown; the app displays scan results from the local device.
Features
- Scan access points through NetworkManager D-Bus; no privileged shell command is required.
- Prefer the adapter with an active NetworkManager connection when the computer has multiple Wi-Fi devices. Active-link width and Wi-Fi generation are read from that interface.
- Filter results by network name, BSSID, channel or security type.
- Inspect 2.4, 5 and 6 GHz bands with a channel-overlap graph.
- Navigate the channel graph with Left/Right and Home/End, filter channels with Enter/Space, and hear channel selections read by screen readers.
- Show NetworkManager's announced AP bandwidth when available, with a clearly marked estimate as a fallback.
- Mark 5 GHz DFS channels. Their availability depends on the local regulatory domain.
- Estimate channel overlap from access points visible in a scan. The score does not measure client traffic or hidden networks.
- Exclude channels outside the locally reported regulatory frequency ranges from recommendations when that information is available.
- Sort results by signal, channel, or security and group repeated SSIDs by access-point count.
- Export visible, filtered results as CSV, JSON, anonymized JSON or an HTML diagnostic report, with a user-selected file name and destination.
- Escape formula-like untrusted text in CSV exports so nearby network names are not interpreted as spreadsheet formulas.
- Keep up to 100 local scan summaries for future history views. Scan data never leaves the device and can be cleared from the menu.
- Mark the active access point and use the actual channel width reported by
iwfor that radio when available. - Identify Wi-Fi 4, 5, 6/6E and 7 for the active link from
iwPHY markers. A generation is never guessed for an unconnected AP. - Compare consecutive scans to identify new, missing, or materially changed access points.
- Create a self-contained HTML diagnostic report or an anonymized JSON export that omits SSIDs, BSSIDs and connection-specific fields. Radio measurements remain and can still reveal a location; review the file before sharing it.
- Select an access point to identify the strongest overlapping neighbours.
- Show the active connection's gateway and DNS servers from local system diagnostics.
- Use optional 60-second monitoring and location profiles for private local scan history.
Installation
PyPI (Debian/Ubuntu)
GTK, libadwaita, PyGObject and Pycairo use native system libraries, so install them from your distribution before installing the Python package:
sudo apt install python3-gi python3-gi-cairo python3-cairo gir1.2-gtk-4.0 gir1.2-adw-1 network-manager iw pipx
pipx install --system-site-packages wifi-analyzer
Debian/Ubuntu
wifi-analyzer is distributed through the Danne L10n Suite APT repository, not the default Debian or Ubuntu repositories. Add the repository before installing:
wget -qO /tmp/yeager-repo-key.asc https://yeager.github.io/debian-repo/yeager-repo-key.asc
sudo install -m 0644 /tmp/yeager-repo-key.asc /usr/share/keyrings/yeager-repo.asc
echo 'deb [signed-by=/usr/share/keyrings/yeager-repo.asc] https://yeager.github.io/debian-repo ./' | sudo tee /etc/apt/sources.list.d/yeager.list
sudo apt update
sudo apt install wifi-analyzer
If APT still cannot find the package, check that the repository appears in
apt update and run apt-cache policy wifi-analyzer. The signed APT index may
lag behind the latest release. To install the current version, download the
.deb from GitHub Releases
and install the downloaded file with sudo apt install ./wifi-analyzer_*.deb.
Source packages follow Debian policy and can be built with:
dpkg-buildpackage -us -uc -b
Fedora/RPM distributions
The release includes an RPM built on Fedora 44. Download it from
GitHub Releases
and install it on Fedora 44 with sudo dnf install ./wifi-analyzer-*.rpm.
Build the source RPM with:
rpmbuild -ba packaging/rpm/wifi-analyzer.spec
GitHub Actions builds both .deb and .rpm artifacts for releases and pull
requests.
Translations
The user interface ships gettext catalogues for 21 locales. Swedish is
complete and reviewed; other catalogues may be partial, and untranslated
strings fall back to English.
See po/README.md to contribute or validate a translation.
The Swedish manual page is installed as wifi-analyzer(1) and is maintained in
docs/man/sv.
Flatpak
Flatpak-paketet byggs från
flatpak/io.github.yeager.wifi-analyzer.json.
GitHub Actions bygger en installerbar .flatpak-bundle för pull requests och
pushar till main. Release-taggar hoppar över Flatpak-jobbet eftersom manifestet
pekar på den senast utgivna och versionsstämplade källkoden. Hämta artefakten från
paketworkflowen och installera den så här:
flatpak remote-add --user --if-not-exists flathub \
https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user ./io.github.yeager.wifi-analyzer.flatpak
License
GPL-3.0
Author
Daniel Nylander — danielnylander.se
Metadata
Release files for wifi-analyzer 0.1.28
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| wifi_analyzer-0.1.28.tar.gz | 1.5 MB | With provenance | Details for wifi_analyzer-0.1.28.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| wifi_analyzer-0.1.28-py3-none-any.whl | Python 3 | none | any | Details for wifi_analyzer-0.1.28-py3-none-any.whl |
Total release size: 1.5 MB
Release files / wifi_analyzer-0.1.28.tar.gz
| Download URL | wifi_analyzer-0.1.28.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f918c8c6aa7e6b08ee8d8d5eb00f41b670dd7105c5287c1d7cc05d81eac05c3d
|
|
BLAKE2b-256 checksum How to use checksums |
a2c07bd20fc0ebb665be2c6175dcd2cbe2cf7b3ed388f68d36b5467a9e562432
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logRelease files / wifi_analyzer-0.1.28-py3-none-any.whl
| Download URL | wifi_analyzer-0.1.28-py3-none-any.whl |
|---|---|
| Size | 46.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b17b2e90a317762480f4243f022d5848b2bf0763552bd91cca91794643d2f893
|
|
BLAKE2b-256 checksum How to use checksums |
6d46c14d9236ccf2161ed590d05648134acf7644dd04a1abcf5ffb92a0d2a31c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logSecurity for wifi-analyzer 0.1.28
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for wifi_analyzer-0.1.28.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.