Skip to main content

Verifying that local chat stays local

The claim under test is narrow and specific: when FluentAI runs a model on your device, your prompt and the model's response are never transmitted anywhere. Here is how to check that yourself.

Why a proxy, not airplane mode

Switching the network off proves only that an offline app works offline. An intercepting proxy is the stronger test: the network stays up and fully reachable, so anything the app wanted to send, it could — and you can see that it sent nothing.

The procedure

# 1. Start an intercepting proxy on your computer
mitmdump -w /tmp/fluentai-offline.flow --listen-port 8080

# 2. Point the phone at it (USB, not wireless adb) and trust the CA cert
adb shell settings put global http_proxy <your-ip>:8080

# 3. In FluentAI: pick a downloaded local model, set inference mode to
#    Offline, and send three messages. Then stop the capture.

# 4. List every host contacted during that window
mitmdump -nr /tmp/fluentai-offline.flow | awk '{print $3}' | sort | uniq -c | sort -rn

What you should see

Zero flows to any inference endpoint during the chat window. No prompt text, no response text, no model input of any kind leaves the device.

You will see Firebase and advertising hosts in the capture. That traffic is real, it carries no chat content, and it is listed in full on the telemetry page. There is no in-app switch to silence it today.

Our own capture

We are publishing our own run of this procedure — measured, not asserted — alongside the next release, so you can compare your results against ours. Until then, the procedure above is complete and reproducible on any device you control.