Version 2026-10-21-relay. Updated 21 October 2026.
Who we are
Crowie s. r. o. Registered address: Lipovník 187, 049 42 Lipovník, Slovakia. Company ID: 53098391. VAT ID: SK2121269051. Commercial Register of Mestský súd Košice, section Sro, entry 55334/V. Contact: info@vibeide.dev.
Crowie is responsible for website, account and billing processing. Team owners determine their own workplace purposes; Crowie's processor obligations for that service require the agreement described in Terms. This notice describes the hosted service and the optional features you enable.
Your local work, providers and mobile control
Normal task records, code, diffs, paths and conversations are stored on your computer. Provider credentials stay in the installed CLI's authentication store; VibeiDE reuses the supported CLI login and does not collect those credentials for its hosted accounts. Model inference is performed through your configured provider client, so prompts and relevant context reach that provider under your account and terms.
Local storage does not mean content never leaves the computer. If you enable Mobile control, requested prompts, voice recordings you make on the phone, result/transcript excerpts and screenshots pass through our authenticated hosted broker and relay between your authorised mobile client and your computer, sealed end to end with current desktop versions as described below. A voice recording is held in the broker's memory only until your computer takes it, is never stored there, and is transcribed on your computer.
With secure remote control, which current desktop versions use with the phone app at remote.vibeide.dev, your phone creates its own keys and a passkey when you connect it, and you confirm a six-digit code on both screens. Your computer then accepts only commands signed by a phone it enrolled, and commands and results are end-to-end encrypted between that phone and your computer. Linked files and live terminal views travel the same way, through our relay or directly, sealed with keys that only your phone and your computer hold. Our broker and relay pass them sealed: they can see which computer and account a message belongs to, when it was sent and how large it is, but not its content, and they hold no key that could open it. Notifications to your phone carry no task content: a fixed title, the task number, whether it finished or needs attention, when, and the computer's name, delivered through Apple, Google or your browser's push service. Your computer keeps a local log of every phone request without prompt text. The phone app is a web app that we serve, so its code comes from our servers; a compromised server could serve app code that reads what you open in it. The desktop app is a signed release. Computers that have not reconnected since this change use the earlier transport, which uses TLS and is not end-to-end encrypted. Screenshots or output can contain secrets. Enable it only for content and devices you are authorised to use.
Account, licence and billing data
We use your email, name, authentication records and preferences to provide your account and requested messages (contract), and protect access through sessions, verification, MFA and rate limits (contract and security interests). If you choose Continue with Google, Google shares your name, email address, its verification status, profile picture link and Google account ID so we can create or sign you in to your account (contract); we store the resulting sign-in tokens encrypted, never receive your Google password and request no other Google data. Stripe handles payment entry; we keep customer, subscription and invoice references, billing and tax details, status, and your checkout acknowledgement. We do not store full payment-card details.
A hashed device identifier and compatibility aliases support a single device-bound trial and licence enforcement. This is pseudonymous personal data, not anonymous data. Raw hardware identifiers are not sent by the trial path. We use the pseudonymous identifier to enforce the device-bound trial and prevent repeated trial abuse, relying on our legitimate interest in protecting the licensing service.
Added 16 October 2026. When you create an account or sign in on a page that shows our Terms of Service and Sale, accept them in your account, or confirm a purchase, we record that acceptance: your account, the Terms version and a fingerprint of its exact text, the time, the kind of action, whether it happened on the website or in the phone app, and for a purchase the order it belongs to. We do not store your IP address or browser details with it. We archive the text of every Terms version. We use these records to show which licence terms apply to you and to establish, exercise or defend legal claims about the licence (contract, Art. 6(1)(b) GDPR, and our legitimate interest, Art. 6(1)(f) GDPR). They are included in your data export.
Company mode
Company mode is end-to-end encrypted between computers and is in early access beta. Task names, state, provider and timing go from a member's computer to code-verified managers' computers, directly or through our relay, sealed with keys that exist only on those computers, only while the member shares and the computer is online. A task without a name is shown by the start of its prompt unless task names are off. If a member separately turns on branch history on a computer, the branch and merge structure of that computer's project git history for the last 90 days goes the same way: shortened commit identifiers, commit times, which commits are the member's own and, while names are on, project and branch names. Full prompts, code, diffs, commit messages, paths, conversations and output are never sent. VibeiDE's servers cannot read and never store this task data.
The service keeps team membership, identities, roles, invitations, sharing choices, device and team public keys and signed revocations, and helps devices connect. Network addresses pass through connection messages and our STUN service in memory; neither keeps them. Our relay forwards sealed frames between devices in memory and keeps nothing after a connection closes. We can see which devices connect, when, and how much data passes. The owner must explain its workplace purpose and legal basis to members.
Your computers
Connecting another of your computers, to switch to its workspace or download finished tasks, requires both computers to be online and a six-digit code confirmed on both; downloading also needs approval on the source computer. Everything between those computers, including the workspace a paired computer shows, travels through our relay end-to-end encrypted with keys that exist only on those two computers. The relay sees which computers connect, when and how much data passes; it cannot read the data and keeps nothing after the connection closes. Downloaded tasks are stored only on the receiving computer. The best-effort prompt lock keeps only which computer typed last in service memory; the service never receives what was typed.
Cookieless aggregate traffic counts
Analytics explanation updated 14 October 2026.
We use aggregate traffic counts to understand which pages and acquisition channels are used, where visitors request an installer, and which parts of the website need improvement. These server-side counters run when we serve a request, including before a cookie choice and after optional analytics is rejected. They do not load Google Analytics or send these counters to Google.
We count public page requests, installer redirects and signup form submissions without cookies, browser storage or consent-dependent tracking. We store daily totals by page path without query strings or fragments, entry or internal view, traffic channel, bounded campaign tags, referring host, country and desktop, mobile or tablet class. Country is resolved from the request address and the address is discarded by this counter. Added 14 October 2026: for 31 days we also keep each counted request as its own record with the minute it happened and the same fields, so we can see how individual visits to the website arrived. These records carry no identifier and cannot be linked to each other, to a person or to an account. Advertising click identifiers are reduced to a yes/no presence flag; their values are never stored in these counters. Known bots and headless clients are excluded and counted only as a daily bot total. These counters store no IP addresses, raw user-agent strings, hashes of them, visitor identifiers or fingerprints. They cannot link requests, visits, days or account conversions. Counts measure requests, not people, and are retained for 400 days. Optional consented attribution remains separate. Rejecting optional analytics stops the cookie-based tracking described below; it does not stop these independent aggregate request counts.
Optional analytics, advertising measurement and email
Website Analytics consent allows a visit identifier, bounded campaign/referring-site values and first-party view, download and trial-interest events. Before consent, these cookies and optional beacons do not run. Leaving the banner unanswered, continuing to browse or closing it does not grant consent. You can use the website without accepting optional analytics.
Advertising measurement
Only when you enable both Analytics and Advertising measurement, in Cookie settings or with the optional boxes on the sign-in page described below, we retain advertising click identifiers (gclid, gbraid, wbraid, msclkid or rdt_cid) and campaign tags from your first consented landing, linked to your first visit identifier. We use this link to measure downloads, account signups, desktop activation and purchases. For Google Ads, we share the Google click identifier, conversion type and time, a pseudonymous event reference, and purchase value in USD with Google. For Reddit Ads, we share the Reddit click identifier (rdt_cid), conversion type and time, a pseudonymous event reference, and purchase value in USD with Reddit, Inc. in the United States through its Conversions API. Reddit click identifiers are retained only when your Advertising measurement choice was saved on or after 13 October 2026. Microsoft click identifiers are retained for the same purpose, but Microsoft conversion uploads remain disabled until that integration is enabled. We do not send email addresses, names, IP addresses, browser details, payment details, task content or prompts in these uploads. This is optional conversion measurement, not personalized advertising. The legal basis is your consent. You can withdraw either permission in Cookie settings; future uploads stop for the linked browser and its stored click attribution is removed. Raw click attribution is retained for up to 90 days. Previously submitted provider reports are governed by the provider's retention rules. See Google Privacy, Reddit Privacy and Microsoft Privacy.
Measurement choices when you sign in or create an account
Added 13 October 2026. If your browser has no saved cookie choice and sends no privacy signal, the sign-in page offers two optional boxes, both unticked: "Allow Analytics, including Google Analytics, to understand how you found and use VibeiDE" and "Also allow Advertising measurement (requires Analytics), so we can measure which ads bring new users". The second box can only be ticked after the first, and unticking Analytics also unticks it. Continuing saves exactly the same choice as the same categories in Cookie settings, with the same consent version, duration and withdrawal, and starts a consented visit from the campaign labels the sign-in page kept for that page view. With Advertising measurement, an advertising click identifier in the sign-in page's own address is kept as described above. With Analytics only, no advertising click identifier is kept, and the consented visit replaces the signup campaign labels described below. If this creates your account, the visit becomes its first visit. If you sign in to an account that already exists, the visit is kept only as a later consent and never becomes the account's first visit; the same applies to a consent you give in Cookie settings after your account exists. Analytics consent also allows Google Analytics on later visits to our public website pages while you are signed out. If you leave both boxes unticked, nothing extra is stored. You can change or withdraw the choice at any time in Cookie settings.
When you give consent with these boxes, or in Cookie settings while signed in, we keep a record of that choice with your account to show it was given (the date, consent version, categories, where you made the choice, a link to the consented visit it started, and when you withdrew it if you do so in Cookie settings while signed in), without your IP address or browser details, until 3 years after the choice expires or is withdrawn, or until you delete your account.
How you heard about VibeiDE
Added 13 October 2026. The sign-in page asks how you heard about VibeiDE, on the website and when you sign in for the desktop app. Answering is optional, nothing is selected by default and skipping it never affects your account. We store an answer only when the request creates a new account: your choice, any short text you type for Other (we remove web addresses and email addresses and keep at most 100 characters), the time, and whether you signed up on the website or for the desktop app. We use it to understand which channels bring new users. You provide it voluntarily, and the legal basis is our legitimate interest in understanding how people find VibeiDE (Art. 6(1)(f) GDPR). We keep it with your account until you delete the account or ask us to delete the answer, and it is included in your data export.
Campaign labels when you create an account
Added 13 October 2026. If a link with campaign labels, such as an ad or a tagged post, brought you to our website, the page keeps those labels in the browser's memory for that page view only and adds them to a sign-in or register link only when you follow it. The sign-in page keeps them in memory the same way. Nothing is stored in cookies or browser storage for this. Only when you submit a request that creates a new account do we store the labels with that account: source, medium, campaign, content and term, each a short campaign name that we validate, and the time. We never store advertising click identifiers this way. If your account has a consented first visit, which requires Analytics consent as described above, that visit takes precedence: we do not store these labels, and labels already stored are deleted when such a visit is linked to your account. If you continue with Google, your optional answer, these labels and any measurement choice you ticked wait on our server for at most ten minutes, keyed by a one-way hash of that sign-in request, until Google returns you. We use the labels to measure which campaigns bring new accounts. The legal basis is our legitimate interest in measuring the effectiveness of our advertising with minimal data (Art. 6(1)(f) GDPR). We keep them for 13 months from account creation and then delete them. They are not combined with the cookieless counts or with Google Analytics. You can object at any time with Object to marketing measurement under Data & privacy in your account, or by emailing info@vibeide.dev. We then delete the labels and do not keep new ones for your account.
Google Analytics
We use optional Google Analytics reports to understand page use, engagement, acquisition channels and device compatibility so we can improve the website. These reports cover participating browsers and may not represent all visitors.
If you consent to Analytics, the website also loads Google Analytics 4 (property G-MDN9GHLJPH) from Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland, which processes data for us as processor under Google's data processing terms. It sets the _ga and _ga_MDN9GHLJPH cookies for up to 6 months and receives the page address without query string or fragment, the referring page address in the same form, bounded campaign labels from the page URL (source, medium, campaign name, content, term and campaign ID), a pseudonymous browser identifier, device, browser, screen and language information, approximate location derived from your IP address, and interaction events such as page views and scrolling. GA4 does not log or store IP addresses. Google signals, advertising features, ad personalization and ad storage are disabled, and we do not use Google Analytics to identify you or combine it with your account. Reports are aggregated; event data is retained for 2 months. The legal basis is your consent (Art. 6(1)(a) GDPR and the consent rule for access to your device). Google LLC in the United States may access data; Google is certified under the EU-US Data Privacy Framework (adequacy decision of 10 July 2023), and standard contractual clauses apply as an additional safeguard. Google Analytics does not load on account, payment, phone app or error pages, on local previews, or when your browser sends Do Not Track or Global Privacy Control. You can withdraw consent at any time in Cookie settings; the tag stops immediately and its cookies are deleted. See Google's privacy policy and Google's processor terms.
Desktop activation analytics and automatic diagnostics share a separate desktop preference. When enabled, terminal failure and error reports send category, provider, app version, operating system, counts, fixed steps and code locations. A message is sent only if it matches a known technical template. Automatic reports never send arbitrary error message text, prompts, terminal output, transcripts, code or conversation identifiers. The phone app sends the same kind of error report. Uploads authenticate with an existing device token, and only the owner administrator can view linked report accounts. Turning the preference off discards pending desktop uploads.
Added 14 October 2026. While the same desktop preference is on, the app also sends daily counts for each coding tool (Claude Code, Codex, OpenCode, Antigravity or a plain Terminal): how many tasks were started, how many completed, failed, were stopped or were interrupted, and how many terminals were opened by hand. These are numbers only; they never include task titles, prompts, project names, file paths, terminal output or code. They are stored with the desktop installation and the account signed in on it, so we can see which tools people use and how often tasks fail, and fix what breaks. The legal basis is our legitimate interest in keeping the app working and improving it (Art. 6(1)(f) GDPR). We keep these counts for 90 days, include them in your data export and delete them with your account. Turning the preference off stops the counts and discards any not yet sent.
Bug reports and error reports
Bug reports you choose to send store their title, description and attached screenshots with your account until you delete the report or account. Screenshots can show task content. Automatic error reports are retained for 30 days.
Support messages are used to answer your request (contract or legitimate case-handling interests). Elective marketing requires an appropriate permission; support is not marketing consent. Account and trial service emails cover trial start and setup, the two-day expiry reminder, and trial expiry, read-only access and how to subscribe. These factual service messages do not require marketing consent and go only to active accounts with verified email addresses. A recorded email withdrawal or no-email request suppresses these lifecycle messages as well as product emails. Optional product emails require a separate recorded opt-in, with an unchecked choice in account Email settings. Legacy permissions without that evidence are off. You can unsubscribe from product email at any time.
Support chat
The website support chat runs on Namiru, our own chat service (also Crowie s.r.o.), hosted by Hetzner in Germany. It loads only after you choose Chat, inside a separate frame served by namiru.ai, so no chat code runs in the vibeide.dev page or can reach your VibeiDE account. When it loads, your browser fetches the chat from namiru.ai and api.namiru.ai, which necessarily receive your IP address and browser details. The frame is opened without telling namiru.ai which VibeiDE page you came from. Your IP address is used for security and to estimate your country on our own servers; chat records keep only a keyed hash of it. The legal basis is our legitimate interest in offering support on the website (Art. 6(1)(f) GDPR).
Before you open or use the chat, it stores nothing on your device and starts no conversation. Once you open it, it stores what it needs to continue your conversation, listed in the cookie inventory. This is necessary for the chat you requested.
Replies in the chat are written by AI, and the chat says so. Your messages are sent to AI model providers to write replies and a short summary for us: OpenRouter, Inc. (USA), which routes each request to the model provider, Alibaba Cloud (Singapore, with data centres in Singapore and China) for the chat model, and providers selected by OpenRouter for summaries, which may be outside the EU. We do not use your messages to train models of our own. Do not put credentials, payment-card details or private source code in the chat. Contact details you choose to share, such as your name or email, are used to answer you. The legal basis is answering your request (contract or legitimate case-handling interests).
How long we keep data
- Account profile: until deletion, except limited records needed for legal obligations or unresolved disputes.
- Device-bound trial identifiers: 12 months after last use. Account deletion removes their account link but retains the pseudonymous trial identifier for that period to prevent repeated trials.
- Raw analytics events: 14 months.
- Your answer to how you heard about VibeiDE: until you delete your account or ask us to delete it.
- Campaign labels stored when you create an account: 13 months.
- Records of consent choices made with the sign-in page boxes or in Cookie settings while signed in: 3 years after the choice expires or is withdrawn, or until you delete your account.
- Records of accepting the Terms when you create an account, sign in or accept them in your account: until you delete your account. A record made when you confirm a purchase is kept with that order for as long as we keep the order and its invoice, and loses its link to your account when you delete the account.
- Automatic terminal failure reports, fixed steps, automatic error reports and upload deduplication receipts: 30 days. Pending reports stay on the desktop for at most seven days, capped at 100 records.
- Connection messages: not stored, at most 30 seconds in memory; task data never passes through the Company or computer-sync service.
- Device and team public keys and signed revocations: until the device, team or account is removed; revocations until the revoked certificate would have expired.
- Legacy Company task records are removed before the retired service handles requests. Copies in older hosted backups expire within 14 days of retirement.
- Relay: sealed frames between your devices are forwarded in memory and never stored.
- Mobile content: pairing codes expire after 10 minutes; in-flight commands have a maximum 45-second lifetime, and long polls last at most 20 seconds. Results and screenshots are relayed in memory and discarded when the request settles. They are not stored as content in the hosted SQL database. Completion deduplication stores a one-way hash for seven days. Device links remain until revoked or the account is deleted.
- Support correspondence: we keep it while handling your case and any related complaint or legal obligation. Contact us to request deletion of closed correspondence. Mailbox deletion is handled separately from account deletion.
- Support chat: conversations and contact details you share stay in our chat workspace until we delete them; ask us to delete yours at any time. Technical chat message logs: 90 days. The chat's visitor ID in your browser: 30 days after your last chat.
- Invoices and required accounting evidence: ten years following the year concerned, with longer retention only where a legal obligation or documented legal hold requires it.
- Authentication tokens: their security expiry; revoked on logout or deletion. Hosted database backups rotate after 14 days. Separate security and account-recovery records are limited to their security purpose; contact us about a particular record.
Recipients, locations and transfers
We use Stripe for payments, Hetzner infrastructure in Falkenstein, Germany for the hosted service, PostgreSQL database and routine on-server backups, our dedicated mail.vibeide.dev mail service for transactional email, browser push services when you enable notifications, GitHub for release distribution, our Namiru chat service on the same German infrastructure for the support chat, OpenRouter, Inc. (USA) and the model providers it routes to, including Alibaba Cloud (Singapore and China), for support chat replies, and, only with your Analytics consent, Google Ireland Limited for Google Analytics. Stalwart is self-hosted mail software, not automatically a separate SaaS recipient. Your chosen AI services receive inference data under your own accounts. Other advisers or contractors must be identified before access.
Stripe, some push or release providers and the support chat's AI model providers can process data outside the EEA, including in the USA, Singapore and China. Applicable safeguards can include an adequacy decision, such as the EU-US Data Privacy Framework for a certified US provider, or standard contractual clauses with the necessary assessment and safeguards. Contact us for recipient, location and transfer information applicable to your data. We do not treat an ordinary user consent checkbox as permission for an otherwise unlawful international transfer.
Your rights
You may request access, correction, deletion, a copy/export, restriction or objection where applicable. Withdraw optional consent at any time through Cookie settings or the relevant account/device preference; this does not affect the lawfulness of earlier processing. Use the data export and delete controls in your account, or email info@vibeide.dev. We may need proportionate identity verification. We normally respond within one month, with lawful extensions explained. Deletion revokes account/device access and removes personal team data; legally required invoices remain separately retained. External mailbox and provider records may need a separate request.
You may complain to the Úrad na ochranu osobných údajov Slovenskej republiky, or another competent supervisory authority. Contacting us first is not a condition of that right.
Cookies and changes
See the cookie inventory for names, purposes, durations and settings. Global Privacy Control rejects optional website categories. Essential authentication, CSRF and your chosen settings remain available. We will date material policy changes and renew cookie consent when its version changes.