sidekar
Home Docs Extension
Sign in

Privacy Policy

Last updated: October 26, 2026

Overview

Sidekar is local-first. The sidekar binary runs on your machine, and browser automation, desktop automation, the local agent bus, secrets, memory and the local portal work without a network connection or an account. Sidekar sends no analytics, telemetry or crash reports.

Signing in (sidekar device login) turns on the features that go through our servers: syncing between your machines, the web portal at sidekar.dev (sessions, chat, vault, devices), the relay, and linked accounts. This page lists what each of them sends and stores.

What the CLI sends

Requests the CLI makes to sidekar.dev or relay.sidekar.dev carry its version number. When a request authenticates your device, we update its entry with the reported version.

  • Update check: while auto_update is on (the default, signed in or not), the background daemon asks sidekar.dev/v1/version once an hour for the latest version, sending only your current version number. Updates download from sidekar.dev. Turn it off with sidekar config set auto_update false; sidekar update does the same check by hand.
  • Sign-in: sidekar device login sends your hostname and your device's public-key fingerprints, then the hostname, operating system, CPU type and Sidekar version once approved. The device token it receives is stored in ~/.sidekar/sidekar.sqlite3; we keep only its hash.
  • The daemon's relay link: while you are signed in, the daemon holds a connection to relay.sidekar.dev (unless relay is set to off). It sends your hostname, Sidekar version and the device's public keys, so your other machines and the web portal can reach it: signed remote commands from the chat page (while remote_control is on, the default) and a linked account's requests for secrets you shared. The relay records the machine as online while the link is up. Every 60 seconds the daemon also registers the local port of its browser-extension bridge, so the extension can find it.
  • Sync: a signed-in machine syncs your kv secrets (values and tags), TOTP and HOTP entries, memory, and the cross-machine agent bus through sidekar.dev, encrypted with AES-256-GCM under your account's key. sidekar.dev holds that key, which is what lets a new machine sign in and read your secrets. Synced records are stored and transferred as ciphertext, but the server can decrypt them. Stored next to each encrypted record, in plaintext, are its kind, version and name: a kv entry's key name, a TOTP entry's issuer and account, an agent's name. Copies of secrets you share with a linked account are sealed to that account's devices, and the server cannot open them. Live requests to a linked account can also return secret values, provider credentials or one-time codes through the relay; these responses are readable by the relay.
  • Relay sessions: when you run an agent with --relay (or relay is on), its terminal streams through the relay so you can watch and type into it from sidekar.dev. The session's name, agent type, working directory, hostname and nickname are stored while it runs and deleted when it disconnects. The terminal output passes through the relay, which keeps the most recent part of it (up to 512 KiB) in memory for viewers who join later; it is not written to our database. Messages sent over the relay's bus are held in plaintext until delivered, for at most a few minutes.
  • Reports: sidekar report runs only when you or your agent run it. It sends the text written for it (up to 8,000 characters), an area, the Sidekar version, operating system, CPU type and agent name; we add your account, device and hostname, and keep it to triage. Do not put secrets in a report.
  • Services you connect: model providers, Google Workspace, Slack, Linear and other APIs you use through Sidekar are called directly from your machine with your own credentials. Their data does not pass through our servers.

The website

sidekar.dev sets two cookies, both only when you sign in: sidekar_session (your sign-in, HttpOnly, for up to 30 days) and sidekar_oauth_state (a 10-minute check during a GitHub or Google sign-in). It stores your light or dark theme in your browser's local storage, and the chat page keeps a signing key in your browser (IndexedDB) that cannot be read out of it. Pages load fonts from Google Fonts, and the web terminal loads its terminal library from jsDelivr. There are no analytics, advertising or tracking scripts.

What we store

  • Your account: from GitHub, your user id, username, name, email and avatar; from Google, your account id, name, verified email and avatar. We do not store the providers' access tokens.
  • Your devices: each machine's hostname, name, operating system, CPU type, Sidekar version, last-seen time and public keys, and a hash of its token. Each browser that uses the chat page is listed as a device too, labelled with the start of its user-agent string. While a new machine is being approved, its pending request records the IP address it came from (for at most 15 minutes). For extension sign-ins, we store token hashes, your account id and creation times.
  • Your encryption key and synced records, as described under Sync. Deleted entries leave a marker so your other machines remove them too.
  • Activity logs, kept for 180 days: values revealed or changed in the vault (which entry, never the value), signed remote commands (the command, session, folder, and the length and a hash of any text, never the text), device approvals, enrollments and removals, and linked-account secret copies served (account, device, hostname and secret name, never the value). Vault, remote-command and device logs record the IP address; vault and device logs also record the browser's user agent.
  • Linked accounts: who you linked with and which scopes you granted, until you revoke them; invite codes expire after 15 minutes.
  • Telegram and Slack: if you link a session to a Telegram chat or a Slack channel, we keep the chat or channel id, the user ids allowed to use it, and the session it is linked to. The session's terminal output is sent to that chat or channel, and replies there are typed into the session. Telegram and Slack handle those messages under their own policies.
  • Reports you send with sidekar report.

We do not sell or share this data, or use it for anything other than running Sidekar. To have your account and its data deleted, email us at the address below.

Chrome extension

The extension lets your agents work in your everyday Chrome profile. It uses sidekar.dev for sign-in and local daemon port discovery, and sends browser commands and captured page data to the daemon on 127.0.0.1. It sends nothing about the pages you visit to our servers.

On pages where it can run, by default, it records network requests (fetch, XHR and server-sent events): addresses, methods, status, timing, request headers and response-body previews. It masks selected sensitive headers and common token patterns in response previews, which are truncated to 65,536 characters. URLs, URL-encoded request data and individual server-sent-event chunks are forwarded without this masking; the response-preview limit does not apply to those chunks. These go only to your local daemon, which keeps the most recent 2,000 events per extension connection in memory so your agent can inspect a page's traffic; the daemon can switch this off.

When asked, it also gives the daemon your open tabs, up to 15 recently visited pages from the past hour for context, or a search of your entire saved browsing history (up to 25 results per ext history search). It reads a page's content, takes screenshots or acts on a page when your local Sidekar sends it a command. It asks for access to all sites so your agents can work on any page you point them at.

On your machine

Sidekar keeps its data in ~/.sidekar/: sidekar.sqlite3 (configuration, your device token, secrets, TOTP entries, memory, the local bus and event log, and captured model traffic when you turn on --proxy), browser profiles under profiles/, session logs under s/, the daemon's log, environment file and keys, and the local portal's access token. Temporary files start with sidekar-.

The extension stores its sign-in token, profile details and installation id in Chrome's local extension storage.

Third-party services

  • Vercel: hosts sidekar.dev, its API and the downloads.
  • MongoDB Atlas: the database for the data listed above.
  • Fly.io: runs the relay.
  • GitHub and Google: sign-in. Google Fonts serves the site's fonts.
  • jsDelivr: serves the web terminal's terminal library.
  • Telegram and Slack: only if you link a session to them.

Sidekar uses no analytics, advertising or data-collection services.

Contact

Questions about this policy, or a request to delete your account: hello@kilospark.com

© 2026 Kilo Spark
  • Terms
  • Privacy