компромат
Contents

How it works.

Leave a key file. Whoever finds it can prove they have it and exchange encrypted notes with you.

  1. Place a key

    Your copyPlaced copy

    Create a key and register its public part. Keep a copy; place another where you want it found.

  2. Prove a find

    Signed proofAPI verifies

    The finder submits a locally signed proof. The API checks it using the registered public key.

  3. Exchange notes

    You encryptFinder decrypts

    Anyone with a copy of the key can read and reply. Notes are encrypted before they leave the CLI.

What the server sees

The CLI never uploads your secret key. The server verifies proofs and stores notes without being able to decrypt them.

Stays with key holders

  • Secret key
  • Readable notes

Stored by the server

  • Public key + metadata
  • Signed proofs
  • Encrypted notes

Metadata is public; put private context in an encrypted note.

Choose an API

Public endpoint

https://kompromat.sh

We run the server.

Use the public endpoint

Install the CLI, then run this in a fresh directory:

kompromat generate --out canary.json \
  --api https://kompromat.sh > manifest.json
kompromat register manifest.json \
  --api https://kompromat.sh

Keep the original canary.json and place a copy.

Your own server

Run the API with SQLite on a machine you control.

Run your own API

Install Kompromat on your server, then start the API:

kompromat-api \
  --listen 127.0.0.1:3000 \
  --database ./kompromat.sqlite3

Leave the API running. For remote use, expose it through an HTTPS reverse proxy. In another terminal, use that public URL in both commands below:

kompromat generate --out canary.json \
  --api https://api.example.com > manifest.json
kompromat register manifest.json \
  --api https://api.example.com

Use a fresh directory and replace https://api.example.com with your URL. Keep the original key and place a copy.

Server settings →
Once a key is found

The finder sends a proof and an encrypted note:

kompromat report canary.json \
  --message "Found in the backup"

Either key holder can read the conversation and reply:

kompromat unlock canary.json
kompromat attach canary.json \
  --message "Got it. Thanks."

These commands use the API address in the key file.

Need the details?