Stegstr hides Nostr messages and arbitrary payloads inside PNG images using steganography. Users embed their feed (posts, DMs, JSON) into images and share them; recipients use Detect to load the hidden content. No registration, works offline.
Build the CLI from the Stegstr repo:
git clone https://github.com/brunkstr/Stegstr.git
cd Stegstr/src-tauri
cargo build --release --bin stegstr-cli
Binary: target/release/stegstr-cli (or stegstr-cli.exe on Windows).
stegstr-cli decode image.png
Writes raw payload to stdout. Valid UTF-8 JSON is printed as text; otherwise base64:. Exit 0 on success.
stegstr-cli detect image.png
Decodes and decrypts; prints Nostr bundle JSON { "version": 1, "events": [...] }.
stegstr-cli embed cover.png -o out.png --payload "text or JSON"
stegstr-cli embed cover.png -o out.png --payload @bundle.json
stegstr-cli embed cover.png -o out.png --payload @bundle.json --encrypt
Use --payload @file to load from file. Use --encrypt so any Stegstr user can detect. Use --payload-base64 for binary payloads.
stegstr-cli post "Your message here" --output bundle.json
stegstr-cli post "Message" --privkey-hex <64-char-hex> --output bundle.json
Creates a Nostr bundle; use stegstr-cli embed to hide it in an image.
# Create a post bundle
stegstr-cli post "Hello from OpenClaw" --output bundle.json
# Embed into a cover image (encrypted for any Stegstr user)
stegstr-cli embed cover.png -o stego.png --payload @bundle.json --encrypt
# Recipient detects and extracts
stegstr-cli detect stego.png
PNG only (lossless). JPEG or other lossy formats will corrupt the hidden data.
STEGSTR (7 bytes ASCII)--encrypt)Decrypted bundle: { "version": 1, "events": [ ... Nostr events ... ] }. Schema: bundle.schema.json.
共 1 个版本