Ctx2img
Cut context tokens by rendering it as images. `ctx2img paint <path|->` turns any text-shaped input (a repo, a directory, a file, markdown, stdin) into dense images that carry the full text at 60-75% fewer tokens, with stable handles and a verbatim factsheet; `ctx2img read` recovers guaranteed-exact text. Use before ingesting any large text or at the START of any task in an unfamiliar or large repo.From its SKILL.md
npx -y skills add h5i-dev/h5i-ctx2img --skill ctx2imgAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 24 days oldThe repository was created 24 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.7 KB, 875 tokens by cl100k_base, as published. Nobody here has run it
ctx2img — Repository Atlas
ctx2img compiles the repository into a query-conditioned map: an image where
position = module topology, cell area = code size, elevation (▲1–▲5) =
relevance to your current task, hatched red = trust hazards, arrows =
dependencies. Every region/file/symbol carries a stable handle (R3, F103,
S12) that resolves back to exact source. The image is an index, never the
source of truth — exact code always comes from ctx2img read as text.
Workflow
-
Index the repo against your task (auto-builds on first run):
ctx2img paint . --budget 2000 -q "<one line describing your task>"stdout is the legend (region roster with handles + elevation). If it prints an
# atlas: <path>line, Read that PNG file now — the image carries the geography the legend can't. On small repos it may print a text-only roster instead (representation: text) — that alone is a complete map; no image to read. -
Pick the summit. Start from the highest-elevation regions (▲5/▲4) and their top files.
⚠net/exec/secrets/evaltags mark files that touch the outside world — relevant for anything security-adjacent. -
Focus where the task points — paint just that module or file:
ctx2img paint src/auth -q "<task>" # one module's FULL SOURCE as image tiles ctx2img paint src/auth/session.rs # a single file as dense pagesSubdirectory paints share the whole repo's handles and relevance, so the tiles line up with the atlas you already saw.
-
Get exact source as text (never trust pixels for code):
ctx2img read F103 # whole file, numbered ctx2img read S12 # just that symbol's line range ctx2img read F103 --lines 40:120 ctx2img read --find "session" # search paths+symbols, answers in handles -
Compress any bulky text (a long doc, tool output, a spec — or a whole directory) before ingesting it:
ctx2img paint doc.md --out-dir /tmp/pages # markdown → section map (headings = territories) ctx2img paint some/dir --query "<task>" # dir → atlas folio: overview + full-source tiles cat text | ctx2img paint --out-dir /tmp/pages # flat text → dense pagesThen Read the page PNGs in order. Keep the printed factsheet line — it carries the exact identifiers (paths, SHAs, IDs) as text; quote those from the factsheet, never by transcribing them from the image. If paint says text is cheaper, just read the text.
Rules
- The atlas is for navigation; inscribe tiles and paint pages are for
reading. Quote, edit, hash-compare, and reason over
ctx2img readoutput or the factsheet (text), never over strings you transcribed from an image — image misreads are silent and look plausible. - Handles are stable across runs and queries — safe to mention in commits, notes, and follow-up commands.
- Re-run
ctx2img paint . --budget 2000 -q "<new task>"whenever your task changes; it re-elevates the same geography in well under a second (warm cache), so map early and often. --jsononpaintgives{pages, legend_path, ...}when you need to script it.- For a human-facing map (README, PR description):
ctx2img paint . --theme parchment.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.