Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Privacy and cost

  • What is uploaded: only the selected units of source, bounded by upload_allow and upload_deny. --dry-run --show-requests prints every initial request body without credentials or network access.
  • Instruction files: uploaded only when a documentation rule or a custom section question is selected, and still bounded by the upload patterns.
  • Custom questions: upload the units they name and the text of the question. A file or hunk question whose paths name files in other languages uploads those files or their changes, within the upload patterns; hidden paths are never read.
  • Custom questions’ examples: jevgate rules test uploads each example’s units with the question: inline code as written, and example files within the upload patterns, never through a symbolic link and never from a hidden path other than .jevgate/questions/.
  • Proposed questions: jevgate rules propose uploads each line of the instruction files it reads, with its section heading and the text that introduces it, bounded by the upload patterns; it reads no source.
  • README opening: a sensitive-data finding about error details is asked who reads the error text, with the first 1,200 characters of the root README’s prose (images, badges and HTML left out), unless upload_deny covers the README or upload_allow leaves it out.
  • Credentials: a check uses the first key it finds: TYPESAFE_API_KEY in the environment, then the file --env-file names (TYPESAFE_API_KEY, OPENROUTER_API_KEY or AI_GATEWAY_API_KEY) or TYPESAFE_API_KEY in the repository’s .env, then the key saved by jevgate auth login (OS credential store, or an owner-only file), then OPENROUTER_API_KEY or AI_GATEWAY_API_KEY in the environment. A gateway’s variable exported for another tool therefore never sends your source through that gateway while JevGate has a key of its own. The key is never printed or written to reports, and it goes only to its own provider: a key that starts as another provider’s keys do (sk-or-, vck_) is refused, and nothing in the repository can choose the host (Configuration).
  • Where requests go: to TypeSafe, or through OpenRouter or Vercel AI Gateway, which pass TypeSafe’s API through. Each keeps what it receives under its own terms: see retention and training.
  • Cost: every run prints its input tokens and an estimated cost, priced by the model that answered: Jev 1.13 costs $0.042 per million input tokens, under any of its names (jev-1.13.0, OpenRouter’s typesafe/jev-1.13 and its dated typesafe/jev-1.13-20260917), and output is free. When a response reports no token usage, or names a model without a version, such as Vercel AI Gateway’s typesafe-ai/jev, whose price follows whatever version it points to, the cost is shown as unknown, never as $0. Cached answers cost nothing, and a request sends only the questions the cache does not answer.
  • The agent hook: jevgate hook uploads what jevgate check would for the files an agent edits, under the same patterns, and nothing else. Installed in ~/.claude/settings.json or another user-level file, as jevgate init --agent does unless you pass --project, it checks every Git repository the agent works in, including ones without a jevgate.toml to bound the uploads; install it in each repository’s settings to choose.
  • The npm package downloads its version’s release archive, and the checksums when the package holds none, from GitHub on that version’s first run, and nothing after that.
  • Guards: a check with --base and the agent hook compare jevgate.toml, the baseline and the changed files with their previous versions locally. Two questions send more, within the upload patterns: a test whose assertions the change rewrote, before and after, with the functions of its file the new version newly calls; and a comment or string that addresses a reviewer, with the three lines around it.
  • Secrets: out of scope on purpose, because judging secrets would mean uploading them. Use a local secret scanner.

Retention and training

What each provider’s own documents say, checked on 2026-09-28. They can change, and they are the provider’s promises, not JevGate’s; read them before sending code you may not share.

  • TypeSafe, with a TypeSafe key:
    • It does not train models on what you send. Its Privacy Policy (updated November 19, 2025) says it “will not train or fine tune any artificial intelligence or machine learning models” on your input, and its Master Customer Agreement (updated September 23, 2026, §4.1) that it will not put customer data in a training dataset without the customer’s consent.
    • It keeps personal data in what you send “for as long as necessary taking into account the purpose of the Processing” (Data Processing Addendum, updated April 24, 2026, Schedule I §8); no fixed period is stated.
    • The agreement lets it use customer data in perpetuity to derive telemetry, to monitor for fraud and abuse, and to comply with the law (§4.1). Telemetry, “technical logs, hashes, summary statistics and classifications, metrics, and learnings” about your use, it may process without restriction, including to improve its services (§4.3).
    • It offers zero data retention to enterprise customers through its sales team (Legal). Its services are hosted in the United States.
  • OpenRouter, with an OpenRouter key: it says it stores no prompts or responses unless you turn on its input and output logging, and keeps metadata such as token counts and latency (Zero Data Retention). It lists the TypeSafe endpoint that serves Jev 1.13 among its zero-data-retention endpoints, whose providers, it says, store no prompts or responses.
  • Vercel AI Gateway, with a Vercel key: it says it retains no prompts or outputs. Its zero-data-retention page lists TypeSafe AI among the providers it has a zero-data-retention agreement with, applied only when a Pro or Enterprise team turns zero data retention on, for the team or per request; its model list marks Jev zdr: none and no_training: all. JevGate does not ask for zero data retention.