Where your data goes
LeanGate runs on your machine. This page lists everything that leaves it, where it goes, and why.
At a glance
Three places, and what travels between them. Click one for the details.
Stays on your machine
- Your source code, and the index LeanGate builds of every Python file in the repo
- What LeanGate remembers: findings you rejected, conventions, waiver requests
- What it learned about the repo: which helpers do which job, and how its checks are calibrated
- The local live report (
leangate live)
Sent to the models, through leangates.com
To judge a finding, LeanGate sends the finding, the changed code it's about and the existing helper it points to. Never the whole repo. During the beta we run the models for you, on our keys, so this goes to leangates.com, which passes it straight to the model provider and returns the answer. We keep a count of the calls (for your monthly allowance) and nothing else: no code, no findings, no logs of what was sent.
- Jev (TypeSafe, via OpenRouter) answers yes/no and multiple-choice questions about each finding. Every request is limited to endpoints with a zero-data-retention policy.
- Nemotron (Nebius Token Factory) settles findings Jev is unsure about, looks for missing
error handling, and writes rewrites and tests for
minimize. Our Nebius account has Zero Data Retention on: prompts and completions aren't stored. - Tavily receives a short claim to check against official docs, such as "requests.get has no default timeout". It gets no code.
- PyPI and OSV.dev receive package names and versions, straight from your machine, when you check a dependency.
Sent to leangates.com
Only after you run leangate login. leangate logout stops all of it.
- To keep LeanGate activated, about once a day: your API key and LeanGate's version number. Nothing about your code or your repos. The licence that comes back lets LeanGate work offline for a week.
- Run reports, for repos with a git remote (set
LEANGATE_CLOUD=offto keep them local): each finding's rule, file, line, message and decision. Code snippets are dropped and quoted code in messages is blanked out; a message may still name a function. - Timing, and how many model calls each run made
- What LeanGate learned: helper names and rule records
- The repo's name, from its git remote. Never your machine's file paths.
Everything else
- GitHub sign-in reads your public profile only: no repos, no code.
- The playground runs the code you paste on our server. It's deleted when the check finishes, and the model calls work the same way as described above.
- Your account page lets you export or delete everything leangates.com holds about you, at any time.