Skip to main content
Some code can’t leave your machine. Maybe you work in healthcare, finance, or defense. Maybe you’re building a stealth startup. Maybe you just really value privacy. Good news: repr was built for this. It’s local-first by default, and you can lock it down to guarantee nothing ever leaves your machine—not your code, not your diffs, not even metadata. Here’s how to run repr in maximum privacy mode.

Lock It Down: Local-Only Mode

You can explicitly lock repr to prevent any accidental cloud operations:
Once locked, repr will:
  • ✅ Block repr push, repr sync, and repr login
  • ✅ Refuse to make any network calls except to your local LLM
  • ✅ Store everything in ~/.repr/ on your machine
  • ✅ Show a warning if any command tries to access the network
You can check your current mode anytime:
Output:

Set Up Your Local LLM

To use repr offline, you need a local language model. We recommend Ollama—it’s free, fast, and runs on your laptop.
1

Install Ollama

Download from ollama.com or install via Homebrew:
2

Start the Ollama service

This runs a local API server at http://localhost:11434. No data leaves your machine.
3

Download a model

Pick a model that fits your hardware:
First pull takes a few minutes. After that, it’s instant.
4

Configure repr to use Ollama

Run the interactive setup:
Repr will auto-detect Ollama and show available models:
5

Verify it works

Test your local LLM connection:
Output:
Now you’re set. Every time you run repr generate --local, it uses your local model—no data leaves your machine.

Alternative: Bring Your Own Keys (BYOK)

Maybe you don’t want to run a local LLM (not enough RAM, laptop gets hot, whatever). You can still avoid repr’s servers by using your own API keys with OpenAI, Anthropic, or other providers. Your keys are stored in your OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service)—not in repr’s config file.
Set your preferred provider as default:
Now when you run repr generate, it calls OpenAI directly with your key. Repr’s servers never see your data. Network policy with BYOK:
  • ✅ Direct connection to api.openai.com (or your chosen provider)
  • ✅ No data goes through repr.dev servers
  • ✅ Your code and diffs are sent only to your API provider
  • ✅ Keys stored in OS keychain, not config files

How Private Is This?

Let’s be crystal clear about what happens in each mode:

Local-Only Mode (Ollama)

Data flow:
  1. Repr reads commits from your local git repos
  2. Diffs are sent to http://localhost:11434 (your machine)
  3. Ollama processes them locally
  4. Stories are saved to ~/.repr/stories (your machine)
Network calls: Zero. Nothing leaves your machine.

BYOK Mode (Your API Keys)

Data flow:
  1. Repr reads commits from your local git repos
  2. Diffs are sent directly to api.openai.com (or your provider)
  3. OpenAI processes them and returns stories
  4. Stories are saved to ~/.repr/stories (your machine)
Network calls: Direct to your API provider. Repr’s servers never see the data.

Cloud Mode (repr.dev)

Data flow:
  1. Repr reads commits from your local git repos
  2. Diffs are sent to api.repr.dev for processing
  3. Stories are generated and synced to your account
  4. Stories are saved locally and in the cloud
Network calls: To repr.dev. You control when this happens (explicit push, pull, sync commands).

Verify Your Privacy Settings

You can audit exactly what repr has done:
Output:
Want to see a log of network activity?
Output:

Air-Gapped or Restricted Networks

Working in a truly air-gapped environment? No problem.
  1. Install repr offline: Download the binary on a connected machine, transfer via USB
  2. Transfer model weights: Download Ollama models on a connected machine, copy to the air-gapped system
  3. Lock to local-only: repr privacy lock-local --permanent
Repr will work entirely offline. No network required after initial setup.

Unlock Later (If Needed)

Changed your mind? Want to enable cloud sync?

The Bottom Line

Repr respects your privacy by default. But if you need guaranteed local-only operation:
  1. Lock it: repr privacy lock-local
  2. Use Ollama: repr llm configure → select Ollama
  3. Verify: repr privacy explain
  4. Generate: repr generate --local
Your code stays on your machine. Always.