Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/Tygb99/threads-writing-skillsnpx agentmods add skills/tygb99/threads-writing-skills/threads-html-imageWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tygb99/threads-writing-skills/threads-html-image)<a href="https://agentmods.dev/skills/tygb99/threads-writing-skills/threads-html-image"><img src="https://agentmods.dev/badge/skills/tygb99/threads-writing-skills/threads-html-image.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00189 | $0.01594 |
| Opus 5 | $0.00095 | $0.00797 |
| Sonnet 5 | $0.00038 | $0.00319 |
| Haiku 4.5 | $0.00019 | $0.00159 |
Grade A, and why
threads-html-image scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Threads HTML 이미지 렌더
한국어 글자가 들어간 이미지는 HTML로 만들고 실제 브라우저로 렌더한다. 이미지 생성 모델은 한글 글자를 뭉개고 같은 입력에 같은 결과를 주지 않는다. 숫자가 하나라도 틀리면 글의 신뢰가 같이 무너지므로, 재현되는 경로를 쓴다.
산출물은 HTML 하나와 그 옆의 PNG 하나다. 렌더만 하고 끝내지 않는다. 눈으로 본 PNG가 결과물이다.
렌더
렌더 스크립트는 이 저장소의 threads-brand-card/scripts/render_brand_card.py 하나를 공용으로 쓴다. 카드가 아닌 이미지에도 그대로 쓴다.
python3 ../threads-brand-card/scripts/render_brand_card.py card.html card.png --width 1080 --height 1440
headless Chrome을 직접 부르고, 끝나면 PNG 크기를 검사해 기대값과 다르면 실패로 끝낸다. 크기 검사가 통과하지 않으면 PNG를 결과물로 쓰지 않는다.
렌더가 안 끝나고 매달릴 때
headless Chrome은 스크린샷을 다 찍고도 프로세스가 남는 경우가 있다(2026-08-01 실측: PNG는 정상 생성됐는데 45초 이상 종료되지 않음). 그래서 스크립트에 --timeout이 있고 기본 60초다. 타임아웃이 걸려도 PNG가 정상 크기면 성공으로 처리한다.
직접 명령을 짤 때는 --no-first-run, --no-default-browser-check, --disable-dev-shm-usage를 같이 넣는다. 첫 실행 안내나 기본 브라우저 확인 창이 렌더를 붙잡는다.
크기는 같이 올리는 사진이 정한다
Threads는 한 칸에 여러 장을 올리면 비율이 다른 쪽을 잘라낸다. 카드만 올리면 1080x1350, 실사진과 같이 올리면 사진 비율에 맞춘다.
아이폰·갤럭시 세로 사진은 3:4이므로 1080x1440이다. 사진 비율은 EXIF 회전을 반영해서 재야 한다(sips는 회전 전 값을 준다) — 측정 명령은 threads-brand-card 스킬 "크기" 절이 정본이다.
사진도 같은 픽셀 크기로 맞춰 저장하면 두 장이 나란히 잘리지 않는다:
python3 -c "
from PIL import Image, ImageOps
im = ImageOps.exif_transpose(Image.open('src.jpeg')).resize((1080, 1440), Image.LANCZOS)
im.save('out.png')"
HTML 작성 규칙
- CSS는 전부 HTML 안에 인라인으로 둔다. 외부 파일·네트워크 폰트를 쓰지 않는다.
- 폰트는 시스템 한국어 스택:
-apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif. body에 고정 픽셀width/height를 준다. 고정 크기 export에서vw·vh를 쓰면 렌더 크기에 따라 글자가 흔들린다.- 한국어는
letter-spacing: 0. - 로컬 이미지를 넣을 때는 절대 경로를 쓴다.
- 화살표는
->로 쓴다. 유니코드 화살표는 폰트에 따라 자리가 밀린다. - 이모지를 넣지 않는다.
렌더 후 검증 (이게 본 작업이다)
PNG를 열어서 다음을 찾는다. 하나라도 걸리면 HTML을 고쳐 다시 렌더한다.
- 한국어 글자가 잘리지 않았는가 (특히 마지막 줄, 긴 단어)
- 패널이 겹치지 않았는가
- 하단 문구가 본문 패널에 눌리지 않았는가
- 대비가 충분한가 (흐린 회색 글자를 어두운 배경에 얹지 않았는가)
- 줄바꿈이 어색한 자리에서 일어나지 않았는가
PNG 크기는 render_brand_card.py가 기대값과 다르면 exit로 실패시키므로 따로 보지 않는다. 크기만 맞는다고 성공이 아니다 — 렌더된 PNG를 열어 내용이 비지 않았는지 본다. (이전 판이 지시했던 mean_rgb 로그 필드는 렌더 스크립트 출력(rendered=/size=/bytes=)에 존재하지 않아 2026-09-02에 삭제했다.)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · -10 lines 37e47b1e69cd
- 8d ago First seen · 102 lines · 189 tokens per session scan A 85b35289ddf2
threads-html-image is a skill published in the GitHub repository Tygb99/threads-writing-skills (48 stars, last pushed 5d ago), licensed MIT. It adds 189 tokens to every session and 1,594 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
webgl-holographic-foil
A self-contained WebGL2 hero: thin-film interference over a crushed-foil surface whose palette shifts with the viewing angle; move the cursor to tilt the film.
general-video
Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated…
html-ppt-hermes-cyber-terminal
OpenDesign + BYOK: choosing and wiring your own model, hands-on — cost, quality, and the routing decision. Built as a decision-grade AI literacy deck for engineers, IT, applied-AI teams.
html-ppt-taste-brutalist
16:9 HTML deck in tactical-telemetry / CRT-terminal taste. Deactivated-CRT charcoal slides, white-phosphor monospace, hazard-red accent, scanline overlay, ASCII syntax, density over decoration. Distilled from Leonxlnx/taste-skill brutalist-skill (Tactical Telemetry mode).
diagnostic-stem-delivery
Audio production with diagnostic analysis, timecode parsing from documents, and verified export workflow.
chengfeng-check-updates
An environment manager for a video-editing system. It checks whether its skills and runtime—the software needed to run them—are installed and compatible.