WiFiScope:
上課 WiFi 卡到我自己,週末寫一個

2026.05.24 ‧ 莊哲昀(AJ)

WiFiScope — macOS WiFi 頻譜分析工具 📡 WiFiScope — Channel Spectrum (2.4 / 5 / 6 GHz) 2.4 GHz 5 GHz 6 GHz 教室-Wi5 EduRoam 隔壁班 📡 商業軟體要 $19,我週末寫一個免費的 📊 頻譜視覺化 📡 訊號排行 📈 RSSI 時序 🚦 頻道擁塞分析 Swift + SwiftUI + CoreWLAN ‧ MIT 開源 macOS 14+ ‧ github.com/AndyJuang/WiFiScope

那天我在某科技公司上 AI 內訓。簡報投到一半,學員的 Gemini 一個接一個跑出「網路連線錯誤」——整間教室的 WiFi 卡爆了。我問現場 IT 同事:「現在是哪個頻道塞最大?」他笑了笑說:「沒工具看,我們等等再試。」那天結束我回家想:商業 WiFi Explorer 要 $19、Mac App Store 上的競品要 $15——我為什麼不寫一個?

那個週末我就用 Claude Code 寫完了 WiFiScope。

📡 WiFiScope v0.1.0

macOS 14+ 的輕量原生 WiFi 頻譜分析工具,仿 WiFi Explorer 的視覺化、跑得起 6GHz Wi-Fi 6E。MIT 開源、免費下載

它做了什麼

WiFiScope 是一支純桌面的 macOS app,跑起來會顯示你周遭所有 WiFi 訊號的視覺化分析。乍看跟 WiFi Explorer 那一類工具很像,但有幾件事我自己覺得做得不錯:

  • 頻譜視覺化:每個 AP 畫成一個拋物線 blob,寬度代表頻道頻寬、高度代表 RSSI 訊號強度。一眼看出哪些頻道擠爆、哪個 AP 訊號蓋過所有人
  • 三個頻段全支援:2.4 GHz、5 GHz、還有 6 GHz Wi-Fi 6E——很多老牌工具沒跟上
  • 滑鼠 hover 出細節:BSSID、頻道、頻寬、RSSI、訊號品質、安全協定全部顯示
  • RSSI 時序追蹤:盯一個 AP 看訊號波動,或追蹤現場前五強的訊號變化(用 Swift Charts 畫的)
  • 頻道擁塞分析:每個頻道有多少 AP 在用、按擁塞程度上色——直接告訴你「該換到哪個頻道」
  • 每 5 秒自動掃描,可隨時開關

用 Claude Code 寫 Native macOS app 是什麼感覺

我之前已經用 Claude Code 寫過MacPrism(menu bar 系統監控)跟那個數位整個官網。但 WiFiScope 跟它們不一樣的地方是——它要碰到 Apple 的「需要授權」API

macOS Sonoma 14.4 之後,要讀 SSID / BSSID 需要 Location Services 權限;CoreWLAN 是 Apple 內建框架,但用法不直觀;Wi-Fi 6E 的 6 GHz 頻段是新的,文件還沒寫完整⋯⋯這些坑我自己一個都不熟。

但 Claude Code 都知道。我描述需求,它就回我:

  • 「你需要 CLLocationManager 觸發授權,否則 SSID 全部會回傳空字串。」
  • CWWiFiClient.shared().interface()?.scanForNetworks() 在 Sonoma 之後改成 async,要包 Task。」
  • 「6 GHz 頻道號是 1, 5, 9⋯⋯每 4 個一跳,跟 5 GHz 不一樣。」

它甚至幫我想好怎麼用 Swift Charts 把 RSSI 隨時間變化畫成折線圖——這套 framework 我從來沒寫過。

「我寫的不是 Swift,是『我想要看到什麼』。Claude Code 寫的才是 Swift。」—— AJ

為什麼這支對 AI 講師特別有用

給其他講師、研習主辦人、教育訓練 IT 同事的真誠分享:每個跑 AI 課程的人都該裝一個

原因很簡單——AI 課程的所有 demo 都需要連線:ChatGPT、Gemini、Claude、NotebookLM、Codex、Antigravity——沒網路就沒課可上。但你進去場地之前,根本不知道現場 WiFi 是好是壞。WiFiScope 開起來 10 秒,你就知道:

  • 現場有幾個 AP、彼此擠不擠
  • 哪個頻段空、哪個頻段塞
  • 你 Mac 連到的那個 AP 訊號強度多少
  • 10 分鐘後訊號穩不穩

場勘 5 分鐘搞定,比賭運氣安心多了。

完整功能列表

📊 Channel Spectrum 2.4 / 5 / 6 GHz 三頻段同框,每個 AP 一個 parabolic blob,視覺化頻譜分布
💡 Hover Tooltip 滑鼠移過去看 BSSID、頻道號、頻寬、RSSI、品質、加密協定
📋 Network List 可排序表格,附訊號 bar 視覺化,一眼看誰強誰弱
📈 RSSI Time Series 追單一 AP 或前五強 AP 隨時間的訊號變化(Swift Charts)
🚦 Channel Congestion 每個頻道使用 AP 數量條狀圖,依擁塞程度上色,直接告訴你該換哪台
♻️ Auto Scan 每 5 秒自動更新,可一鍵暫停/繼續

背後的技術棧

給好奇技術細節的讀者:

  • Swift 5.9+ + SwiftUI(純 SwiftUI、沒用 AppKit hack)
  • CoreWLAN — Apple 內建的 WiFi framework,呼叫 CWWiFiClient.shared().interface()?.scanForNetworks()
  • CLLocationManager — Sonoma 之後讀 SSID 必需,要在 Info.plist 加 NSLocationWhenInUseUsageDescription
  • Swift Charts — 畫 RSSI 折線、頻道擁塞長條
  • Canvas API — 頻譜的拋物線是用 SwiftUI Canvas 自己畫的(不用第三方圖表套件)
  • build.shswift build -c release → 組 .app bundle → ad-hoc codesign → 丟進 ./build/,沒用 Xcode 就能打包
  • 授權:MIT,原始碼公開

非工程師能做到什麼?這已經是第三個了

我不是工程師背景。但這兩個月來——

每一個都需要一些我以前完全不懂的技術棧——Vercel Serverless、Upstash Redis、SwiftUI、CoreWLAN、IOKit、Swift Charts⋯⋯放在三年前我看到這串字會頭暈。

但現在它們是我的工具箱。不是因為我變強了,是因為我多了一個工程合夥人

結語:你也可以週末寫一個

WiFiScope 不是要跟 WiFi Explorer 競爭。它的初衷只是:我自己需要、商業軟體要錢、那我用 Claude Code 寫一個。寫完順便開源,給跟我一樣每天奔波在不同教室、會議室、客戶辦公室的講師、IT 同事、技術主管用。

2026 年最有趣的事情,就是這個——你心裡有個「為什麼沒有人做這個」的小工具,現在你自己可以做

需要的話拿去用,覺得有用幫我按個 star。覺得有 bug 或缺哪個功能,開個 issue 跟我說。

📡 立刻下載 WiFiScope

macOS 14 Sonoma+ ‧ MIT 授權 ‧ 免費 ‧ 開源

那個數位的 AI Coding 員工賦能訓練——從 web、native macOS app 到自製腳本,讓你的員工也能週末寫一個自己想要的工具歡迎預約諮詢

想讓你的員工也能週末寫一個工具?

從寫 spec、看 diff、commit/rollback 到並行派 agent——AI Coding 員工賦能訓練。

預約內訓諮詢