Privacy
What Clone keeps and for how long: voice and dictation retention, secret redaction, audit records and where product data is stored.
This page describes how the product behaves, taken from Clone’s engineering documents. It is not the legal privacy policy, which has not been written yet. Each section names the documents its statements come from.
Placeholder, not page copy
[PLACEHOLDER for Justus: legal privacy policy text, controller identity, lawful basis, rights, data-subject request route, retention schedule as a legal commitment, contact, effective date and jurisdiction]
Clone is in development. Nothing customer-facing is generally available yet.
Voice conversations
Clone keeps a voice transcript as ordinary conversation messages, under the conversation’s own retention.
Its voice store keeps session metadata and usage: ids, times, turn count and character counts. It keeps no audio and no key, only the key’s SHA-256.
Voice starts only from an explicit person action, and the client says that ElevenLabs processes the audio.
Source: docs/voice.md
Voice audio and ElevenLabs
By default, ElevenLabs keeps agent conversations, transcripts and audio of both sides for two years. Clone’s voice setup, done once per environment in ElevenLabs, is to set record_voice: false, retention_days: 0 and delete_audio: true.
With those settings no audio is saved, and retention_days: 0 schedules deletion. For WebRTC sessions, Clone also deletes the conversation when the session ends. Signed-URL sessions rely on the retention setting alone.
Redaction of personal data in stored history is enterprise-only, and zero-retention mode depends on the plan. Neither is assumed.
Source: docs/voice.md
How long voice session data is kept
Clone prunes a voice session 90 days after it ended, or after it expired without an end. The session row, its turns and its attributed provider cost are deleted.
Their counts and credits are first added to a per-conversation total, so usage totals never shrink.
Open sessions and sessions inside those 90 days are never touched.
Source: docs/voice.md, crates/core/src/voice.rs
Dictation
The server transcribes dictation through OpenRouter with its own key, which never reaches the app. The text joins the conversation only when the person sends it.
Clone keeps a dictation and its segments (the transcribed text, hash, cost and latency per segment) for five weeks after its last write, then deletes them.
Dictation requests send provider.data_collection: "deny". EU in-region routing is not available for these models.
Source: docs/dictation.md, docs/voice.md, crates/core/src/dictation.rs
Recordings attached to a message
The server holds audio recordings attached to a person’s message. Incomplete uploads expire after 24 hours and their chunks are deleted.
A recording is kept for the conversation’s life, unless the server is configured to delete recordings older than a set number of days, from 1 to 3650.
Placeholder, not page copy
[PLACEHOLDER for Justus: conversation and message retention window]
Source: crates/core/src/bin/clone-api/audio.rs
Credentials and approval values
This is the current credentials design. No live vault adapter has been validated.
The design keeps a secret value out of transcripts and model context. Tool results show ‹filled› instead.
The computer driver is designed to mask password inputs and any field it just filled, blacking out the pixels before encoding. Autofilled text inside canvas or unmarked inputs is a known gap.
The design allows no plaintext on disk and no cross-restart cache. An optional in-memory cache lasts at most 60 seconds per binding.
A typed value bound to an approval lives only while that approval is pending or approved. It is sealed under the company’s key when one is configured, and it is deleted on denial, consumption or expiry.
Source: docs/credentials.md, crates/core/README.md
Credential audit and revocation records
Every credential resolve and denial is an append-only record with the reference, origin and decision. It holds no values.
A revoked grant stays listed for at least 30 days, and a company keeps its newest 100 revocations, whichever keeps more.
How long the Clone-side audit record is kept, and who may read it, is still an open question in the design.
Placeholder, not page copy
[PLACEHOLDER for Justus: audit-record retention and readership]
Source: docs/credentials.md, crates/credentials/src/grants.rs, crates/credentials/README.md
Connector sign-ins in progress
A pending connector authorization, and its single-use ID, is kept for 24 hours past its deadline and then pruned.
Source: crates/connectors/src/connect.rs
Where product data is stored
Clone’s accepted placement plan targets GCP Sydney (australia-southeast1) for Clone-owned backend services and for backend and user data, with approved external-provider exceptions.
External providers named on this page process some data: ElevenLabs processes voice audio, and the server transcribes dictation through OpenRouter.
The web app targets Cloudflare Workers, and R2 serves native and CLI release downloads only. Backups are deferred, and production placement remains separate work.
Placeholder, not page copy
[PLACEHOLDER for Justus: the approved external-provider exceptions and any subprocessor list]
Source: README.md, docs/voice.md, docs/dictation.md
Your controls today
A per-company voice setting to enable or disable voice and opt in to recordings is a follow-up. Until then, voice is enabled per server by configuration.
Voice chat uses ElevenLabs only and has no offline fallback.
Placeholder, not page copy
[PLACEHOLDER for Justus: describe available data-subject controls, or state plainly that they are not available yet]
Source: docs/voice.md
Contact
Placeholder, not page copy
[PLACEHOLDER for Justus: privacy contact address]
Placeholder, not page copy
[PLACEHOLDER for Justus: analytics and cookies disclosure, only if the policy text requires one]