Skip to main content

Scan your LLM chat exports for personal information

Project description

looselips

Loose Lips Might Sink Ships

Scan your ChatGPT and Claude chat exports for personal information you might not want sitting in the cloud.

Install

pip install looselips

Basic usage

  1. Export your data (both services email you a download link):
    • ChatGPT: Settings -> Data controls -> Export.
    • Claude: Settings -> Privacy -> Export Data.
  2. Create a looselips.toml config defining what to look for (see below).
  3. Run:
looselips --config looselips.toml export.zip

The format (ChatGPT vs Claude) is auto-detected. Accepts .zip exports or raw conversations.json files from either service.

Config file

Define your matchers in a looselips.toml. See examples/example.toml for a full example with common patterns.

[[matcher]]
type = "regex"
category = "My Phone"
pattern = '212.?867.?5309'

[[matcher]]
type = "regex"
category = "Home Address"
pattern = '(?i)742\s+Evergreen\s+Terrace'

Patterns use the Python re module. Inline flags like (?i) for case-insensitive, (?s) for dotall, and (?x) for verbose mode (comments and ignored whitespace) work in the pattern string itself.

looselips --config looselips.toml export.zip

LLM matchers

For things regex can't catch, add LLM matchers to your config. Each one runs a separate inference pass per conversation chunk, so prefer a few focused matchers over many broad ones.

model = "ollama/qwen3:0.6b"

[[matcher]]
type = "llm"
name = "Employment & Financial"
prompt = "Find employment and financial information -- company names, job titles, salary figures, stock grants."

[[matcher]]
type = "llm"
name = "Medical & Health"
prompt = "Find medical and health information -- conditions, medications, doctor names."

You can override the model per-matcher with the model key.

Output

Default output is <input (without extension)>_report.html. Override with --output:

looselips --config looselips.toml --output=report.html export.zip

The report is a self-contained HTML file. Each flagged conversation links directly to chatgpt.com or claude.ai so you can review or delete it in one click -- the main advantage over running your own regex. Click a conversation to expand it and see each match highlighted in context.

Everything runs locally -- no data leaves your machine (unless you use a cloud LLM model).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

looselips-0.1.4.tar.gz (219.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

looselips-0.1.4-py3-none-any.whl (247.7 kB view details)

Uploaded Python 3

File details

Details for the file looselips-0.1.4.tar.gz.

File metadata

  • Download URL: looselips-0.1.4.tar.gz
  • Upload date:
  • Size: 219.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for looselips-0.1.4.tar.gz
Algorithm Hash digest
SHA256 39a582f320d9d75000bced1663b8e6647e5cf2941b33991a54439cab1af96ba7
MD5 2149129d9c415d3e5f1bbd70e77e5c72
BLAKE2b-256 cbd319b55ece86201cbb89597fa3e13eb0520f8d79f122c979e4dbc6208b879d

See more details on using hashes here.

File details

Details for the file looselips-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: looselips-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 247.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for looselips-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2b5bfe3ab52c64d8aea7293b477b33995fa35ff1061634022da97540b88dcd6d
MD5 b841236fced892ded5bf0188642f381f
BLAKE2b-256 6f3d81bff690c308f09ada67a4519ae80b12c8c9c1ed49167b3c8bfcdecb905d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page