dsh-hwp
韩文HWP/HWPX文档免本地依赖读取工具 适合需要让Agent阅读和解析韩文Hangul办公文档并转为Markdown的任务。
安裝
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:kevin9327/dsh-hwp說明文件
閱讀完整 README ↗Usage
Ask the agent to read a document, for example:
공고문.hwpx파일을 읽고 신청 자격과 마감일을 정리해 줘.
The model calls read_hwp:
{ "file_path": "공고문.hwpx" }
and receives something like:
공고문.hwpx (hwpx 5.1.1.0, builtin reader, markdown) — lines 1-42 of 42
2026년 지원사업 모집 공고
...
| 구분 | 신청 기간 | 비고 |
| --- | --- | --- |
| 1차 | 3.2.~3.20. | 온라인 접수 |
Configuration
Every field has a default. Override fields in your profile's cordis.patch.yml; remember that a patch replaces a
row's whole config, so restate every field you want to keep non-default.
- id: dsh-hwp
name: dsh-hwp
config:
readLimit: 500
maxOutputChars: 30000
| Field | Default | Description |
|---|---|---|
maxFileBytes | 52428800 (50 MiB) | Largest file read by one call. |
maxDecompressedBytes | 268435456 (256 MiB) | Largest total decompressed size of one document (decompression-bomb guard). |
readLimit | 1000 | Default and maximum number of lines per call. |
maxOutputChars | 40000 | Character budget of one returned window. |
maxLineChars | 4000 | Longer lines are cut and marked. Must not exceed maxOutputChars. |
timeoutMs | 120000 | Cooperative timeout of one call. |
converter.command | "" | Absolute path of an external converter executable. Empty disables it. |
converter.args | ["{input}"] | Converter arguments; {input} is replaced by the path of a temporary copy of the document. |
converter.mode | fallback | fallback: use the converter only when the built-in reader reports HWP_UNSUPPORTED_FORMAT or HWP_MALFORMED. always: use it for every file. |
converter.timeoutMs | 60000 | Converter timeout. |
converter.maxOutputBytes | 33554432 (32 MiB) | Largest converter output accepted. |
External converter
You can plug in any command-line converter you trust that prints Markdown or text to stdout. The plugin:
- reads the document through
ctx.fs(size-checked), - writes those bytes to a private temporary directory as
document.hwp/.hwpx/.hml, - spawns
converter.commanddirectly, without a shell, with{input}inconverter.argsreplaced by that temporary path — nothing from the model's arguments or the document ends up on the command line, - enforces the timeout and output cap, and deletes the temporary directory.
Encrypted and distribution documents are never sent to the converter. On Windows, .cmd / .bat wrappers are
rejected because they would need a shell; point command at the real executable (for a Node.js converter, use
node.exe and put the script path first in args). The converter runs with the harness process's permissions,
outside any sandbox — configure only programs you trust.