
Hide valuable information where it's least expected
[!WARNING] This project is entirely vibe-coded (likely partially plagiarized from this repository) and the author is a dumb-dumb who just thought the idea was funny
Use SEO-gaming recipe preambles as a vehicle for encoding secret messages (the prompt can really be anything though, the shared prompt is simply a key that both encoder and decoder agree on).
Hides secret messages in natural-looking text using neural linguistic steganography.
Both sides must use the exact same model, quantization, top-k value, and prompt. Any difference causes decoding failure.
--device cpu --no-4bit but will be significantly slower# Create and activate a virtual environment, and install required packages
python -m venv env
source env/bin/activate
pip install -r requirements.txt
# or, using `uv`
uv sync
uv pip install -r requirements.txt
[!NOTE] Set the
HF_TOKENenvironment variable to authenticate to HuggingFace
python main.py encode --message "attack at dawn"
This uses the default recipe preamble prompt and Llama-3.2-3B. The stego text is printed to stdout and saved to stego_output.txt.
python main.py decode --stego-file stego_output.txt
# Encode with a custom prompt
python main.py encode \
--message "meet me at noon" \
--prompt "The best thing about making scrambled eggs is: "
# Decode (prompt must match exactly!)
python main.py decode \
--stego-file stego_output.txt \
--prompt "The best thing about making scrambled eggs is: "
# Use a different model
python main.py encode \
--model "mistralai/Mistral-7B-v0.3" \
--message "secret message" \
--prompt "Every Sunday morning my grandmother would"
| Flag | Default | Description |
|---|
--model | meta-llama/Llama-3.2-3B | HuggingFace model name/path |
--prompt | (recipe SEO preamble) | Context prompt (must match between encode/decode) |
--message | (interactive) | Secret message to encode |
--stego-text | Stego text string to decode | |
--stego-file | stego_output.txt | Stego text file (output for encode, input for decode) |
--top-k | 256 | Top-k vocabulary size for CDF |
--max-tokens | (unlimited) | Maximum tokens to generate |
--device | cuda | Device: cuda or cpu |
--no-4bit | off | Disable 4-bit quantization (uses fp16; needs more VRAM) |