What I Built
TraceLens is a local-first Wi-Fi survey report writer for Wi-Fi technicians. It reads a PCAP or PCAPNG file from a site survey and turns the packets it can verify into a customer-friendly report.
The tool extracts evidence such as observed channels, beaconed network names, retry-flag counts, and signal strength when the capture includes it. It also lists what the capture cannot establish, so a missing packet doesn’t get presented as proof that an event never happened.
A technician can review the results in a terminal interface, add separate site notes, and export a Markdown report. Before export, they can anonymize captured MAC addresses, IP addresses, and SSIDs.
Small Wi-Fi installers and IT support providers are the people I think could pay for this: it could save time turning a packet capture into a readable customer update. I haven’t validated that with a paying user yet.
Demo
TraceLens runs locally; I don’t have a hosted demo. Captures can contain customer network details, so local processing is part of the design.

Code
https://github.com/RathnamS089/pacap-analyzer
How I Built It
TraceLens is written in Python. Scapy reads the capture and extracts packet-backed facts; Textual provides the terminal interface. The report is generated from those facts and the technician’s notes, with the two kept clearly separate.
There’s also an optional explanation feature using the open-weight Llama 3.2 3B model through Ollama on the user’s machine. It receives the extracted facts and limitations—not raw packets—and can explain them in plain language. The model is off by default, and the evidence review and report export work without it.
I kept the packet analysis deterministic because the model shouldn’t invent measurements or diagnose a root cause from incomplete data. The project’s current test notes record 38 passing tests.
Why Does Open Innovation Matter?
The local-first design means a technician can analyze a customer’s capture without uploading it to a third-party AI service. That matters because captures can reveal network names, device addresses, and other details about a home or business.
Running an open-weight model locally also avoids a per-request AI API bill and lets users choose a different compatible local model. The model is only an explanation layer; the measured packet facts remain inspectable and don’t depend on generated text.
This doesn’t make the tool free to operate in every sense: users need a computer capable of running their chosen model. But it does avoid requiring a hosted inference service or sending sensitive captures to one.
The project isn’t fine-tuned, and I haven’t shown that its explanations outperform a closed model. The open approach made local, private explanations possible while keeping the core analysis usable without any model at all.
Top comments (0)