Add WICK_NO_ANALYTICS env var to disable usage telemetry#3
Open
andrewmy wants to merge 1 commit intowickproject:mainfrom
Open
Add WICK_NO_ANALYTICS env var to disable usage telemetry#3andrewmy wants to merge 1 commit intowickproject:mainfrom
WICK_NO_ANALYTICS env var to disable usage telemetry#3andrewmy wants to merge 1 commit intowickproject:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
WICK_NO_ANALYTICS=1environment variable that completely disables all outbound telemetry (usage pings and error reports)Motivation
Discovered this project via anthropics/claude-code#22846 — having the same issue, tavily and etc MCPs rely heavily on their servers, so wick seems perfect, thanks!
However, some environments — particularly corporate networks — require strict privacy guarantees before a tool can be approved for use. Wick's existing analytics are already lightweight and anonymous (event type, version, OS only), but there was no way to turn them off entirely.
This gives users and their security teams a simple, verifiable kill switch: set one env var and zero network requests leave the process. It makes Wick adoptable in privacy-sensitive workplaces without requiring a fork or custom build.
How it works
A single
is_disabled()check gates bothping()andreport_failure()inrust/src/analytics.rs. WhenWICK_NO_ANALYTICSis1ortrue, both functions return immediately before spawning any threads or making any HTTP requests.Testing
WICK_NO_ANALYTICS=1 wick fetch https://example.com— verify no requests toreleases.getwick.devvia e.g. a firewall~/.wick/pingswick fetch https://example.com(without the var) — verify pings still work as beforeWICK_NO_ANALYTICS=true(case-insensitive) also disables telemetryDisclosure
I don't really know Rust and used AI to help me do this change. Hope to learn the language too!