Privacy Policy

Last updated September 28, 2026 · Beta policy

What we store

  • Account data — your email, password hash (email sign-ins), and the identity your OAuth provider shares (GitHub, Google, or Linear login and email). When you sign in through one of them we also keep the access token it gives us, which we use to suggest the people you work with there when you name reviewers. It is encrypted at rest, and deleted when you sign out. If you turn on two-factor sign-in, we keep the secret your authenticator app shares with us, encrypted, and your recovery codes only as hashes.
  • Emailed codes — while a code we emailed is waiting to be used, we keep the address it went to, a hash of the code, and what using it will finish: the hash of the password you chose, or the identity your sign-in provider handed us, with its access token encrypted. It is deleted when the code is used, and otherwise within a few hours of the last code we sent.
  • Beta access requests — if you ask for private-beta access before you have an account, we keep what that form collects: your email, plus any name, company, role or note you add, until the request is decided or an account is made with that email, and then within the hour.
  • Organization data — members, roles, invites, projects, and the configuration of everything your org connects. Every credential in that list — the access tokens a connector's OAuth flow returns, git push tokens, model-provider keys, and anything you save under Settings → Secrets — is encrypted at rest, and decrypted only when a run needs it. An invitation, with the address it went to, is deleted once it is accepted or revoked, and otherwise within an hour of running out, a week after it was sent.
  • Run data — tasks, runs, phase transcripts, events, check output, and published artifacts, so you can review them later.
  • Devices — if you use the phone app, one push token per phone per organization, so a gate can reach you. It is removed when you sign out of that phone, and when the token stops delivering.
  • Your session — kept differently on each surface: the website uses HttpOnly cookies — one for the account in front, one listing each account signed in on that browser, a ten-minute one while a "sign in with" round-trip is in flight, and a half-hour one while an emailed sign-up code is waiting — the desktop app uses your OS keychain, and the phone app uses the device's secure storage. No advertising trackers, no third-party analytics scripts.
  • Where you sign in from — each session keeps the IP address and the browser or app it signed in from. It is deleted when you sign out of it, and otherwise within an hour of it expiring, 30 days after you signed in. The same two are written beside each entry in your account's log of sign-ins and changes, which only you can read, and in your organization's audit log, which the people its owner lets read the audit log can read and export.

Your code

A run needs your code, so it clones your repository into an isolated container on our infrastructure, works there, and pushes to a branch in your repository. The container is destroyed when the run ends, and so is any workspace it kept between steps, unless the run failed or is waiting on you: then the workspace stays for a retry to pick up, until the run finishes or is cancelled, or its project or organization is deleted.

Two more copies can exist. If a project's wiki is in use, this host keeps a copy of its repository to read the pages from, and removes it when the project or its organization is deleted. And a mini app runs from a build of the code it was deployed from. The diffs you review are read back from your repository on demand.

What does persist is the run's record, and that is worth being exact about: transcripts, events and check output quote whatever the agent printed, which routinely includes file contents and diffs. If a workflow uses a preview step, the build it serves is reachable at an unlisted URL for as long as that preview is held open — it isn't behind your session, so treat the URL as the only thing guarding it.

What we don't do

  • We don't sell your data or share it with advertisers.
  • We don't train models on your code or transcripts.
  • We don't read your repositories beyond what a run you started needs.

Third parties

Runs call the model provider you configured (Anthropic, OpenAI) with the prompts your workflow builds — your code travels inside those prompts, and their terms govern that traffic. Tracker and notifier connectors exchange data with the services you connect (GitHub, Linear, Jira, GitLab, Notion, Slack, Discord, …) on your org's behalf.

Four more sit on our side of the line: Apple delivers push notifications to iPhones and iPads, and Google to Android phones, so a device token and each notification's title and body pass through them; Resend sends account and invite email; and Peractor Cloud runs on DigitalOcean.

Deletion

An organization's owner can delete it from its settings, and you can delete your account from yours — which also deletes any organization you are the only member of. Deleting an organization deletes its members and invites, projects, runs, tasks and plans, its mini apps and everything written into them, its connections and stored credentials, and its usage. Anything it has running is stopped first: its runs are cancelled and the machines working on them told to stop, and nothing they report afterwards is kept; its apps and previews are stopped; and the copies of its repositories this host keeps for its wiki are removed, with the keys they were fetched with. From the moment the deletion begins, nothing new can be started in it or filed into it, and nothing still on its way to it, such as a file partway through uploading, is kept.

If the organization pays for a plan, deleting it cancels the subscription there and then, so it never renews; what was already paid for the current period isn't refunded. And if the subscription can't be cancelled at that moment, the organization isn't deleted either — it can't be left paying for something that no longer exists.

Three things are handled differently, on purpose. The organization's audit log is kept for up to 90 days after it is deleted, so there is a record of what happened if anyone needs to ask. If another organization lent it a machine, the record of that lease stays in the lender's ledger. And packs it published are withdrawn from the marketplace, while organizations that already installed one keep their copy.

Deleting your account deletes your sign-ins, sessions and devices, your notifications and their settings, the access you gave other apps, your conversations with the assistant and the files you sent in them, and anything you kept to yourself in an organization's apps. What you added to an organization you leave, like its tasks, comments and runs, or a file you attached to one of those, stays with that organization. Your account's own log of sign-ins and changes is kept for a year, so a sign-in you didn't make can still be looked into.

Someone allowed to manage a project in an organization can also delete it. That deletes the project's tasks, runs and plans, the comments and history in them, its settings and workflows, the notifications about it, and the files only those held. Its runs are stopped first, the previews of them stopped, and the copy of its repository this host keeps for its wiki is removed. A conversation you had with the assistant in it stays yours, and nothing is deleted in a tracker it synced with, like GitHub or Linear.

Deleting a comment, a task or a conversation with the assistant deletes the files attached to it, and a task takes its comments, its history and the notifications about it with it. A file something else still uses stays until that goes too: a run started from a task keeps the task's files, and a run is kept for as long as its project is. Files attached before we began keeping track of what each one belongs to stay until their organization is deleted.

If you would rather we did it, ask via GitHub.