The evidence packet
For each AI request, KwikQA builds an evidence packet on your machine from selected Playwright report fields, trace events, and short source excerpts around the failure. Before you see the preview:
- secrets, credentials, and sensitive fields are removed and counted as redactions;
- items the policy doesn't allow are withheld and counted;
- screenshots and videos are described by size and dimensions only, never by their pixels; and
- the packet is capped in size. Full files, full diffs, and your repository are never included.
You approve each request
The preview shows the destination, model, evidence counts, cost estimate and cap, and a hash of the exact payload. Approving sends exactly that payload. Declining sends nothing and costs nothing. Applying a patch always needs its own approval, even when requests are pre-approved with --yes.
The hosted service
On the Free, Pro, and Max plans, requests go through the KwikQA service. It checks that each request uses the configured model, provider, reasoning effort, and output cap, counts it against your plan, and forwards the payload to OpenRouter byte for byte.
The service stores your account (GitHub numeric id and username), your plan, monthly usage counters, and for each request: its kind, model, status, token counts, cost, and a SHA-256 hash of the payload. It never stores the evidence, your source code, or the model's answer.
On the bring-your-own-key plan, requests go from your machine straight to OpenRouter, and the service only confirms your plan.
How long records are kept
| Record | Kept |
|---|---|
| Account and plan | Until you delete your account |
| Request records and monthly usage counters | 13 months |
| Website sign-in sessions | 30 days |
| Revoked CLI and CI tokens | 90 days after revocation |
| Free-retry tickets | 90 days |
| Evidence, source code, model answers | Never stored |
Deleting your account from the dashboard removes all of these records immediately.
Accounts and credentials
- Sign-in uses GitHub. KwikQA reads your numeric id and username once per sign-in; the GitHub token is never stored.
- CLI and CI tokens and website sessions are stored only as SHA-256 hashes. A token is shown once, when it is created.
- You can see and revoke every token from the dashboard.
npx kwikqa logoutrevokes the CLI's token. - Website session cookies are
HttpOnly,Secure, andSameSite=Lax, and changes must come from the KwikQA site itself. - On your machine, the CLI keeps its token in your user configuration directory with owner-only permissions, never in a repository.
Payments
Stripe handles checkout, invoices, and the billing portal. Card details go to Stripe and never reach KwikQA. Plan changes take effect only from Stripe's signed notifications.
On your machine
Run records, the transaction journal for each applied patch, and validation output stay in .kwikqa/ in your project. Rollback restores exactly the bytes KwikQA changed and refuses to overwrite edits you made after the patch was applied.
Service providers
| Provider | Purpose | Data |
|---|---|---|
| Cloudflare | Hosting and database | Account, usage, and request records |
| OpenRouter | Model routing | Redacted evidence packets, in transit |
| Anthropic, OpenAI | AI models, through OpenRouter | Redacted evidence packets, in transit |
| Stripe | Payments and invoices | Billing details |
| GitHub | Sign-in | GitHub identity |
The privacy policy explains your rights over this data.
Reporting a vulnerability
Email security@kwikqa.com with the details and steps to reproduce. Please don't access other people's data or disrupt the service while testing, and give us a reasonable time to fix the issue before you disclose it.