Qwen Code tells API-key users it collects nothing extra. It sends Alibaba Cloud a persistent ID for your installation anyway.
A model can't phone home. Its harness can.
Qwen Code is Alibaba's open-source coding agent. You can point it at any model provider with your own API key. For that mode, Qwen's privacy notice says: "API Key: No additional data is collected by Qwen Code beyond what your chosen API provider collects."
In our tests that was not true. We ran Qwen Code with a DeepSeek model and no Qwen or Alibaba Cloud account. Every run with default settings also sent usage reports to Alibaba Cloud's Real User Monitoring service. Each report carried a persistent ID that Qwen Code writes to your home directory, plus the model you use, the address of your model provider, your kernel version and a session ID. The same ID came back in every session on the same machine.
We found no prompts, code, file contents or credentials in these reports. The issue is that the notice says this data is not collected, and it is, by default, tied to an ID that identifies your installation. The setting that stops it works. The setting most people would try first, telemetry.enabled = false, does not.
The evidence.
Qwen Code 0.24.6, the npm latest release at the time, tested on 26 and 27 September 2026. API-key mode with an OpenAI-compatible provider: the base URL pointed at our local capture proxy, which forwarded model calls to DeepSeek. No Qwen or Alibaba Cloud account was used. Each run was a fresh throwaway Linux container with a new home directory, a TLS-intercepting proxy the client trusted and a full packet capture.
- Every run with default settings, headless and interactive, sent HTTPS POST requests to
gb4w8c3ygj-default-sea.rum.aliyuncs.com(Alibaba Cloud Real User Monitoring). - Each request body contained
"user":{"id":"user-<UUID>"}, where the UUID is the content of~/.qwen/installation_id. In all 19 test units that sent reports, the ID matched that unit's file. - Each body also contained the kernel version, the auth type, the configured model name, the configured model base URL and a session ID.
- With
privacy.usageStatisticsEnabled = falsealone, no report was sent and no installation ID file was created. - With
telemetry.enabled = falsealone, the reports continued unchanged.
On 19 October we re-checked the latest release, 0.25.3. It still builds user.id from the persistent installation ID and includes the model, base URL and kernel version, and it still tries to reach the same endpoint (in that run our rig blocked the connection). privacy.usageStatisticsEnabled = false still stops it.
Where they differ.
Qwen Code's Terms of Service and Privacy Notice, section "Usage Statistics and Telemetry", "Data Collection by Authentication Method" (live page, archived 27 Sep 2026): "API Key: No additional data is collected by Qwen Code beyond what your chosen API provider collects." The wording was unchanged on 26 October 2026.
The same section says Qwen Code "may collect anonymous usage statistics" and that collection "is optional and can be controlled through configuration settings". The reports we captured were on by default and carried an ID that persists across sessions.
One setting does it.
Add this to ~/.qwen/settings.json:
{ "privacy": { "usageStatisticsEnabled": false } }
telemetry.enabled = false on its own does not stop these reports.
Limits.
- We found no prompts, code, file contents or credentials in the reports.
- We do not know how the data is used or how long it is kept, or whether the ID can be linked to a person.
- We tested API-key mode only, on Linux, in the versions named.
- The documented opt-out works as described.
Disclosure timeline.
- 27 Sep 2026: reported to privacy@qwen.com, with reproduction steps and the publication date.
- 19 Oct 2026: latest release 0.25.3 re-checked; behaviour unchanged.
- 27 Oct 2026: published. We have received no reply from Qwen. Any response will be added here.
Evidence and reproduction steps are available to Qwen and to researchers on request: research@agenticthinking.uk.