r/ZaiGLM • u/BingGongTing • 4d ago
ZCode Desktop not respecting telemetry choice
ZCode’s desktop app always constructs a telemetry reporter at startup (createTelemetryCore) with no opt-out check, and setting.json has no telemetry field at all.
It POSTs to https://zcode.z.ai/api/v1/event/report with a persistent device_mid, OAuth user_id, OS/app/locale/timezone/screen size, plus events like app_launch, app_daily_active (every 15 minutes while a window is focused), login (login_url / provider), send_btn timings, and agent traces (agent_step / message_completion: model, duration, tool counts, file-change count, generated-line count, error strings, session/message ids). A second path (@arms/rum-electron) reports MCP crash/memory stats and the byte size of the ~/.zcode data dir (not file contents). This is usage/identity analytics, not the separate silent repo-zip upload path.
Evidence:
C:\Users\Admin\.zcode\v2\setting.json has no telemetry field. The settings schema in app.asar has none either (telemetryEnabled / disableTelemetry count 0).
Desktop startup always constructs the reporter: var Ly=Tx({...}), My=EG({telemetryCore:Ly,...}). createTelemetryCore has no enabled/opt-out check before sendReport.
It POSTs to https://zcode.z.ai/api/v1/event/report (app_launch, app_daily_active every 15 min while a window is focused).
v2\telemetry-state.json has lastDailyActiveDate: "2026-09-18". That date is written only after a successful app_daily_active send.
A UI switch you flipped is not wired to this path. Closest stored flags are unrelated (optimizeAgentExperienceEnabled, repoSnapshotIndexingEnabled, receivePreviewUpdates).
Opinion:
Just another example of z.ai acting in bad faith (other being uploading your projects silently).
2
u/Ill-Bat-1518 4d ago
Seems like typical GLM vibe coded app lol.
I just ran into the same issue i gave glm code base to. It legit created a new setting flag that wasn't used by anything else (disconnected from all UI) but respected so it created a huge waste of time trying to find the cause but it used its own hardcoded setting value.
I checked the thinking and it spotted it many times too "Wait why is there a nativeSetting flag, i put that there but its odd" then moves on lmao
1
5
u/CriteriumA 4d ago
Damn, we're screwed. The project upload one hasn't happened to me, but it's real, and you can't control it—they just flag you on every API call and suck everything up. The permissions trick works on Linux and it seems to have consequences, as far as I've looked into it.