Privacy and cost
- What is uploaded: only the selected units of source, bounded by
upload_allowandupload_deny.--dry-run --show-requestsprints every initial request body without credentials or network access. - Instruction files: uploaded only when a documentation rule or a custom
sectionquestion is selected, and still bounded by the upload patterns. - Custom questions: upload the units they name and the text of the question. A
fileorhunkquestion whosepathsname files in other languages uploads those files or their changes, within the upload patterns; hidden paths are never read. - Custom questions’ examples:
jevgate rules testuploads 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 proposeuploads 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_denycovers the README orupload_allowleaves it out. - Credentials: a check uses the first key it finds:
TYPESAFE_API_KEYin the environment, then the file--env-filenames (TYPESAFE_API_KEY,OPENROUTER_API_KEYorAI_GATEWAY_API_KEY) orTYPESAFE_API_KEYin the repository’s.env, then the key saved byjevgate auth login(OS credential store, or an owner-only file), thenOPENROUTER_API_KEYorAI_GATEWAY_API_KEYin 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’stypesafe/jev-1.13and its datedtypesafe/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’stypesafe-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 hookuploads whatjevgate checkwould for the files an agent edits, under the same patterns, and nothing else. Installed in~/.claude/settings.jsonor another user-level file, asjevgate init --agentdoes unless you pass--project, it checks every Git repository the agent works in, including ones without ajevgate.tomlto 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
--baseand the agent hook comparejevgate.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: noneandno_training: all. JevGate does not ask for zero data retention.