Privacy
LyricLint is local-first. Your transcriptions are stored in this browser, autosave to this browser, and are never sent to a LyricLint server — there is no account and no backend for drafts. A few optional features contact a third party, each one only when you ask for it. This page lists all of them.
What stays local
- Every 'scribe, its performers, its line timings, and its section links.
- Audio files: only a file handle is kept, never the bytes, and never uploaded.
- Linting, including the Harper proofreader, which runs entirely in your browser.
- Rules-assistant conversations: they are stored in this browser and nowhere else.
What the rules assistant transmits
The assistant answers questions about the transcription guidelines. When you press Ask, the question you typed — plus the recent turns of that same conversation, up to a bounded window — is sent to LyricLint's answering service, a Cloudflare Worker, which forwards it to OpenAI's API through Cloudflare AI Gateway. Nothing else is sent:
- Your draft is never transmitted. The assistant cannot see it and will say so if asked.
- Only text you type into the assistant's own composer leaves the browser.
- Requests are sent with
store: false, and request and response payload logging is disabled at the gateway. LyricLint authenticates to OpenAI with its own project API key; Cloudflare does not supply or bill the model. Cloudflare may retain an exact model response in its response cache for up to one hour. Its cache key includes the complete request and a session-derived identifier, preventing a cached answer from being served to another anonymous session. OpenAI prompt caching may temporarily retain model-internal cache tensors for the reviewed rules prefix. OpenAI's API data-retention terms still apply. LyricLint retains operational metadata only — status, latency, token counts, request id, and hashed abuse identifiers.
Anonymous sessions and abuse control
- The first question asks for a Cloudflare Turnstile check, after which the service sets an anonymous, signed, host-only session cookie valid for 24 hours. It identifies a browser session, not a person, and there is no account behind it.
- Rate limits are enforced per browser session and per IP address. IP addresses are hashed with a server-side secret before they are stored or counted; raw IP addresses are never logged. Rate-accounting records expire after 48 hours.
Subprocessors
- Cloudflare (hosting, AI Gateway, Turnstile) processes assistant requests.
- OpenAI generates assistant answers from the text the service forwards.
- Attaching audio from YouTube, Spotify, or Apple Music loads that provider's player, per session, only after you choose it — exactly as before the assistant existed.
Deleting your data
Assistant conversations can be deleted one at a time inside the assistant, and Delete all local data in the workbench's Tools panel removes every 'scribe and every conversation from this browser. The workspace backup exports transcriptions only — chat history is never part of a backup file.
Questions about any of this are welcome — the whole workbench is documented in the open.