Privacy policy
Last updated: October 24, 2026
Who we are
Kelp is a Mac app and cloud service that turns a screen walkthrough, your voice and annotations into one Kelp link with a brief and hosted screenshots for coding agents. Aaron Delasy, an individual, operates Kelp and is the controller of the personal information described here (“the operator”, “we” or “us”).
This policy covers the Kelp Mac app, the Kelp service at auth.kelp.md, api.kelp.md, v.kelp.md and cdn.kelp.md, and the website at kelp.md. It does not cover GitHub, Google, or the coding agents and other tools you choose to use with Kelp, which have their own privacy practices.
Information we collect
Account information. You sign in with GitHub, Google or an emailed magic link. Kelp stores your account identifier, name, email address, email verification status, optional profile image, account dates, plan, trial dates and attribution preference. Your settings can include dictionary terms and your onboarding answers about where you heard about Kelp, including any text you type, your role and the AI tools you use. If you email us, we receive your message.
Waitlist. When you join the waitlist on kelp.md, Kelp stores your email address and the time you joined, and nothing else about you. We send a confirmation email when you join and an access email later, when Kelp for Mac is ready for you, and the operator receives an email notice that you joined. We keep your address until you ask us to remove it at hello@kelp.md.
Recording content. You choose the screen or window to capture and whether to use your microphone. Kelp processes the video of that capture, your voice, annotations, where and when you click inside the capture, screenshots, frames and crops, text visible on screen, the names of apps and titles of windows you capture, transcripts, and the briefs Kelp generates and you edit. The Mac app uploads video segments, audio, screenshots and thumbnails to Kelp’s cloud, which produces the finished video, poster, extracted frames and crops, the kelp.md brief, kelp.json and a word level transcript.json. Account records link these files to you and store times, status, duration, capture size, app names, file metadata, brief text and metadata, the models used and usage. The Mac app also keeps local files in the storage folder you choose on your Mac.
Sign in and request information. Sign in records session identifiers and expiry, IP addresses, browser or device information, and linked provider account identifiers and tokens, which support sign in, security and abuse limits. When you use the service or visit kelp.md, Cloudflare processes your IP address and request details to deliver and protect it, and Cloudflare Workers Logs record request details. The service redacts query strings from its logs.
Product analytics. The Mac app and the server send product events to PostHog EU with account and installation identifiers. They measure app opening, onboarding steps, permissions, sign in, recording, uploads, brief readiness, editing, handoff, link opening, quota and crash recovery, and on the server model usage, latency, cost and brief outcomes. Your onboarding survey answers, including the free text answer about where you heard about Kelp, are sent to PostHog as properties of your analytics profile. Apart from those answers, analytics events carry bounded categories, counts and durations rather than your recording content, transcript, prompts or model output. This is not anonymous analytics.
Server page, download, signup and waitlist events. The Kelp service also sends PostHog EU Cloud four events from its own servers, without any analytics code in your browser. These events do not include your IP address, browser details or email address.
Kelp opened: when a Kelp page on v.kelp.md is loaded as a web page, the event carries the Kelp’s link identifier, whether the Kelp is processing, ready or failed, the brief version shown, and whether the viewer is signed in. For a signed in viewer it carries their account identifier. For anyone else it carries a new random identifier for that one load and creates no analytics profile. Reading the brief as Markdown, which is how coding agents fetch it, sends no event.
Download: when cdn.kelp.md serves the Kelp for Mac download, the event carries the app version and build number and a new random identifier, and creates no analytics profile. App updates send no event.
Signup: when you create a Kelp account, the event carries your account identifier and whether you signed up with GitHub, Google or an emailed magic link.
Waitlist join: when you join the waitlist, the event carries only a new random identifier and creates no analytics profile. Joining again with an address already on the waitlist sends no event.
Error diagnostics. Sentry receives crash and error reports from the Mac app, from server recording processing and maintenance, from app release requests on cdn.kelp.md, and from the kelp.md download page when release details are unavailable. The Mac app sends no attachments or automatic network breadcrumbs, replaces error text with a generic value, removes request details, file paths and other diagnostic fields, and keeps an installation identifier and, when you are signed in, your account identifier. Server reports use fixed failure descriptions instead of recording content or provider messages, and reports about editing a brief can include your account identifier. The download page report contains only a fixed reason. The media processor does not send reports to Sentry.
How we use information
We use your information to provide Kelp: to create and run your account, sign you in, send sign in and waitlist email, record, process and host your Kelps, make your brief, and apply your plan and usage limits. The legal basis is performing our agreement with you.
We use it to keep Kelp secure, prevent abuse and fix failures, and to understand and improve Kelp through product analytics, onboarding answers and diagnostics. The legal basis is our legitimate interest in running a secure and useful service, or your consent where the law requires it. We also use it to answer you when you contact us and to meet legal obligations.
We do not sell your personal information or your content, use your content in advertising, or train models on it.
AI processing
To make your brief, Kelp sends the relevant parts of your walkthrough to AI models. Cloudflare Workers AI transcribes your voice, currently with Deepgram and Whisper speech models, analyzes the walkthrough while you record, and can provide vision fallback. OpenRouter, reached through Cloudflare AI Gateway, routes screenshot analysis and brief composition to Google and Anthropic models. These requests can include your audio, transcript, screenshots, text visible on screen, app names, window titles, where and when you click and dictionary terms. The models and providers Kelp uses may change.
Requests through Cloudflare AI Gateway that carry recording content ask the gateway not to log their payloads. Kelp cannot guarantee how Cloudflare, OpenRouter or the model providers retain your content or whether they use it to train models. Kelp’s own commitment is that we do not sell your content, use it in advertising or train models on it.
Cookies and the website
The website at kelp.md sets no cookies on kelp.md, loads no browser analytics or error reporting SDK, and loads its fonts, styles, images and scripts only from its own origin, with one exception. Starting to join the waitlist loads Cloudflare Turnstile from challenges.cloudflare.com, which checks signals from your browser to tell people from bots before your address is sent. When the download page cannot read release details, the server can send Sentry a diagnostic that contains only a fixed reason.
The sign in service at auth.kelp.md uses cookies that are needed to sign you in: a session cookie that is httpOnly, Secure and SameSite Lax, which lasts about seven days and renews while you use it, and a short lived cookie that protects the GitHub or Google sign in flow. The session cookie is shared across kelp.md and its subdomains, so the Kelp page at v.kelp.md can read it and recognize you when you are signed in. The Mac app keeps its sign in tokens in your macOS Keychain. Kelp uses no advertising or analytics cookies.
Public links
Each Kelp has a link on v.kelp.md, and its files are served from cdn.kelp.md. Anyone with the link can open it without signing in, and can download and forward the video, screenshots, frames, crops, poster, the brief as a web page or Markdown, kelp.json and the word level transcript.json. These can include window titles, app names and text visible on your screen. Coding agents, AI tools and other automated clients that you or a recipient give the link to can fetch the page and its files.
Links use random identifiers and Kelp does not list them publicly. Kelp’s robots rules, its noindex, nofollow and noarchive headers and its content signal headers ask well behaved crawlers not to index, archive or train on these pages. They are requests, not access control, and they do not guarantee that a link is never discovered. Deleting a Kelp stops its link from working, subject to the cache limits below. Choose what you record and share with that in mind.
How we share information
Service providers run parts of Kelp for us. Cloudflare hosts the website and the service, including its database, file storage, Durable Objects, media processing containers, Workers AI, AI Gateway, Workers Logs, Turnstile, which checks people joining the waitlist, and the Email Service that sends sign in and waitlist email from hello@kelp.md. OpenRouter routes AI requests to Google and Anthropic models. PostHog provides product analytics from its EU Cloud and processes the Mac app and server events described above, and Sentry provides error diagnostics. When you sign in with GitHub or Google, that provider handles the sign in and shares your basic profile with Kelp.
Anyone you give a Kelp link to, and the agents and tools they use, can access that Kelp as described in Public links. We may also disclose information when the law requires it, or to protect Kelp, its users or others from fraud, abuse or security threats. We do not sell your personal information.
International processing
The providers named in this policy may process your information in countries other than the one where you live, including countries whose data protection laws differ from yours. Cloudflare chooses where much of Kelp’s storage and processing runs, and Kelp does not keep your data in one region. PostHog EU is the analytics service, which does not mean all Kelp data stays in the EU. Where the law requires a legal ground for sending information abroad, we rely on the grounds it allows, such as providing the service you ask for.
Retention and deletion
Media expiry. On the Free plan, hosted media for a Kelp is scheduled to expire thirty days after the recording is created. A bounded daily cleanup removes expired media, so removal can happen later than that. Expiry removes the video, audio, screenshots and other media files but keeps kelp.md, kelp.json, transcript.json and the brief and usage metadata until you delete the Kelp. Recordings created while you are on Trial, Pro or founder have no scheduled media expiry. Starting a trial does not remove expiry already scheduled on earlier Free recordings, and expired files cannot be restored.
Deleting a Kelp. When you delete a Kelp in the app, or cancel a recording, Kelp removes its hosted files, hides it and stops its link from working. Its brief text, title and recording metadata stay in the database, hidden, until a bounded daily cleanup permanently removes deleted records after at least thirty days. We do not promise that this happens on an exact day. Cached copies of media files can remain reachable for up to about an hour after deletion.
Deleting a Kelp does not erase files on your Mac, copies made by recipients, coding agents or other tools, or copies held by service providers such as AI Gateway, OpenRouter and the model providers, PostHog, Sentry or Cloudflare logs. Kelp has no self service control to delete or export your account; email hello@kelp.md to ask, and we may need to confirm the request comes from you.
We keep a waitlist address until you ask us to remove it at hello@kelp.md.
We keep account information while your account is open, and afterwards only as long as needed for the purposes in this policy or as the law requires. Analytics, diagnostics, logs and provider copies are kept under those services’ own retention settings. This policy does not promise a fixed retention period for account data, analytics, diagnostics, logs or provider copies.
Your rights
Under Ukraine’s law on personal data protection, you have the right to know how, why and by whom your personal information is processed and who receives it; to access your information; to ask us to correct or delete information that is inaccurate or processed unlawfully; to object to processing; to withdraw consent where processing relies on it; and to complain to the Ukrainian Parliament Commissioner for Human Rights or to a court. You may have additional rights where you live.
To use these rights, email hello@kelp.md. We will answer within the time the law requires. You can delete individual Kelps in the app yourself. Account deletion and export are handled by email, because Kelp has no self service control for them.
Children
Kelp is not meant for anyone under 18. You must be 18 or older to use Kelp. If you believe someone under 18 has an account, email hello@kelp.md so the account can be closed and its information deleted.
Security
Kelp uses encrypted connections, relies on Cloudflare’s encryption of stored data at rest, signs you in with short lived access tokens and single use magic links that expire after five minutes, gives every Kelp a random link identifier, and limits private account data to your signed in account. No method of transmission or storage is completely secure, and a Kelp link protects its content only as well as the people and tools that hold it.
Changes to this policy
We will update the date above when this policy changes. For a material change, we will take reasonable steps to tell you before it takes effect, for example by email.
Contact
Contact Aaron Delasy at hello@kelp.md about this policy or your information. If the law gives you a right to know where the operator is located, email hello@kelp.md to request it.