Local-first DLP for GenAI chat

Your prompt leaks the moment you hit Enter.Lostop stops it first.

A browser extension that checks your text before it reaches ChatGPT, Claude, or DeepL — and blocks the part that shouldn't leave your machine.

Checked locally · nothing goes to the cloud · free & open-source
Runs on top of the sites you already use. A secret pasted once can't be taken back — no service will purge it from its logs on request.
chatgpt.com claude.ai deepl.com
How it works

Three steps, none of them cloud-based

Lostop doesn't change how you type — it just stands between your input field and the network.

01

Type as usual

Lostop watches the input field on the page — not your screen, not your clipboard, just what you actually type into the chat.

02

Local check

The moment you hit send, the text is checked against known leak patterns right on your machine — not a single character leaves for the check itself.

03

Pass or block

Clean, and the message goes through as usual. A secret is found, it's highlighted right in the field, and the request is stopped.

What it catches

18 secret types, and growing

From cloud credentials to payment keys — detected locally, with card numbers checksum-validated to keep false positives down.

API key
sk-████████████████
AI provider keys
Private key
-----BEGIN ██████████
RSA / EC PEM keys
Card number
4111 4111 █████████
PAN, Luhn-validated
Database URI
postgres://user:██████
Connection strings

Cloud & source control

AWS Access Key GCP Service Account GitHub PAT GitLab PAT

AI providers

OpenAI API Key Anthropic API Key Hugging Face Token

Databases

PostgreSQL URI MySQL URI MongoDB URI

Payments, auth & keys

Stripe Live Key Stripe Test Key JWT Token RSA / EC Private Key

Team tools

Slack Webhook Discord Webhook Discord Bot Token

Financial

Card Number (Luhn-validated)
Full list, updated as it grows: 18 signature types — defined in backend/main.py
Dashboard

See what's been blocked, without leaving your machine

An optional local dashboard reads the same local database Lostop writes to — filterable by day, week, or month.

Built with Streamlit, running on the same machine as the server — no account, no cloud sync, no data leaving your device.

  • Filter by today / 7 days / 30 days / all time
  • Breakdown of incidents by secret type
  • Daily timeline showing trends over time
  • One-click launcher (start-dashboard.bat) — no terminal required
Install

Two things to set up

The extension is one click via the Chrome Web Store. The local server takes one more step.

Browser extension Lostop Live on the Chrome Web Store
Add to Chrome
Local server lostop-server.exe Standalone Windows binary, no Python required
Download Server (.exe)
Lostop is approved and live on the Chrome Web Store. The listing can take a few days to appear in on-site search — if search comes up empty, the direct link above always works.
Recommended

Automatic server setup

Prebuilt binary — no Python, no terminal.

  1. Add the extension to Chrome Chrome Web Store →
  2. Download and run the server lostop-server.exe → No console window — it just starts working in the background.
  3. Done — open ChatGPT, Claude, or DeepL
For developers

Manual server setup

Run the Python source directly.

  1. Add the extension to Chrome Chrome Web Store →
  2. Run the server from source
    git clone https://github.com/wowkamran/lostop.git
    cd lostop/backend
    pip install fastapi uvicorn
    python -m uvicorn main:app --host 0.0.0.0 --port 8000
  3. Done — open ChatGPT, Claude, or DeepL

Keeping the server running automatically

  1. The server needs to be running whenever you want protection active.
  2. To avoid starting it by hand every time, add it to Windows Task Scheduler with an At log on trigger — then it's a true "set it once and forget it" setup.
FAQ

Common questions

Why do I need Lostop at all?

Once you paste something into a GenAI chat and hit send, it's gone — no service will delete it from its logs on request. Lostop catches API keys, credentials, and other secrets before that happens, so a mistake doesn't turn into a real leak.

Why does it need a separate server?

Browsers don't let a web page (or even an extension) run detection logic that touches your files or a database directly — for good security reasons. The local server is a small companion program that does the actual checking, entirely on your own machine, and talks to the extension over localhost only.

What exactly does it block?

18 signature types: cloud and source-control credentials, AI provider API keys, private encryption keys, database connection strings, payment keys, team-tool webhooks and tokens, JWTs, and checksum-validated card numbers. See the full catalog above or the source in backend/main.py.

How can I be sure my data doesn't go anywhere?

The server only listens on localhost — it isn't reachable from the internet, and the project doesn't operate any cloud backend to send data to even if it wanted to. The code is open source, so you (or anyone) can read exactly what it does — see the repository and the full Privacy Policy.