Data collection
JetBrains Central CLI collects two types of analytics data:
Product usage events sent to Google Analytics 4 (GA4)
Local request logs stored on disk
Product analytics (GA4)
JetBrains Central CLI sends anonymous usage events to Google Analytics 4 via the Measurement Protocol. This helps understand adoption, identify issues, and improve the product.
When product analytics are sent
Whether product analytics are sent depends on the choice stored in your configuration file:
User state | State stored in the config file | Are product analytics sent? | What happens |
|---|---|---|---|
Accepted analytics on the terms screen |
| Yes | Events from the interactive interface, the commands, and the proxy are sent |
Declined analytics on the terms screen |
| No | Nothing leaves your machine |
Has not seen or completed the terms screen | Not set | No | Nothing is sent until you make a choice on the terms screen |
No configuration can be loaded | Not available | No | Product analytics are disabled |
The interactive interface shows the terms screen before login on first launch, or before the main menu when consent is missing for an existing login. central login shows the same terms screen before the OAuth flow when consent has not yet been stored. Other non-interactive commands and the proxy do not show that screen; they use the stored choice if present, and send nothing if it is missing.
The stored choice can be changed at any time from the command line:
The current value is also shown in central config output — on, off, or not set.
What is tracked
Category | What is recorded |
|---|---|
Onboarding | First launch, and each step of the login flow: started, browser opened, callback received, completed, or failed |
Proxy | Proxy started, stopped, failed to start, or failed to restart |
Tokens | Token refreshes and reloads, with how long each took and whether it succeeded |
Requests | Per-request metadata: provider, response status, duration, and any retries |
Agents | Agent configuration changes — connecting and disconnecting an agent |
Interface and commands | Which menu action or command you ran: viewing your usage, viewing logs, changing a setting, switching AI access source, checking for updates, and uninstalling. The interactive interface and the equivalent command are recorded separately, so the two can be told apart. |
Updates | Whether an update was installed or failed, and whether you started it yourself or an agent installed it when a session began |
Data migration | Whether a configuration or data-directory migration ran, and whether it had to be rolled back |
What is not tracked
Request or response bodies — no prompts, no completions
Plaintext email addresses
File contents or code
Specific error messages from LLM responses
API keys or tokens
User identification
The user ID is a truncated SHA-256 hash of the email address, 16 hex characters. No plaintext email is ever sent:
Session identification
Events are grouped into sessions by a random identifier. Events from one proxy run share a session.
Event context
Every event includes:
JetBrains Central CLI version
Operating system and architecture
Timestamp
Release track — the resolved update channel (
stableorbeta), orpinnedwhen pinned to a specific version. The pinned version itself is not sent.
Delivery
Events are batched and sent periodically, or immediately when the proxy stops. Failed sends are retried a few times and then discarded. Analytics failures never affect how JetBrains Central CLI works.
Local request logs
All proxy requests are logged to ~/.jetbrains-central/analytics/ for local debugging. These logs stay on your machine.
Logged fields
Field | Description |
|---|---|
| When the request was made |
| The agent's request URL, with the proxy secret masked — for example, |
| Cleaned platform path, with no host or credentials |
| HTTP method |
| Response status code |
| Request duration |
| Whether the status is 400 or above |
| Error details, if applicable |
| Trace ID you can quote in a support request |
| Additional trace ID, present only for Junie requests on a JetBrains Account login |
Viewing logs
In the JetBrains Central CLI interactive interface, select More... | AI Logs to browse request logs:
t cycles the time filter — all, last hour, last day
s cycles the status filter — all, success, errors
r resets all filters
R refreshes the data
The arrow keys page through the history
q goes back to the menu
Failed requests show the error message and a trace ID you can quote in a support request.
Log retention
At most 1000 entries per log file
At most five log files, with the oldest deleted automatically
Files are named
~/.jetbrains-central/analytics/requests_{timestamp}.json
Clearing logs
The directory is recreated automatically when the proxy logs the next request.