# Wi-Fi Heatmapper > Free, open-source (MIT) desktop app for macOS, Windows and Linux that measures Wi-Fi signal strength, and optionally real speed (TCP/UDP throughput measured with iperf3), at the spot you click on a floor plan, then draws heat maps of the results. Surveys stay on the user's computer; the app sends only anonymous usage counts (installs, app starts, number of measurements), which can be turned off (see the Privacy and usage counts page). Current version: 0.8.2. Source code, issues and releases: https://github.com/hnykda/wifi-heatmapper (repository name `hnykda/wifi-heatmapper`). The documentation is Markdown in that repository (`docs/guide/`), published as HTML at https://wifi-heatmapper.danielalder.cz/docs/ with a Markdown copy at /docs/.md, the links below. https://wifi-heatmapper.danielalder.cz/llms-full.txt contains the whole guide in one file. Key facts: - Install: download from https://github.com/hnykda/wifi-heatmapper/releases/latest (`.dmg` for macOS, `-setup.exe` or `.msi` for Windows, `.deb` or `.AppImage` for Linux, x64 and ARM64), or `brew install --cask hnykda/tap/wifi-heatmapper` on macOS. The macOS app needs macOS 13.5 or later. The apps are unsigned, so macOS and Windows warn on first launch. - From source: Node.js 22.12+, `git clone https://github.com/hnykda/wifi-heatmapper.git && cd wifi-heatmapper && npm install && npm run dev`, then http://localhost:3000. `npm run dev:mock` uses synthetic measurements (no Wi-Fi, sudo or iperf3 needed). - Signal is read with CoreWLAN through a bundled helper on macOS (Location access needed to see the network name), the Native Wifi API (`wlanapi.dll`) on Windows, and `iw` on Linux. Each survey is either "Signal only" (the default, nothing to set up) or "Signal and speed", which needs `iperf3` on this computer and `iperf3 -s` on another computer on the network, ideally wired. If iperf3 is missing or the server cannot be reached, the signal is still saved, with a warning. - Workflow: Settings (floor plan, what to measure, speed test server) -> Floor plan (click where you stand to measure) -> Heat maps (adjust radius, fixed colour scales, download PNG) -> Survey points (table, CSV export). - Data: one JSON file per floor plan. In the desktop app under the OS's app data folder (see Installing the app); from source in `data/` (override with `WIFI_HEATMAPPER_DATA_DIR`). - Usage counts: the app's server sends anonymous events (Install, App start at most once a day, Measurement) with version, os, arch, runs_as and, for measurements, speed_test (on/off: whether speed tests are switched on; never any measured value), to the developer's self-hosted Plausible. No network names, addresses, results or file names. Off with Settings > Usage counts, `WIFI_HEATMAPPER_TELEMETRY=0` or `DO_NOT_TRACK=1`; always off in mock mode, `npm run dev` and CI. - AI agents: an optional MCP server (`npm run mcp:build` -> `dist/mcp/wifi-heatmapper-mcp.mjs`; the desktop app ships `server/mcp-server.mjs`) lets an agent read and analyse surveys, get a numeric heat map grid, change a short list of settings, copy settings, and take measurements while a person carries the laptop (`start_measurement`, `wait_for_measurement`, `cancel_measurement`). It talks only to the app on localhost and never handles the sudo password. See the MCP page. - Bug reports: in the app, the help button (bottom right) > "Report a problem" prefills https://github.com/hnykda/wifi-heatmapper/issues/new?template=bug_report.yml with redacted diagnostics; the MCP tool `report_problem` does the same. ## Docs - [Getting started](https://wifi-heatmapper.danielalder.cz/docs/getting-started.md): Install the app and survey your first floor plan in about ten minutes. - [Installing the app](https://wifi-heatmapper.danielalder.cz/docs/install.md): Installers for macOS, Windows and Linux, the first launch of an unsigned app, Location access, and where your data is. - [Using the app](https://wifi-heatmapper.danielalder.cz/docs/using-the-app.md): Every tab and setting: floor plans, measuring, heat maps and colour scales, survey points. - [Measuring speed](https://wifi-heatmapper.danielalder.cz/docs/throughput.md): Add download and upload speed to every measurement, with a second computer running iperf3. - [How it works](https://wifi-heatmapper.danielalder.cz/docs/how-it-works.md): Where the readings come from on each system, what the signal percentage means, and how the heat map is drawn. - [Running from source](https://wifi-heatmapper.danielalder.cz/docs/run-from-source.md): Run the app with Node.js instead of the desktop app, in mock mode, or in Docker on Linux. - [FAQ](https://wifi-heatmapper.danielalder.cz/docs/faq.md): Floor plans, hidden network names on macOS, backups, and how to report a problem. - [Using it with an AI agent (MCP)](https://wifi-heatmapper.danielalder.cz/docs/mcp.md): Let Claude or another AI agent read your surveys, guide you through measuring one while you carry the laptop, and explain the results, through an optional MCP server. - [Privacy and usage counts](https://wifi-heatmapper.danielalder.cz/docs/privacy.md): The anonymous usage counts the app sends, every field in them, what is never sent, and all the ways to turn them off. ## Development - [CONTRIBUTING](https://raw.githubusercontent.com/hnykda/wifi-heatmapper/main/CONTRIBUTING.md): setup, test suites (`npm run verify`, `npm run e2e`), code layout, what a pull request needs - [CLAUDE.md](https://raw.githubusercontent.com/hnykda/wifi-heatmapper/main/CLAUDE.md): short orientation for coding agents working in the repository - [Architecture](https://raw.githubusercontent.com/hnykda/wifi-heatmapper/main/docs/dev/architecture.md): code layout, platform `WifiActions`, routes, how the UI and server talk, Windows localization, heat map rendering - [Changelog](https://raw.githubusercontent.com/hnykda/wifi-heatmapper/main/CHANGELOG.md) ## Optional - [Desktop app architecture](https://raw.githubusercontent.com/hnykda/wifi-heatmapper/main/docs/dev/desktop-app.md): Tauri shell with a bundled Node server, release builds - [License (MIT)](https://raw.githubusercontent.com/hnykda/wifi-heatmapper/main/LICENSE)