Observed since 21 Oct, 10:56 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
ChatGPT·Claude·Gemini가 HWP·HWPX의 본문·표·메모·변경추적·각주·링크·수식을 구조대로 읽고 일하게 하는 AI용 한글 문서 리더.
아래아한글(HWP/HWPX)을 PDF로 바꾸지 마세요. 그냥 AI에게 주세요.
AI HWP Reader는 한글 문서의 본문뿐 아니라 병합 표, 여러 단의 표 헤더, 빈 행의 위치, 표 안의 표, 숨은 메모, 변경 내용 추적, 각주·미주, 링크, 수식 스크립트, 이미지 참조를 구조대로 꺼내 ChatGPT · Claude · Gemini가 그 문서를 근거로 일하게 합니다.
아래아한글 · 아래한글 · 한글 · 한컴 · 한글과컴퓨터 · HWP · HWPX → ChatGPT · Claude · Gemini
한컴 설치 불필요 · 기본 런타임 의존성 0개 · 읽기 전용 · 네트워크 요청 없음
터미널도, Python도, pip install도 몰라도 됩니다.
ai-hwp-reader-skill.zip을 받습니다클릭하면 바로 내려받습니다.
SKILL.md와 scripts/hwp_reader_single.py를 파일로 넣어 둡니다.한 번 등록해 두면 다음 대화부터는 한글 문서를 올리는 것만으로 알아서 발동합니다.
등록 없이 그때그때 쓰려면 SKILL.md만 받아 문서와 함께 첨부해도 됩니다.
사업계획서.hwp
이거 읽고 표는 표대로 살려서 정리해줘
또는 그냥:
해줘
Gemini처럼 한글 문서를 그대로 읽는 모델도 있습니다. 다만 병합 셀이나 2·3단 헤더가 섞인 표에서는 이 파서가 셀 좌표를 복원해 채우기 때문에 결과가 더 정확합니다.
코드 실행이 가능한 AI 환경에서는 SKILL.md에 들어 있는 외부 의존성 없는 파서를 실제로 실행한 뒤, 그 결과를 근거로 답합니다.
HWP/HWPX
↓
AI HWP Reader
↓
본문 + 표 구조 + 중첩 표 + 메모 + 변경추적 + 각주·링크·수식·이미지 참조
↓
AI의 요약 · 검토 · 비교 · 계산 · 질의응답
목표는 HWP를 “텍스트로 변환”하는 것이 아닙니다. HWP를 AI가 바로 일할 수 있는 입력으로 만드는 것입니다.
HWP는 특히 실무 문서에서 표가 내용 그 자체인 경우가 많습니다.
공문, 사업계획서, 계약서, 제안요청서, 신청서, 정산서, 점검 체크리스트를 평평한 텍스트로만 꺼내면 문서는 읽힌 것처럼 보여도 중요한 값의 행·열 관계가 사라질 수 있습니다.
예를 들어 원문이 이렇다면:
납품 내역
┌──────┬──────────────┬──────────┬────────┐
│ 구분 │ 공급가액 │ 단가 │ 비중 │
├──────┼──────────────┼──────────┼────────┤
│ 본체 │ 1,000,011,950 │ 14,570 │ 4.7% │
└──────┴──────────────┴──────────┴────────┘
AI에게 필요한 것은 1,000,011,950, 14,570, 4.7%라는 숫자 목록이 아니라 어떤 숫자가 어떤 열에 속하는지입니다.
AI HWP Reader는 저장된 셀 주소와 병합 범위를 사용해 구조를 복원합니다.
| 구분 | 공급가액 | 단가 | 비중 |
|---|---:|---:|---:|
| 본체 | 1,000,011,950원 | 14,570원 | 4.7% |
| 문서 안의 정보 | 지원 | AI에게 전달되는 방식 |
|---|---|---|
| HWP 5.0 / HWPX 본문 | ✅ | 문서 순서대로 텍스트 |
| 일반 표 | ✅ | 행·열 좌표 보존 |
| 병합 셀 | ✅ | rowspan / colspan 보존 |
| 2단·3단 표 헤더 | ✅ | 병합 좌표를 따라 원래 열에 배치 |
| 표의 빈 행 | ✅ | 빈 행도 좌표계의 일부로 유지 |
| 표 안의 표 | ✅ | 부모 셀 위치 + 재귀적 중첩 표 구조 |
| 숨은 메모(주석) | ✅ | [메모]로 본문과 분리 |
| HWP 변경 내용 추적 | ✅ | 추가/삭제 range를 최종 본문과 분리 |
| 각주·미주 | ✅ | 본문과 별도 의미 블록으로 보존 |
| 하이퍼링크 | ✅ | 표시 텍스트와 URL을 구분 |
| 한컴 수식 스크립트 | ✅ | 수식 원본 스크립트를 보존 |
| 이미지 참조 | ✅ | 바이너리/OCR 없이 문서 내부 참조를 보존 |
| 글상자 텍스트 | ✅ | 본문과 구분해 보존 |
| 배포용 HWP ViewText | ✅ | 암호화된 배포용 본문을 로컬에서 복호화 |
| 여러 섹션 | ✅ | Section2 / Section10을 숫자 순서로 처리 |
| 확장자가 잘못 붙은 HWP/HWPX | ✅ | 실제 컨테이너를 보고 판별 |
| HWP/HWPX가 여러 개 든 ZIP | ✅ | 압축을 디스크에 풀지 않고 파일별 처리 |
| 암호 문서 | ❌ | 먼저 암호를 해제해야 함 |
| 스캔 이미지 OCR | ❌ | OCR 영역 |
| 한컴 수식 객체의 완전한 텍스트 복원 | ❌ | 완전 변환하지 않음 |
| HWP 3.0 등 옛 포맷 | ❌ | HWP 5.0 / HWPX 대상 |
| HWP/HWPX 쓰기·수정 | ❌ | 의도적으로 읽기 전용 |
품목 | 규격 | 수량 | 단가 | 금액
| | | 정가 | 할인 | 공급가 | 부가세
위 행의 rowSpan/colSpan이 아래 행의 자리를 차지하고 있다는 사실을 반영합니다. 값이 왼쪽으로 밀리면 결과가 그럴듯해 보여도 의미는 틀릴 수 있기 때문입니다.
셀 안에 다시 표가 들어가도 버리지 않습니다.
[표 안의 표 · 3행 2열]
| 구분 | 금액 | 비율 |
|---|---:|---:|
| GP | 3 | 1.2% |
| LP | 247 | 98.8% |
부모 셀의 위치를 남기고 내부 표는 다시 grid/cells 구조로 제공합니다.
본문에 보이지 않는 검토 메모도 별도 데이터입니다.
[메모] 최신 자료 기준으로 업데이트해주세요.
HWP의 최종 본문과 확인 가능한 변경추적 range를 섞지 않습니다.
[변경추적 삭제] 기존 문구
[변경추적 추가] 수정 문구
AI에게 현재 문서가 무엇을 말하는지와 어떤 문구가 바뀌었는지를 구분해 줄 수 있습니다.
보고자료.zip
├── 01_사업보고.hwp
├── 02_계약조건.hwpx
└── 부록/
└── 03_검토의견.hwp
AI HWP Reader는 ZIP 내부의 HWP/HWPX를 찾아 디스크에 다시 풀지 않고 메모리에서 파일별로 읽습니다. 파일 경계도 유지합니다.
======================================================================
01_사업보고.hwp
======================================================================
...
======================================================================
02_계약조건.hwpx
======================================================================
...
여러 문서를 비교하거나 하나의 업무 묶음으로 검토할 때 바로 사용할 수 있습니다.
SKILL.md인가이 프로젝트의 1순위 사용자는 파서 개발자가 아니라 HWP를 받은 사람과 그 사람의 AI입니다.
SKILL.md 하나에는 두 가지가 같이 들어 있습니다.
따라서 별도의 서버나 변환 사이트 없이 AI의 코드 실행환경 안에서 동작할 수 있습니다.
SKILL.md는 또한 모델에게 다음 원칙을 명시합니다.
AI용 문서 파서에서 가장 위험한 실패는 예외가 아닙니다.
틀린 숫자나 밀린 열을 정상 결과처럼 반환하는 것.
AI는 그 결과조차 자연스럽게 설명할 수 있기 때문입니다.
그래서 AI HWP Reader는 모호하거나 손상된 구조를 가능한 범위에서 fail-closed로 다룹니다.
0.5 계열에서는 특히 다음 경계를 더 엄격하게 검사합니다.
PARA_TEXT의 UTF-16LE 바이트 경계와 8-word 제어문자rowSpan / colSpan| / 백슬래시SKILL.md와 단일 파일이 정본 소스와 일치하는지“읽을 수 있는 부분만 대충 반환”보다 “어디가 잘못됐는지 명확히 실패”하는 쪽을 선택하는 경로가 있습니다.
pip install ai-hwp-reader
Python import 이름은 호환성을 위해 hwp_reader입니다.
from hwp_reader import read, render
blocks = read("계약서.hwp")
print(render(blocks, "md"))
ZIP 또는 문서 묶음:
from hwp_reader import read_documents, render_documents
documents = read_documents("보고자료.zip")
print(render_documents(documents, "md"))
반환 블록은 문서 순서대로 text, table, memo, revision, note, link, equation, image, textbox 등을 포함합니다.
{
"type": "table",
"rows": 9,
"cols": 5,
"grid": [[...], ...],
"cells": [
{
"row": 0,
"col": 0,
"rowspan": 2,
"colspan": 1,
"text": "구분",
}
],
"nested_tables": [...],
}
ai-hwp-reader 문서.hwp --format md
ai-hwp-reader 문서.hwpx --format json
ai-hwp-reader 문서묶음.zip --format md
ai-hwp-reader 문서.hwp --tables-only
ai-hwp-reader 문서.hwp --memos-only
ai-hwp-reader 문서.hwp --revisions-only
ai-hwp-reader ./폴더 -r
0.3.0 이전 사용자용 hwp-reader 명령도 호환성을 위해 함께 설치됩니다.
pip install "ai-hwp-reader[mcp]"
Claude Desktop·Cursor 등 MCP 클라이언트에서 로컬 HWP/HWPX를 읽는 용도로 사용할 수 있습니다. MCP 도구 역시 읽기 전용입니다.
읽기 전용
AI HWP Reader는 HWP/HWPX를 고치거나 다시 저장하지 않습니다. 문서를 프로그램으로 재작성하면서 서식을 조용히 망가뜨리는 위험을 만들지 않습니다.
기본 런타임 의존성 0개
핵심 HWP/HWPX 파서는 Python 표준 라이브러리만 사용합니다. OLE/CFB 리더도 포함돼 있습니다.
네트워크 요청 0개
핵심 파서는 문서를 읽기 위해 외부 서버에 접속하지 않습니다.
실제 문서를 저장소에 넣지 않음
업무 문서는 비공개 회귀검증에 사용할 수 있지만 공개 저장소의 fixture로 커밋하지 않습니다. 공개 시험은 규격대로 생성한 synthetic fixture를 사용합니다.
생성물은 정본이 아님
SKILL.md와 skill/hwp_reader_single.py는 tools/build_single.py가 파서 소스에서 생성합니다. 생성물의 파서 코드를 손으로 따로 관리하지 않습니다.
SKILL.md AI 채팅에 첨부하는 실행 스킬
skill/hwp_reader_single.py 외부 의존성 없는 단일 파일 배포본
hwp_reader/parser.py 공개 파서 진입점
hwp_reader/_parser_core.py HWP 5.0 / HWPX 파서 코어
hwp_reader/_parser_hardening.py 정확성 검증 레이어
hwp_reader/_parser_features.py 0.5 번호·문서정보 의미 복원
hwp_reader/_parser_controls_text.py 0.5 HWP 컨트롤 의미 복원
hwp_reader/_reader_v05.py 0.5 HWP/HWPX 확장 읽기 계층
hwp_reader/_viewtext.py 배포용 HWP ViewText 복호화
hwp_reader/_ole.py 표준 라이브러리 CFB/OLE 리더
hwp_reader/_ole_compat.py 제한적 비표준 CFB 호환 리더
hwp_reader/cli.py CLI
hwp_reader/mcp_server.py 선택형 MCP 서버
tools/build_single.py 단일 파일 + SKILL.md 생성 정본
docs/hwp-format.md 파싱 함정과 구현 노트
tests/ synthetic fixture 기반 회귀시험
개발에 참여하려면 CONTRIBUTING.md를 참고하세요.
AI HWP Reader는 “HWP에서 텍스트를 뽑는 라이브러리”를 목표로 하지 않습니다.
당신의 AI가 한글 문서를 읽고, 표와 메모까지 이해하고, 그 문서를 근거로 일을 하게 만드는 것.
그게 이 프로젝트의 제품 정의입니다.
MIT
한글과컴퓨터가 공개한 HWP 5.0 / OWPML 문서 형식을 근거로 구현했습니다. 오픈소스 구현과의 교차검증 및 고지는 THIRD_PARTY_NOTICES.md에 정리했습니다.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.5.2 | 13 Aug 2026 | 2 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 10:56 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:ea46fdeb719300417ff38604c513c29e34a2ff2a819e351fd46709599975fdc8