Are you the author? Sign in to claim
Give AI agents motion vision, decode hidden messages inside random-dot “ghost font” videos.
https://playground.likec4.dev/share/uPAKaklH79/
Decode text hidden inside random-dot “ghost font” videos with Codex, Claude Code, Claude.ai, or plain Python.
No more ghosting. The message is the motion—and this decoder reads it.
Ghost-font videos conceal text inside a moving random-dot field. Pause the video and every frame appears to be uniform noise. The letters emerge only when their dots move differently from the background, so image-only readers miss the message entirely.
Ghost Font Decoder analyzes that motion with dense optical flow, reconstructs the hidden glyphs, and gives the agent both a clean reveal and a heatmap it can verify.
| Paused frame — looks like noise | Recovered motion mask |
|---|---|
![]() | ![]() |
ghost-decode skill across Codex, Claude Code, and Claude.ai.Install the plugin, then pass it a video:
/plugin marketplace add haroontrailblazer/ghost-font-decoder
/plugin install ghost-font-decoder@ghost-font-tools
/ghost-decode path/to/ghost-video.mp4
You can also ask naturally:
What does
ghost-video.mp4say?
Add this repository as a plugin source, install Ghost Font Decoder, start a new task, and ask:
Use
$ghost-decodeto tell me whatghost-video.mp4says.
Codex runs the bundled decoder, inspects the generated mask, displays the result in the task, and reports the recovered text.
Build the uploadable skill package:
python claude-ai-skill/build-zip.py
Upload ghost-decode.zip under Settings → Capabilities → Skills, attach a
video, and ask what it says. See the
Claude.ai installation guide for the complete
setup.
pip install -r requirements.txt
python decode.py examples/ghost-message.mp4
The included example decodes to:
Text in the video: HELLO HUMAN
No plugin installation is required. You can also paste
prompts/decode-in-chat.md into a supported chat,
attach the video, and run the same optical-flow workflow.
The screenshots below document the same hidden message—I LOVE YOU—being recovered in Claude Code, Claude.ai, and Codex. They show the agent invocation, the reported text, and the generated visual evidence.
Click or tap any screenshot to view it at full resolution.
Claude Code ran the decoder across 185 frame pairs, compensated for drift, and identified the full three-line message.
The uploaded ghost-decode skill accepted the video and returned the hidden
message directly in the conversation.
Claude.ai returned both outputs used to verify the answer: the cleaned reveal and the raw motion heatmap.
Opening the generated reveal makes the hidden I LOVE YOU message directly visible.
Codex invoked the installed skill, reported the decoded text, rendered the reveal, and linked both generated outputs.
The screenshots are execution evidence, not mockups. The decoded masks are generated from motion in the supplied video.
Video
↓
Dense optical flow between consecutive frames
↓
Median background-motion subtraction
↓
Counter-motion scoring and drift registration
↓
Temporal score accumulation
↓
Thresholding and mask cleanup
↓
Revealed image + heatmap + optional OCR
Under the hood, the decoder:
Each run writes:
| File | Purpose |
|---|---|
revealed.png | Clean binary mask for direct visual inspection and OCR |
revealed_heatmap.png | Raw opposition score for faint or partially recovered glyphs |
Useful command-line options:
python decode.py VIDEO \
-o OUT_DIR \
--method farneback \
--stride 2 \
--max-frames 200 \
--no-ocr
This repository ships native skill packaging for each supported agent:
| Surface | Integration |
|---|---|
| Claude Code | .claude-plugin/plugin.json, marketplace metadata, and claude-skills/ghost-decode/SKILL.md |
| Claude.ai | Uploadable skill built from claude-ai-skill/ghost-decode/SKILL.md |
| Codex | .codex-plugin/plugin.json, codex-skills/ghost-decode/SKILL.md, and agents/openai.yaml |
| Any supported chat | Portable workflow in prompts/decode-in-chat.md |
| Standalone | decode.py and requirements.txt |
pytesseract for optional OCRInstall Python dependencies:
pip install -r requirements.txt
On Windows, Tesseract can be installed with:
winget install UB-Mannheim.TesseractOCR
The reveal and heatmap are still generated when Tesseract is not installed.
ghost-font-decoder/
├── decode.py # Optical-flow decoder
├── examples/ # Reproducible sample video and outputs
├── claude-skills/ # Claude Code skill
├── claude-ai-skill/ # Claude.ai uploadable skill source
├── codex-skills/ # Codex skill and UI metadata
├── commands/ # Claude Code slash command
├── prompts/ # Portable in-chat workflow
└── docs/ # Project page and proof assets
Ghost fonts are often presented as text that AI cannot read. The harder truth is simply that the information is encoded in motion, not in any single frame. Dense optical flow is designed to measure exactly that signal.
This project packages a proven computer-vision technique as an agent skill, so the same assistant that receives the video can run the analysis, inspect the evidence, and answer with the recovered message.
Released under the MIT License.
Built by Haroon K M (@haroontrailblazer).
⚠️ Experimentelle Skill-Sammlung für deutsches Recht (Arbeits-, Gesellschafts-, Insolvenz-, Datenschutz-, Prozessrecht u
191 agents, 155 skills, and 82 plugins cross-compatible with Claude Code, Cursor, and Codex
Manage multiple Claude Code agents from TUI or Web with tmux and git worktrees
Project management using GitHub Issues + Git worktrees for parallel agent execution