Privacy Policy
Last updated: October 26, 2026 | Effective: July 30, 2026
1. Data Controller
crewkit is operated by:
Karibew Inc. acts in two roles. For account and security data (your account, sign-in, billing, and security records), Karibew is the controller. For the content an organization brings into crewkit (its sessions, cloud jobs, uploaded documents, agent messages, and what is derived from them), the organization is the controller and Karibew is its processor, acting on the organization's instructions and under its own settings, such as its retention period. Questions or requests about that content may also be directed to your organization.
This Privacy Policy describes how we collect, use, and protect your information when you use crewkit services. It applies to our website, dashboard, API, and CLI. By using crewkit, you agree to the practices described in this policy and our Terms of Service.
2. Information We Collect
We collect information you provide directly to us, including:
- Account Information: Email address, name, organization details
- Usage Data: Agent configurations, experiment results, session logs, each session's permission mode
- Technical Data: IP addresses, browser type, device information
- Project Data: Git repository information, project metadata
- Payment Data: Billing details processed securely through Stripe (we do not store full card numbers)
3. CLI Data Collection
When you use the crewkit CLI, we collect additional data to provide analytics and improve the service:
- Session Telemetry: Token counts (input/output), estimated costs, session duration, agent used, outcome status, the CLI version and launch mode used to start the session, and basic environment details (operating system, architecture, shell, terminal, machine hostname)
- Session Files: JSONL session files may be uploaded to provide session history and analytics features
- Error Reports: Crash reports and error details are sent to our error tracking service (Sentry) to help us fix bugs
- Git Metadata: Repository remote URL and branch information for project detection (not repository contents)
LLM Gateway (Optional): If enabled by your organization, the LLM Gateway feature routes AI requests through our servers. When active, prompts and responses are processed by both crewkit and Anthropic for cost tracking and analytics. This feature is opt-in and disabled by default. When enabled, data is subject to both this Privacy Policy and Anthropic's Privacy Policy.
4. Legal Basis for Processing
We process your personal data under the following legal bases (GDPR Article 6):
| Data Category | Legal Basis |
|---|---|
| Account information | Contractual necessity (to provide the service) |
| Session telemetry & analytics | Contractual necessity (core service feature) |
| JSONL session files | Legitimate interest (session history and analytics) — enabled by default, can be disabled per organization |
| Error reports (Sentry) | Legitimate interest (service reliability) |
| Technical/device data | Legitimate interest (security, fraud prevention) |
| Payment data | Contractual necessity (billing) |
| LLM Gateway data | Consent (opt-in feature, disabled by default) |
| Marketing communications | Consent (opt-in) |
5. How We Use Your Information
We use collected information to:
- Provide, maintain, and improve crewkit services
- Process transactions and send related information
- Send technical notices, updates, and support messages
- Monitor and analyze usage patterns and trends
- Calculate and display cost analytics and session metrics
- Detect, prevent, and address technical issues and security threats
6. Subprocessors and Third Parties
We use the following third-party services to process your data:
| Provider | Purpose | Location |
|---|---|---|
| Anthropic | AI model provider (LLM Gateway, session analysis) | USA |
| Voyage AI | Embedding provider (semantic search over sessions and uploaded documents) | USA |
| DigitalOcean | Application hosting, database, and object storage (Spaces) holding session-derived documents indexed for search | USA |
| Vercel | Static hosting of the Asks pages (asks.crewkit.io); it serves files only and never receives a token, question, or answer | USA (global edge network) |
| SendGrid (Twilio) | Outbound email (sign-in links, notifications) and inbound email to agent identities | USA |
| Sentry | Error reports, filtered to remove personal information before they are sent | USA |
| Cloudflare | Proxy and TLS for crewkit's domains (DNS, CDN, DDoS protection) | USA |
| ElevenLabs | Notetaker cloud transcription, only when an organization turns it on | USA |
| Slack | Messages sent to an agent identity's Slack handle; alert posts to a Slack webhook an organization admin configures; and Slack discussions, where crewkit posts a Claude session's messages into your organization's Slack thread and receives the replies (see Slack discussions below) | USA, or the data region your workspace is set to in Slack |
| Sign-in with Google, and Google Drive import when a user connects it | USA | |
| Stripe | Payment processing | USA |
| GitHub | Sign-in, git integration, OAuth, CLI distribution | USA |
| GitLab (gitlab.com) | Cloud jobs on a linked GitLab repository: receives the job's repository changes (its crewkit/ branch) and the merge-request text crewkit writes, including the requester's display name (never an email address); and, for GitLab one-click connect, the requests described below | USA |
| PostHog | Product analytics and usage tracking | USA / EU |
| ipapi.co | IP geolocation for analytics | EU |
Sign-in with Google or GitHub: If you choose one of these methods, Google or GitHub receives your request to sign in to crewkit. crewkit receives the provider's standard profile and keeps only the fields needed for your account and sign-in link: from Google, your account subject ID, email, and name; from GitHub, your numeric account ID, primary email, and username (used as your display name). Google's profile can also include a picture, given and family names, locale, and hosted domain (hd). We use its email-verified flag and hosted-domain claim to decide whether Google currently hosts your mailbox; we do not keep the remaining profile fields. GitHub also supplies your email verification status, which we read for sign-in. These checks determine whether we need a separate email link to prove mailbox ownership. After the GitHub profile and email reads, the access token is revoked, or at minimum discarded; never stored.
GitLab one-click connect
An organization admin can connect a GitLab group, at any level, by signing in to GitLab once as an Owner of that group: directly, through a parent group, or through a group invited to it. GitLab's consent screen asks the Owner to let crewkit Access the API on your behalf (scope api): complete read and write access to all groups and projects the Owner's account can reach.
While crewkit holds the sign-in token, it uses it for this connection only, to:
- check which access GitLab granted;
- read the Owner's GitLab user and membership of the group, to check that they are its Owner, and read its parent groups;
- if the path the admin named is not a group, look it up as a project;
- create one service account in that group, which can be added only to that group and the groups and projects below it, and delete any leftover service account crewkit created there in an earlier connect that failed part-way; if this connect fails part-way, crewkit deletes the account it just created;
- list the group's service accounts, to find the one it just created if GitLab's reply to the create was lost;
- mint that account's token, scope
api, and store it encrypted; - list the projects in the group and its subgroups, and their default-branch rules, for the picker;
- add the account as Maintainer to the projects the admin picks, and no others;
- protect the default branch of each project where the admin ticks it, so humans can no longer push to it.
crewkit records who connected the group (their crewkit account and their GitLab user id) for as long as the connection exists, and removes both when that person's crewkit account is erased.
An admin gives the same sign-in again for three later steps, and crewkit uses it for that step only: to add projects (on a service account crewkit created, it also revokes every other token on it except the one crewkit uses); to reconnect a group whose token stopped working (it mints a new token for the same service account and revokes the old one); and, on disconnect, to remove a service account crewkit created (it revokes the account's tokens and deletes the account, keeping the merge requests it authored). Branch protection is never changed by a disconnect.
The Owner's sign-in token is held encrypted for at most 10 minutes, until the admin submits the project list, then revoked, and never stored beyond that. A token nobody used within the 10 minutes is revoked by a sweep that runs every 2 minutes. A revoke GitLab refuses is recorded as a critical security event. The authorization the Owner gave crewkit's GitLab application stays on their GitLab account until they revoke it there, under Applications in their GitLab user settings; revoking the token does not remove it.
A group connected earlier with a service account token an admin pasted keeps working, and an admin can disconnect it.
Slack discussions
Slack discussions are off until an organization admin turns them on. Members then start a discussion in a thread of a Slack channel crewkit's app is in. A member's session joins only when that member allows it. In Claude's asking modes the member, in their own session, confirms before their Claude AI session (Anthropic's Claude) joins. A session the member runs in a mode that asks nothing (auto or bypass permissions), or in which they pre-approved crewkit's tools, joins and posts without asking. crewkit shows that member a risk notice in their own session, because the thread's replies then reach an agent that runs tools without asking. crewkit's client tries to stop such a session after four messages in a row until a person replies, and to refuse a message that looks like it holds a secret; these are safeguards, not guarantees. crewkit posts the joined sessions' messages in that thread as crewkit's app, and relays the replies people write in the thread back to the sessions, including replies from people in the channel who do not use crewkit. Slack discussions are never available to a data-resident organization, in a channel shared with another organization, or from a session started as sensitive.
For each reply, crewkit keeps the text of the reply, encrypted, and the writer's Slack user id and display name in plain columns, with the channel and thread ids. It keeps the messages it posted too. When crewkit cannot confirm that its opening post for a discussion reached Slack, it reads that channel's top-level messages from two seconds before the discussion was created to about a minute after it, to find its own post. It reads at most four pages of 15 messages, and no more than one page a minute for each Slack workspace. It keeps only that post's timestamp and, between pages, Slack's paging cursor, discarded when the lookup ends. It stores nothing else from any message. Under minimal capture, crewkit keeps no text or display name of a reply and no text of its own posts, and saves no document. Otherwise, when a discussion ends, crewkit saves the thread as a document in each project that had a session in it, and the document informs later work only after a member confirms it. The saved thread is analysed and indexed when it is saved, by Anthropic and Voyage AI under your organization's settings for sending content to them, before anyone confirms it. These records are deleted at the end of your organization's own retention period (see section 12). For each session that joins a discussion, crewkit also keeps how the member allowed the join (a prompt, a typed token, or their permission mode), that mode, and the version of the risk notice shown, as evidence of how the join was allowed. Only crewkit's operators can see this record; crewkit does not show it in the dashboard or return it from its API. It is kept for the life of the member's crewkit account or of the organization, and deleted with whichever ends first. A session's permission mode is also part of its usage data (section 2).
crewkit keeps a record of each Slack discussion's thread ids, and of each erasure by Slack id, for as long as the organization exists. They hold ids and times only, and they keep an erasure effective: a reply that arrives later in a deleted thread is not filed, and a reply from an erased person is erased as it arrives. When a member disconnects Slack, crewkit keeps their Slack user id and workspace id, with no name and no messages, until they delete their crewkit account.
An organization admin can ask crewkit to erase a person by their Slack user id, and deleting a crewkit account does the same for each Slack account it held. crewkit then erases every copy of that person's replies crewkit can identify, including the sessions that received them and the saved documents, and asks Slack to delete the messages crewkit posted for an erased crewkit user. Slack keeps what is posted in your workspace under your workspace's own settings, and crewkit cannot recall a message from Slack other than by deleting its own posts.
Feedback
Where crewkit's Feedback panel is enabled, a visitor can send feedback from the page they are on. It sends the message, an optional name and email, the page's path, the window's size, the language and the release of the app to the crewkit API. Where the panel is not enabled, nothing is sent. The panel also keeps the corner its launcher was dragged to in the visitor's browser (local storage, underckfb-position); that value holds no personal data and is never sent.
Subprocessor updates: We will update this list when adding or changing subprocessors. Subscribe to subprocessor change notifications by emailing privacy@crewkit.io with the subject line "Subscribe: Subprocessor Updates."
We are finalizing a data processing agreement (DPA) for organizations that use crewkit as their processor. To receive it when it is ready, contact us at privacy@crewkit.io.
7. International Data Transfers
crewkit is operated from Quebec, Canada. Our subprocessors are primarily located in the United States, so your data will be transferred to and processed in the United States and other countries where our subprocessors operate.
For transfers of personal data from the European Economic Area (EEA), United Kingdom (UK), or Switzerland to the United States, we rely on standard contractual clauses.
By using crewkit, you consent to the transfer of your information to the United States and other countries as described above.
8. Information Sharing and Disclosure
We do not sell your personal information. We may share information:
- With your consent: When you explicitly authorize sharing
- Within your organization: With team members in your organization as determined by your admin's settings
- Service providers: Third parties listed in our subprocessor list who perform services on our behalf, under contractual obligations to protect your data
- Legal requirements: When required by law, regulation, or legal process, or to protect the rights, safety, or property of crewkit, our users, or the public
- Business transfers: In connection with a merger, acquisition, or sale of assets, with notice to affected users
9. Data Security
We implement appropriate technical and organizational measures to protect your information:
- Encryption in transit (TLS)
- Encryption at rest for our database, which runs on DigitalOcean managed PostgreSQL; credentials and tokens crewkit stores (such as connected-service tokens and webhook URLs) are also encrypted by the application
- Human review of every code change, and automated security tests (tenant isolation, token scope, webhook signatures) and static analysis that run on every change
- Access controls and authentication requirements
However, no method of transmission over the Internet is 100% secure. We cannot guarantee absolute security.
10. Your Privacy Controls
You have control over what data is collected by crewkit:
- Privacy Mode: Enable privacy mode in your organization settings to prevent logging of prompts and responses. Metrics like token counts, costs, and session duration are still collected to power analytics features.
- LLM Gateway: This feature is opt-in and must be explicitly enabled by your organization admin. When disabled, no prompts or responses are routed through crewkit servers.
Note: These settings only affect data collected by crewkit. Claude Code has its own telemetry which is governed by Anthropic's privacy policy.
11. Cookies and Tracking Technologies
We use cookies and similar technologies to:
- Essential cookies: Maintain your session and authentication state (required for service functionality)
- Preference cookies: Remember your settings and preferences
- Analytics cookies: Analyze site traffic and usage patterns to improve the service
You can control non-essential cookies through your browser settings. Disabling essential cookies may prevent you from using the service. We do not use third-party advertising cookies.
12. Data Retention
We retain your information for as long as your account is active or as needed to provide services:
- Session telemetry: Retained for 365 days by default, configurable per organization down to a 7-day minimum
- Error reports (Sentry): Retained for 90 days
- Account data: Retained until account deletion
- Acceptable-use policy consent: The record that you accepted our acceptable-use policy is kept for 3 years after your account is deleted. It holds the policy version, the language you read it in, a fingerprint of the exact wording shown, the time you accepted, and the machine name, crewkit version and IP address recorded at that moment. Your name, email address and user account are not part of the retained record.
- Code-host job-credential audit: Each time crewkit issues a short-lived credential for a cloud job (a GitHub App token, or a GitLab deploy token or deploy key) and each time it revokes one, we record the code host, the connection and repository ids it covered, what it was for and with which permissions, when it expires, the code host's id for it, the job it served, the orchestrator worker it was issued to, the internal id of the account that requested it, and a one-way fingerprint of the token. The record never holds the token or key, a login, email address, name or IP address. We keep it as a security audit, so that a leaked or misused credential can be traced to the mint that issued it. It is kept for 13 months, then deleted; if you delete your account, the record stays with your organization and your account id is removed from it.
- Payment records: Retained as required by applicable tax and financial regulations
You may request deletion of your data by contacting us. We will process deletion requests within 30 days. Some information may be retained where required by law or for legitimate business purposes (e.g., fraud prevention, financial records).
What survives an account deletion, and why. When you delete your account, your organization keeps the work records created while you were a member — they are that organization's business records, and your name is removed from them. Because those records remain, we also keep the evidence that they were created under an accepted acceptable-use policy: the consent record described above. We rely on this only to establish, exercise or defend legal claims (GDPR Art. 17(3)(e); Loi 25). It is not used for any other purpose, it is never used to contact you, and it is deleted automatically 3 years after your account is.
13. Children's Privacy
crewkit is designed for professional use by software developers and engineering teams. Our services are not directed at individuals under 18 years of age, and we do not knowingly collect personal information from children.
If we become aware that we have collected personal information from a child under 18, we will take steps to delete that information promptly. If you believe a child has provided us with personal data, please contact us at privacy@crewkit.io.
14. Your Rights and Choices
Depending on your jurisdiction, you may have the following rights regarding your personal data:
- Access: Request a copy of the personal data we hold about you
- Rectification: Correct inaccurate or incomplete data
- Erasure: Request deletion of your personal data. One record is kept after deletion — your acceptable-use policy consent — for the reason and the period set out in section 12. A merge request crewkit opened on gitlab.com for your cloud job, and the text it carries (including your display name), lives in your organization's GitLab project: erasure does not recall it from gitlab.com, and your organization's GitLab administrators can edit or delete it there.
- Restriction: Request that we limit processing of your data
- Portability: Receive your data in a structured, machine-readable format
- Objection: Object to processing based on legitimate interest
- Withdraw consent: Where processing is based on consent, withdraw it at any time without affecting the lawfulness of prior processing
To exercise your rights: Contact privacy@crewkit.io with your request. We will respond within 30 days. We may need to verify your identity before processing your request.
Right to lodge a complaint: If you are located in the EEA or UK, you have the right to lodge a complaint with your local data protection supervisory authority if you believe your data has been processed in violation of applicable data protection laws.
California residents: Under the CCPA, you have the right to know what personal information we collect, request deletion, and opt out of the sale of personal information. We do not sell personal information.
15. Data Breach Notification
In the event of a personal data breach that poses a risk to your rights and freedoms, we will:
- Notify the relevant supervisory authority within 72 hours of becoming aware of the breach, where required by GDPR
- Notify affected individuals without undue delay when the breach is likely to result in a high risk to their rights and freedoms
- Provide details of the breach, its likely consequences, and the measures taken to address it
Where an organization has signed a data processing agreement (DPA) with us, breach notification for that organization's content follows the terms of that agreement.
16. Updates to This Policy
We may update this Privacy Policy from time to time. For material changes, we will provide at least 30 days' notice by posting the updated policy on this page, through in-app notification, or by email. The "Last updated" date at the top of this page indicates when the policy was last revised. Continued use of crewkit after changes take effect constitutes acceptance of the updated policy.
October 18, 2026: Corrections so this policy states only what crewkit does. Section 1 now states both of our roles (controller for account and security data, processor for organization content). Section 6 adds Vercel, SendGrid, ElevenLabs, Slack, and Google, updates the Sentry and Cloudflare entries, and says our DPA is being finalized rather than available now. Section 7 states that transfers rely on standard contractual clauses. Section 9 no longer claims regular security audits, and states which data is encrypted at rest.
October 22-23, 2026: Section 6 discloses Slack discussions: what crewkit posts in a Slack thread and what it keeps, for how long, and erasure by Slack id. It names the sessions a discussion joins as Claude AI sessions (Anthropic's Claude).
October 23, 2026: Section 6's Slack discussions part now states that a member's session joins a discussion only when that member allows it, and that a session run in a mode that asks nothing joins and posts without asking, and what crewkit keeps of how each join was allowed, who can see it and for how long. It also states that when crewkit cannot confirm its opening post reached Slack, it reads that channel's messages from about the minute the discussion was created, at a limited pace, to find its own post and keeps only that post's timestamp.
October 24, 2026: Section 6's Slack discussions part now states that, while crewkit looks for its opening post, it keeps Slack's paging cursor between pages and discards it when the lookup ends.
October 26, 2026: Section 6 discloses the Feedback panel: what it sends to the crewkit API, that it sends nothing where it is not enabled, and the launcher corner it keeps in the visitor's browser.
17. Contact Us
If you have questions about this Privacy Policy or our data practices, contact us:
Karibew Inc.
Privacy & Data Protection: privacy@crewkit.io
Data processing agreement: privacy@crewkit.io
Subprocessor Update Subscription: Email privacy@crewkit.io with subject "Subscribe: Subprocessor Updates"
General: support@crewkit.io