Telemetry & Privacy
Last Updated: June 2026
1. About This Telemetry Statement
Jolli Memory collects anonymous, opt-out, content-free usage telemetry. We use it to understand whether the memory pipeline actually works in the wild and how the tools are adopted — nothing more.
This page is the plain-language version of our policy. The exact, complete list is generated directly from the event registry the code uses, so this page can never claim less than the software does. If you ever want to see the raw events queued on your own machine before they're sent, run jolli telemetry inspect.
In one line: we collect anonymous counts and yes/no facts about which features get used — never your code, files, prompts, or any text you write.
2. What We Collect
- A random per-machine identifier (
installId) and which surface you're using (cli,vscode, orintellij) plus its version. - Coarse environment facts: operating system, CPU architecture, runtime version, and which Jolli environment your client points at (
local/dev/preview/prod). - The events listed below — each carrying only a small bag of bucketed or boolean properties. For example, a result count is sent as
"1-5", never as the actual number.
3. What We Never Collect
- No source code, file contents, or file paths.
- No repository or branch names, commit messages, search queries, or AI prompts.
- Counts are bucketed (
"0","1-5","6-20","21-100","100+"). - Any identifier that must persist is salted and hashed, never sent in the clear.
- Text lengths (e.g. a query) are bucketed as
short/medium/long— the text itself is never sent. - As a final safety net, a client-side scrubber drops anything that looks like a path, URL, email address, or secret before an event leaves your machine, and it bounds how deeply nested a property can be.
4. What Identifies You
installId— a random UUID minted once per machine. It is anonymous: it is not derived from your name, email, hostname, or any account.accountId— never sent by your client. If you sign in, our backend attributes events to your account from your API key at the moment they're received; until you sign in, every event is fully anonymous.
5. Where the Data Goes
Events are first buffered on your own disk, then sent in small batches over HTTPS to Jolli's telemetry endpoint (/api/telemetry/events). The client will only ever transmit to an official Jolli origin — it refuses to post telemetry (or your API key) anywhere else.
6. How to Turn It Off
Telemetry is on by default and is silenced the moment any of the following is true:
- The
DO_NOT_TRACKenvironment variable is set to anything other than0. - You run
jolli telemetry off(re-enable any time withjolli telemetry on). - (VS Code) your editor's telemetry is disabled via
telemetry.telemetryLevel. - (IntelliJ) you've declined the IDE's data-sharing consent.
Your choice and your installId live in the machine-global file ~/.jolli/jollimemory/config.json, so a single decision applies across all three surfaces (CLI, VS Code, and IntelliJ).
7. The Complete List of Events
These are every event we send, exactly as the code defines them.
Install & setup
| Event | When it fires |
|---|---|
app_installed | First run after install; installId minted (once per machine). |
surface_enabled | A surface was enabled in a repo. |
surface_disabled | A surface was disabled / opted out. |
settings_opened | The settings UI was opened (VS Code / IntelliJ). |
ai_provider_selected | You chose Jolli vs. Anthropic for summarization. |
memory_bank_migrated | A Migrate-to-Memory-Bank run completed. |
Sign-in
| Event | When it fires |
|---|---|
signin_started | You initiated OAuth sign-in. |
signin_completed | An API key was minted (the conversion event). |
signed_out | You logged out. |
Using your memory
| Event | When it fires |
|---|---|
command_invoked | Any CLI command ran (auto-emitted; sends the command name only). |
recall_performed | A recall was run. |
search_performed | A search was run. |
memory_pushed | Memories were pushed/shared. |
export_performed | An export was run. |
recall_prompt_copied | A recall prompt was copied to the clipboard. |
Capturing & summarizing
| Event | When it fires |
|---|---|
ai_source_detected | A new AI-tool transcript source was detected. |
ingest_completed | An ingest run finished. |
queue_drained | The background worker finished a drain. |
sync_completed | A Memory Bank sync round finished. |
Tool window (VS Code / IntelliJ)
| Event | When it fires |
|---|---|
toolwindow_opened | The memory tool window was opened. |
view_switched | The tool-window view was switched (current / bank / knowledge). |
memory_committed | You committed a memory via the Commit button. |
memory_expanded | A committed memory's details were expanded. |
memory_item_opened | An item inside a memory was opened (conversation / file / context). |
session_resumed | A conversation session was resumed in a terminal. |
memory_pinned | An item was pinned. |
memory_unpinned | An item was unpinned. |
Reliability
| Event | When it fires |
|---|---|
error_occurred | A structured error code was raised (the code only — no message text). |
key_rejected | The server rejected an API key (HTTP 401/403). |
reauth_completed | Re-authentication after a rejected key finished. |
Last updated: June 2026. Questions or concerns? Email support@jolli.ai.