Privacy Policy

Last updated: 2026-10-14

In one sentence

Klaus's agent runs on your own computer. Your conversations, attachments, generated files, skills and memories are all stored locally and are not uploaded to Klaus servers. The server keeps only the minimum needed to sign you in, to connect your own phone to your own computer, and to provide the account features you enable.

We integrate no third-party analytics, advertising or crash-reporting service, and neither the portal nor the web app loads any external script.

What we collect

When you register

  • Email address (required)
  • Display name (required)
  • Password, stored as a salted scrypt hash — we cannot see the original and never store it in plain text
  • The invitation code used to register, if you registered by invitation

You can also sign in with a Google or GitHub account. In that case we store the account identifier returned by that provider so we can recognise you later; you can unlink it in the account center, but at least one sign-in method is always kept.

Sign-in and devices

  • Web session tokens, plus that session's IP address and browser User-Agent (used to list your sign-ins in the account center)
  • Desktop / CLI access tokens with device information, creation time and last-used time
  • Mobile push registrations: APNs device token, install identifier, push environment (production or sandbox), language preference
  • Registration details and last-online time for the desktop devices connected to your account

Historical billing records

Previously recorded model usage and costs are retained only for historical billing reconciliation. Current model requests go directly from your computer to the provider you choose, and Klaus records no new model usage. Historical records contain no prompts or model replies.

When you use your own model sources (Claude / Codex / Qoder subscriptions, a custom API key, or a local model), requests go directly from your computer to that provider. Klaus is not on that path and neither meters nor limits it.

What we do not collect today

  • No third-party analytics, ad tracking or crash-reporting SDK
  • The portal and web app use no localStorage and load no external script or font CDN
  • We keep a first-party crash-reporting channel, but no client calls it today; if it is ever enabled it will report only to our own servers and never to a third party

What stays on your computer

The following exist only on your own device; Klaus servers keep no copy:

  • Conversation and task records (stored in local session files)
  • Attachments you send, and generated images, videos and other artifacts
  • Skills, plugins, hooks, MCP configuration and trust settings
  • Agent memory
  • Your model credentials (subscription tokens, API keys)

Mobile remote control works like this: your phone sends a request through the server to your own computer, and the computer's reply travels back the same way. The server only relays in real time and never writes conversation content to disk, and it does not record message bodies while relaying. Phone and computer must be signed in to the same account, and ownership is re-verified on every relayed frame.

The desktop app and the terminal share one local configuration and memory. That is local file sharing, not server synchronisation.

Cross-account forwarding

When you deliberately enable cross-account features, the relevant content leaves your computer:

  • When you deliberately enable cross-account collaboration or friend messaging, the relevant content (for example the task description and the sender's display name) is forwarded to the other party. These features are off by default, require authorisation on both sides, and the server relays without storing.

How long we keep it

DataRetention
Web sign-in sessionsExpire after 7 days; an expired session is deleted the next time it is validated
Desktop / CLI sign-in codes5 minutes, single use
Desktop / CLI access tokensNo expiry, until you revoke them in the account center or the account is deactivated
Push events and delivery recordsExpire after 1 hour; expired events are no longer delivered
Push registrations (APNs tokens)Up to 10 installs per account; older registrations beyond that are deleted. A registration not updated for 30 days is no longer used for lookups
Account profileKept indefinitely, until you ask for the account to be deleted

One thing worth stating plainly: expired data is mostly deleted at the next validation or related operation, and we run no separate scheduled cleanup job. An expired web-session record can therefore remain in the database until it is validated again.

Who can see it

  • You: in the account center you can view and revoke web sessions, desktop / CLI authorisations, connected devices and usage statistics. Tokens are shown only as truncated hashes; the original value is never echoed back.
  • Your other devices on the same account: for example your phone can read sessions on your own computer, provided both are signed in to the same account and the device-ownership check passes.
  • Collaboration project members: only after you deliberately enable team collaboration, discussions and files inside a project are visible to its members. The feature is off for everyone by default.
  • Klaus operators: to provide support and maintenance, operators may access account records, feedback content and server-side logs to the extent necessary.

At the database layer, every per-user table has row-level security enabled, and application code accesses data by setting a user scope rather than relying on hand-written filter conditions.

How you can manage it

These are things you can do yourself right now:

  • Revoke any web session in the account center, or revoke every session except the current one at once
  • Revoke a desktop / CLI access token (which also removes the device and push registrations tied to that token)
  • Sign out on the desktop app or on your phone
  • Unlink a Google / GitHub sign-in method
  • Remove a push registration on your phone, or remove a connected device on the desktop app
  • Change your avatar (the old avatar file is deleted)
  • Clear local data on the desktop app, deleting the local settings database, sessions, transcripts and uploaded files
  • Reset your password (which also revokes all of your web sessions)

Account deletion and data export

There is currently no self-service account deletion or personal-data export. To delete your account or your data, write to support@klaus-ai.cn and we will handle it. At the schema level the account tables are configured for cascading deletion, so related data is removed together with the account record.

Cookies

The web app uses exactly one necessary sign-in session cookie, to keep you signed in. It is set HttpOnly and SameSite=Lax, with Secure added over HTTPS. We do not use cookies for advertising or cross-site tracking, and the cookie is cleared when you sign out.

Security measures

  • Passwords use Node.js's built-in scrypt with a salt, at parameters taken from OWASP recommendations; verification uses a constant-time comparison to avoid timing side channels
  • Failed sign-ins are rate-limited, and exceeding the limit locks the account for a period
  • Account access tokens are protected by server-side permission checks; model credentials stay on your own device

No transmission over the internet can be guaranteed absolutely secure. If you find a security problem, write to support@klaus-ai.cn.

Minors

Klaus is built for development and work, not for children. We do not knowingly collect personal information from minors. If you are a minor, please use it with a guardian's consent and supervision.

Policy updates

We update this page when product behaviour changes. The page shows the date of the latest update; significant changes are also described in the changelog.

Contact us

For any privacy question, or to request account deletion or data removal, write to support@klaus-ai.cn.

ICP filing: 豫ICP备2026043342号。