What's implemented today.
Coil is in open beta. This page describes what the system actually does right now, how data is partitioned, and what we have not done yet. We would rather be specific and honest than ship a certification badge we have not earned.
Architecture
The four pieces that hold the system up. All four are off-the-shelf, audited at the vendor level, and configured for org isolation.
Auth
Authentication runs on Clerk. Human users sign in with Clerk sessions; agents authenticate with Coil organization API keys (the ak_... tokens). The same API surface accepts either credential, and every request is scoped to a single organization. Rate limits are 100 requests per minute per org and 60 per minute per API key, evaluated as independent buckets; exceeding either returns a 429 with a Retry-After header.
Data
Lead, scrape, recipe, automation, and audit data live in Supabase Postgres. Every row carries an org_id. Every query in the service layer filters by org_id as a precondition for returning data. The Supabase service-role key lives only in server runtime environment variables and never reaches the browser; the public anon key is the only Supabase credential the client receives.
Hosting
The web app and serverless functions run on Vercel. Traffic is served over HTTPS by default with managed TLS termination at the edge. Deploy previews are automatic per pull request, which gives every change a reviewable URL before it reaches production.
Secrets
There are no checked-in secrets. Production credentials live in Vercel environment variables. The full surface of variables Coil expects is documented in the repository's CLAUDE.md and the .env.example template, which makes drift between docs and reality obvious during review.
Control receipts
The claims above map to concrete enforcement points. These are the checks a reviewer should expect to find in the product.
Agent access
Coil treats agents as first-class callers across supported workflows, with explicit human-only controls for high-consequence decisions.
Human-agent parity is a design rule with explicit exceptions, not a blanket claim. Supported workflow capabilities are mapped in the repository parity audit across dashboard, API, JSON CLI, and skill surfaces. Agents authenticate with Coil organization API keys and act as org:member; credential, publication, policy, and other human-admin decisions remain unavailable to those keys. Supported durable workflow and export activity records actor type and organization scope. Per-actor preferences are available to both humans and machine callers.
Data export and deletion
Your data leaves the way it came in: as structured records you can re-import elsewhere.
- Up to 10,000 leads from one run are exportable as a complete, formula-safe CSV from the dashboard, API, or CLI; larger requests fail explicitly.
- Deleting a lead from the leads table removes the underlying row; deleting a scrape (admin only) removes its row and disassociates its results.
- Agents use the same org-scoped export endpoint, filters, saved views, selected-ID semantics, and durable export receipts as dashboard users.
What we have not done yet
The honest list. Read this before assuming we have something we do not.
- No external security audit has been commissioned.
- There is no bug bounty program.
- We hold no SOC 2, ISO 27001, or HIPAA certification.
- Penetration testing is not on a recurring schedule.
- Formal incident response runbooks are not yet published.
These items are not on a published commitment date. When that changes, we will announce the date and the auditor on the changelog. Until then, the safest assumption is that everything on this list is absent.
Reporting an issue
Found something worrying? We want to hear about it before anyone else does.
Email anton.eliasson@gmail.com with a description of the issue, reproduction steps if you have them, and your preferred contact channel for follow-up. We will acknowledge receipt and, if the report is valid, coordinate disclosure timing with you. Please do not file public GitHub issues for suspected vulnerabilities.
Try Coil with your own org
Sign up, create an org, and you are isolated from every other tenant by the same org_id boundary described above. No card required.
Open beta