Privacy & telemetry
Exactly what Halo sends, what it never sends, and how to choose what it may share.
Sent with every request
When you press Enter, Halo sends:
- the request text, and the earlier requests in the same conversation with how each turned out (ran, cancelled, answered);
- context needed to read it: your OS, its version and architecture, your shell,
the current folder's path, your home folder path and user name, the time, time
zone and locale, which common tools are installed, and whether the folder holds
common project files (such as
package.json); - the shape of results you are working with: their kind, field names and count, never their contents.
While you type, Halo connects and signs in but sends no request text.
Never sent
File contents, folder listings, command output, the results themselves, environment variable values, credentials and documents stay on your machine. Halo works on your files locally.
Telemetry choice
The first time you run Halo it asks what it may share to improve Preview:
| Level | What is sent |
|---|---|
share | for each request: the request text after redaction, how Halo read it (the kind of task), whether you ran, cancelled or corrected it, and timing |
feedback | only feedback you give explicitly (/feedback), without your words |
off | nothing beyond the requests themselves |
Change it any time with /telemetry. Before anything is shared, Halo removes
your home folder path, user name, email addresses and anything that looks like a
key or token from the text. Redaction is best effort, which is why sharing text
is opt-in.
Service logs
The Halo service records operational events (request counts, response types, timings, errors) to run the service. These records do not include request text, and accounts appear in them only under a pseudonym.
Questions or deletion requests: contact us. See also the Memcode privacy policy.