Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add airmang/hwpx-plugins --skill skillgit clone --depth 1 https://github.com/airmang/hwpx-pluginsWrote 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/airmang/hwpx-plugins/skill)<a href="https://agentmods.dev/skills/airmang/hwpx-plugins/skill"><img src="https://agentmods.dev/badge/skills/airmang/hwpx-plugins/skill/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/airmang/hwpx-plugins/skill"><img src="https://agentmods.dev/badge/skills/airmang/hwpx-plugins/skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00065 | $0.02284 |
| Opus 5.5 | $0.00026 | $0.00914 |
| Sonnet 5.5 | $0.00013 | $0.00457 |
| Haiku 4.5 | $0.00006 | $0.00228 |
Grade A, and why
hwpx scanned grade A with 1 finding 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 16d 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.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
found = subprocess.run( How it starts
The opening of the file, as written. The whole thing — 119 lines — stays where its author put it; the contents beside it link to each section on GitHub.
hwpx (ChatGPT용 · 스킬 {{WEB_VERSION}})
.hwpx는 ZIP 안에 OWPML XML이 든 한/글 문서이고, .hwp는 HWP 5.0 바이너리다. 이 스킬은 한컴 프로그램 없이
python-hwpx 엔진으로 두 형식을 같은 문서 모델로 다룬다. 이 환경에는 MCP 도구(start_workflow 등)가 없다. 모든 작업은 Python 도구로 한다.
1. 시작 — 대화마다 한 번
Python 도구에서 아래 블록을 그대로 실행한다. 스킬 디렉터리(이 SKILL.md가 있는 곳)를 이미 알면
SKILL_DIR에 그 경로를 문자열로 적는다.
import importlib, json, os, site, subprocess, sys
SKILL_DIR = None
if SKILL_DIR is None:
found = subprocess.run(
["find", "/", "-maxdepth", "8", "-name", "skill-manifest.json", "-path", "*hwpx*", "-not", "-path", "/proc/*"],
capture_output=True, text=True, timeout=120,
).stdout.split()
SKILL_DIR = os.path.dirname(found[0]) if found else None
if SKILL_DIR is None:
raise SystemExit("스킬 파일을 찾지 못했다. 사용자에게 알리고 멈춘다.")
boot = subprocess.run([sys.executable, os.path.join(SKILL_DIR, "scripts", "bootstrap.py")],
capture_output=True, text=True, timeout=900)
lines = boot.stdout.strip().splitlines()
status = json.loads(lines[-1]) if lines else {"ok": False, "error": boot.stderr[-800:]}
print(json.dumps(status, ensure_ascii=False, indent=1))
if not status.get("ok"):
raise SystemExit("설치 실패: 위 JSON을 사용자에게 그대로 보여 주고 멈춘다.")
importlib.invalidate_caches()
user_site = site.getusersitepackages()
if os.path.isdir(user_site) and user_site not in sys.path:
sys.path.insert(0, user_site)
os.environ["HWPX_AUTOMATION_WORKSPACE_ROOTS"] = "/mnt/data"
import hwpx
assert hwpx.__version__ == status["expected"]["core"], hwpx.__version__
AUTOMATION = bool(status.get("automation", {}).get("ok"))
if AUTOMATION:
import hwpx_automation
assert hwpx_automation.__version__ == status["expected"]["automation"], hwpx_automation.__version__
print("준비 완료: python-hwpx", hwpx.__version__, "/ 새 문서 만들기(W5)", "가능" if AUTOMATION else "불가")
- 설치는 스킬에 든 파일만 쓰고 인터넷에 접속하지 않는다. 실패하면 다른 버전을 받거나 다른 방법으로 설치하지 않는다.
AUTOMATION이 거짓이면 W1~W4만 쓸 수 있다. 새 문서 요청에는 "이 환경에서는 새 문서 만들기를 쓸 수 없다"고 답한다.
2. 파일 규칙
- 첨부 파일은
/mnt/data에 있다(os.listdir("/mnt/data")로 확인). 원본을 덮어쓰지 않는다. 결과는/mnt/data/<원본 이름>_수정.hwpx처럼 새 경로에 저장한다. - 결과 파일은
[파일 이름](sandbox:/mnt/data/파일 이름)형식의 링크로 준다. .hwp(HWP 5.0)도HwpxDocument.open으로 연다. 결과는 원본과 같은 형식으로 저장한다 (.hwp→.hwp,.hwpx→.hwpx). 사용자가 원하면 다른 형식으로 저장한다(출력 경로의 확장자만 바꾼다)..hwp를 열면doc.conversion_report를 본다.unconverted나dropped에 개수가 있으면 옮기지 못한 내용이 있다는 뜻이므로 그 사실을 사용자에게 알린다..hwp로 쓸 수 없는 내용이면 저장 전에Hwp5Error(hwp5-write-unsupported)가 난다. 이때는.hwpx로 저장할지 사용자에게 묻는다.- 암호·배포용·DRM 문서는 열리지 않는다(
Hwp5Error). 그대로 알린다. - core/llms.txt의 "
.hwp는BadZipFile" 문장은HwpxPackage에만 해당한다.HwpxDocument.open은.hwp를 연다.
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 16d ago First seen · 119 lines · 65 tokens per session scan A f4468acdd98a
hwpx is a skill published in the GitHub repository airmang/hwpx-plugins (30 stars, last pushed today), licensed Apache-2.0. It adds 65 tokens to every session and 2,284 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-30.
Other skills, from other repositories
form-fill
Use this workflow when filling an existing HWPX across native fields, labeled cells, canonical paths, and body anchors through one analyzed, atomic, and verified mixed-form transaction.
reference-preserving-edit
Use this workflow when editing an existing HWPX while minimizing layout drift by copying first, inspecting the relevant package parts, making bounded edits with the current MCP tools, and validating the result before handoff.
template-generation
Use this workflow when generating an HWPX from an approved template or from a new blank document by orchestrating the current MCP text, table, style, and copy tools without adding new public server tools.
kordoc
A command-line and server tool for reading and creating Korean official documents, including HWP, HWPX, PDF, DOCX, and spreadsheet files. It can convert documents to Markdown and create or update HWPX files.
ai-hwp-reader
A read-only tool for opening Korean HWP and HWPX word-processing files, or ZIP archives containing them, without Hancom Office. It converts the contents to Markdown while preserving document structure.
ai-hwp-reader
An AI skill that tells a coding agent how to read Korean HWP and HWPX word-processing files, including files inside ZIP archives. It extracts the content and then uses it to complete the user's requested task.