Privacy & Security

Telemetry

How UsageNow’s optional, anonymous analytics are designed, and what they can never include.

On this page

UsageNow includes support for privacy-preserving, anonymous analytics. They’re opt-in and off by default.

Turning analytics on or off#

Go to Settings › Privacy and use Share anonymous usage analytics. It’s off by default in every build.

While it’s off, UsageNow does nothing related to analytics: no events, no bookkeeping, and no identifier. Turning it off deletes the installation identifier, so if you turn it on again later, you start over as a new, unlinked installation.

What an event contains#

Each event has only these fields:

FieldExamplePurpose
eventapp_activeWhich event happened
installation_ida random UUIDCounting installations without identifying anyone
app_version, build0.8.0, 11Which versions are in use
macos_version15.6.1Which macOS versions to support
architecturearm64Apple silicon or Intel
timestampISO 8601 date and timeWhen the event happened

Events contain no IP address or location. As with any network request, the request itself reaches the server from your IP address; the analytics design derives at most an approximate country from it.

The installation identifier is a random UUID generated on your Mac. It isn’t derived from hardware identifiers, serial numbers, network addresses, your Apple Account, your user name, or your computer’s name. It’s created only when analytics actually send something, and it’s kept in your keychain so it survives app updates.

Events#

EventWhen
first_launchOnce, the first time analytics are active on this installation
app_activeAt most once per day, when UsageNow is used
app_updatedOnce after the app version changes
codex_detectedOnce, if Codex is installed — a yes, nothing more
claude_detectedOnce, if Claude Code is installed — a yes, nothing more
gemini_detectedOnce, if Gemini CLI is installed — a yes, nothing more
antigravity_detectedOnce, if Antigravity is installed — a yes, nothing more
kiro_detectedOnce, if Kiro is installed — a yes, nothing more
warp_detectedOnce, if Warp is installed — a yes, nothing more
opencode_detectedOnce, if OpenCode is installed — a yes, nothing more
qoder_detectedOnce, if Qoder is installed — a yes, nothing more
qwen_detectedOnce, if Qwen Code is installed — a yes, nothing more
cline_detectedOnce, if Cline is installed — a yes, nothing more
grok_detectedOnce, if Grok Build is installed — a yes, nothing more
windsurf_detectedOnce, if Windsurf is installed — a yes, nothing more

The five new explicit connections do not add account, token, session, or usage fields to telemetry. The seven-field payload is unchanged.

Where events go#

From 0.4.0, release builds send events — only while Share anonymous usage analytics is on — to telemetry.usagenow.com, a receiver run by UsageNow. It accepts exactly the fields listed above and refuses any event carrying anything else, so provider data couldn't be stored even if a future version sent it by mistake.

The receiver records the two-letter country Cloudflare resolves for the connection. It never records the IP address, request headers, or user agent, and events are deleted after 180 days.

Earlier releases carry no endpoint and send nothing, whatever the setting says.

What analytics never include#

  • quotas, usage percentages, or reset times
  • token or request counts
  • model names or plans
  • prompts, conversations, or session contents
  • files, file paths, or source code
  • project names
  • provider accounts or credentials

The analytics code has no access to provider data at all: it can only send the events above.

Development builds#

Development builds keep analytics disabled by default, the same as every other build. Developers can point a debug build at their own endpoint to test analytics locally.

Suggested

  • Getting Started
  • Claude Code usage limits
  • Reading the menu bar
  • Troubleshooting
  • Privacy