vibrai) and the MCP server (Vibrai.Mcp) can ever send, and
everything they never send, regardless of settings. If something isn’t listed here as
collected, it isn’t collected.
This is a factual inventory, not marketing copy. Where we’re not certain of an exact figure
(retention days, for example) we say so rather than promise a number we can’t guarantee.
The two-key gate
Telemetry only sends data when both of the following are true at once:- You’ve recorded consent — you ran
vibrai telemetry enable. - A delivery destination is configured — the
VIBRAI_SENTRY_DSNenvironment variable points at a Sentry.io project.
vibrai telemetry enable on a
typical install still sends zero bytes — consent alone isn’t enough. Both keys have to be
present before anything leaves your machine. vibrai telemetry status always tells you which
of the two keys is (or isn’t) set, and whether telemetry is effectively active as a result.
What’s collected (only when consent is ON)
Live-set names and instrument tag strings are NOT collected, even though an earlier design
draft considered it. A set name can encode a client name or an unreleased track title, so the
debugging value didn’t clear the privacy bar. This is a deliberate default, not an oversight.
What’s never collected
The following are never collected, under any settings, on any passively-collected telemetry event, breadcrumb, or span. A scrubber runs last on every event, in every host, and fails closed: if it can’t fully process an event, that event is dropped rather than sent raw.- Filesystem paths — absolute or relative, home directories, project locations. Any path-shaped token is redacted or removed entirely.
.vibrai/.vibraigenrefile contents, and any captured project YAML. Never read into an event. (The one exception, described below, is a SHA-256 hash — never the contents — sent only viavibrai feedback.)- MIDI note data, clip contents, arrangement data — your music, never.
- Prompt text or other natural-language input you type to an agent or the CLI.
- License keys, DSNs, tokens, secrets, or environment variable values. Environment variables are never enumerated into an event.
- Any personally identifying information — no name, email, IP address (Sentry’s IP capture is disabled at the SDK level), MAC address, hostname, username, or OS account. This ban is absolute for every passively-collected event. The one carve-out is described next.
- Session replay or screen recordings. Sentry offers this as a product feature; Vibrai disables it at the SDK-configuration level, not just by leaving it unused.
- Set names and instrument tag strings — see the note above.
- Anything in a command argument or tool-call payload, other than the bare operation name itself.
vibrai feedback / submit_feedback: the one place you type something in
vibrai feedback (CLI) and submit_feedback (MCP) are a deliberate exception to “passively
collected,” because you’re explicitly typing something in order to send it. Scrubbing your
own message before sending it would make the feature a silent no-op, so:
Everything in that bundle other than your message and (optional) email still goes through the
same never-list scrubbing as passive telemetry — the exemption is narrowly scoped to the two
fields you explicitly typed.
Consent doesn’t gate feedback the way it gates passive telemetry. If consent is off, or you
pass
--no-send, the bundle is written to ~/.vibrai/feedback-<timestamp>.json instead of
being sent, and Vibrai prints the file path plus a GitHub issue URL so you can attach it by
hand. Feedback is never sent silently.
feedback (CLI) / submit_feedback (MCP).
Retention
Event and trace retention is governed by whichever Sentry.io plan tier Vibrai’s backend project is on at any given time — there’s no separate, custom retention configuration to audit. At the time this policy was written, the plan under consideration was Sentry’s Team tier, whose documented retention is 90 days; we’re recording that as the figure we were planning against, not as a contractual promise this page can guarantee going forward. If you need the authoritative current figure, ask us directly rather than relying on this paragraph to stay perfectly in sync with whatever plan is active.install_id: what it is and how to reset it
install_id is a randomly generated UUID, created the first time you run
vibrai telemetry enable and stored in ~/.vibrai/telemetry.json. It’s the one stable token
telemetry attaches to your data:
- It identifies an install of Vibrai, not a person.
- It’s scoped to this machine’s install — no cross-machine or cross-account linkage.
- You can reset it at any time by deleting
~/.vibrai/telemetry.json. The nextvibrai telemetry enablegenerates a fresh one, severing the link between past and future telemetry.
Controlling telemetry
Consent can only be granted or withdrawn from the CLI — enabling telemetry is a decision only a human should make, so no MCP tool can flip it. The MCP surface exposes a read-only status check instead.When disable takes effect
Immediately for everything that reads consent per use: every new vibrai CLI run, every call
Vibrai makes to the Live bridge (consent is re-checked per request, and the Max-for-Live device
is told to shut its own reporting down), and every vibrai feedback submission — which falls
back to writing a local file instead of sending.
The one exception is a Vibrai MCP server that is already running with telemetry active. It
initialized its crash reporter at startup, and nothing watches the consent file to tear that
down mid-process, so it keeps reporting until it restarts. Restart the MCP server (or the app
hosting it) if you want the change to apply there too.
status (both surfaces) reports two distinct facts: whether consent is recorded, and whether
telemetry is effectively sending anything (both gate keys satisfied). A user with consent on
but no configured VIBRAI_SENTRY_DSN is still sending zero bytes — status says so explicitly
rather than collapsing that into a bare “off.”
The very first time you run any vibrai CLI command, you’ll see a one-line disclosure on
stderr pointing back at this page — it’s informational only and never enables anything by
itself.
See the full parameter reference: telemetry (CLI) / telemetry_status (MCP).