cd /news/large-language-models/show-hn-steganeur-hide-secret-messag… · home topics large-language-models article
[ARTICLE · art-106231] src=github.com ↗ pub= topic=large-language-models verified=true sentiment=· neutral

Show HN: Steganeur – Hide secret messages in LLM-generated text (Rust)

A new open-source Rust project called Steganeur hides secret messages inside LLM-generated text by encoding them into token choices, producing cover text that is statistically identical to normal generation. The tool, dual-licensed MIT/Apache-2.0, targets llama.cpp and requires the server to return top_logprobs with token id fields; three of its four methods require CPU due to GPU logprob drift, while the block method works on any server.

read1 min views1 publishedAug 21, 2026

Hi HN! I made a project that I found really fun and I'm proud of the idea and implementation. This first came up when speaking to a friend, we were talking around how to do steganography in natural text, and realized an LLM's token choices are a natural channel.

Steganeur accomplishes this by encoding a secret message into the token choices of a language model, producing cover text that reads like a normal sentence. A recipient recovers the message using only the cover text and the model. With the rejection method, the output is statistically identical to normal generation, not just something that looks similar.

The interesting problem I hit: steganeur reads the model's logprobs directly, and three of the four methods need them to come out exactly the same on encode and decode. On GPU reductions are non-deterministic, so the logprobs drift between runs, which is enough to corrupt the bits. Only one method (block) survives on GPU, because it bins tokens by their id rather than by probability. So block works on any server, the other three need CPU.

Written in Rust, dual-licensed MIT/Apache-2.0, targets llama.cpp (the server must return top_logprobs with token id fields)

Comments URL: [https://news.ycombinator.com/item?id=49390543](https://news.ycombinator.com/item?id=49390543)

Points: 1

── more in #large-language-models 4 stories · sorted by recency
── more on @steganeur 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-steganeur-hi…] indexed:0 read:1min 2026-08-21 ·