security & privacy

Straight answers about your code

You're deciding whether to point an AI at your private repositories. That deserves specifics, not a page of badges. Here is exactly what Firetrail reads, sends, and stores — including the parts a sales page usually skips.

We read diffs, not repos

An analysis sees the pull request's changed files, title and description, fetched from the GitHub API when the PR opens, plus a handful of regions outside the diff that our index of your repository points at: the callers of what changed, the definitions the new code calls. We keep a map of your repository (names, paths and line numbers, never code), built from a copy that passes through a worker for seconds and is deleted. No clone is kept.

Your code trains no one

Analysis runs on Anthropic Claude and OpenAI models over their commercial APIs, routed through OpenRouter. None of them use API traffic to train models, and we don't train anything on your code either.

You pick the repos

Access comes from a GitHub App installation scoped to exactly the repositories you choose. Tokens are short-lived, and you can revoke the whole thing from GitHub settings at any moment.

No passwords to leak

Sign-in is a one-time email code. There is no password database to breach, and card details live with Stripe — they never touch our servers.

Leave with everything

Owners can export the organization's full data as portable JSON, self-serve. Deleting the organization erases every PR, analysis, and trace — no support ticket, no retention limbo.

Advisory by default

Firetrail posts a check and a comment; it never needs control of your merges. The blast radius of the whole product is a comment on your PR.

the payload

What we send to the AI — exactly

When a pull request opens (or gets pushed to), Firetrail fetches its diff from the GitHub API and builds one analysis payload from it. That payload is the entire exposure:

  • The changed files' patches — the same diff a human reviewer reads.
  • The PR's title, description, and changed-file metadata.
  • For an indexed repository, a few regions outside the diff that its map points at — the callers of changed code and the definitions it calls, with line numbers — chosen by rule, never by a model reading your repository.
  • Nothing else. No repository clone is kept, no unrelated files, no commit history sweep.

What we store: the analysis results and the diff data that produced them, and a map of your repository's definitions and call sites (names, paths and line numbers, never source code) that is rebuilt from GitHub and deleted with the repository, so your history, dashboards, and origin tracing keep working. It lives in our database until you delete it — and deletion actually deletes.

One analysis, end to end
1

PR #418 opens

GitHub webhook (signature-verified) tells Firetrail.

2

Diff fetched

Changed files only, via the GitHub API, over TLS.

3

AI reads the diff

Claude returns structured verdicts — score drivers, evidence, coaching.

4

Results land on the PR

A check and one comment. Your code went to one place and came back as judgment.

the AI layer, honestly

There are LLMs behind this. Here's what that means.

Firetrail's analysis runs on Anthropic's Claude models (and OpenAI models on the Free plan), reached through OpenRouter — a routing API that fails over between provider endpoints when one is down. Under the commercial API terms of all three, data sent through them is not used to train models. We hold no training pipeline of our own, and every AI call in our system goes through a single audited client — there is no side door where a prompt could smuggle extra context.

We won't pretend a third-party model is infrastructure we fully control — nobody selling AI code analysis can honestly claim that. What we control, and take seriously, is the surface area: only the diff is ever sent, the response comes back as structured verdicts rather than free-form text, and the whole pipeline runs server-side with your organization's data walled off from everyone else's.

If your compliance bar requires more than that today, we'd rather you know it from this page than discover it in procurement. Our Data Processing Agreement spells out the details in contract language.

how access works

The mechanics, without the hand-waving

GitHub App, scoped by you

Installed on the repositories you pick — nothing broader. Analysis uses short-lived installation tokens; your personal OAuth token is used once, at connect time, and not kept for analysis.

Signed webhooks

Every event from GitHub is verified with an HMAC SHA-256 signature before it's processed. Same for Stripe billing events.

Tenant isolation

Every query in the product is scoped to your organization. Your PRs, analyses, and dashboards are invisible to any other customer — isolation is enforced in the data layer, not the UI.

Encryption

TLS for everything in transit — GitHub, OpenRouter, your browser. Data at rest lives in a managed PostgreSQL database encrypted by our cloud provider.

Passwordless auth

Email one-time codes only. No password hashes to steal, no credential-stuffing surface. Payments are Stripe-hosted; we never see card numbers.

Your exit is built in

Full-organization JSON export and permanent deletion are self-serve, owner-controlled buttons — not a support negotiation. Terms, Privacy Policy, and DPA are published and versioned.

Found a security issue? Email [email protected] with steps to reproduce; give us a reasonable window before disclosing publicly.

Legal: Terms · Privacy Policy · Data Processing Agreement

certifications

No SOC 2 badge yet. We'd rather tell you than hide it.

Firetrail is a young company. A SOC 2 audit is a matter of when, not if — but today this page has no badge row, and we're not going to fake one with a wall of padlock icons.

What we have instead is everything above: a minimal payload, scoped access, self-serve export and deletion, and a DPA in writing. Those are the practices an audit would certify — running now, documented here, checkable on your first Free-plan repository before any code you care about is involved.

When the badge lands, this page will say so. Until then we'd rather earn trust with specifics than borrow it from a logo.

Try it on a repo that can't hurt you

The Free plan exists exactly for this: connect one low-stakes repository, watch what Firetrail sends and posts, and decide with evidence.