Skip to main content

Read Korean HWP/HWPX documents in Python; edit paragraphs and table cells in HWPX; natural-language edits via Claude Code CLI, Codex CLI, or Anthropic/OpenAI API. AI-friendly API.

Project description

한글의 달인 · master-of-hwp

AI가 한컴오피스 문서(.hwp / .hwpx)를 읽고, 이해하고, 편집하는 오픈소스 플랫폼

PyPI Studio Python License


YouTube 배움의 달인   X @reallygood83   GitHub star



English · CHANGELOG · 로드맵 · 아키텍처 · 기여하기


🎯 왜 이 프로젝트인가

한국의 공공·교육·업무 현장은 아직도 한글 문서(.hwp / .hwpx)를 표준으로 씁니다. 하지만 대부분의 AI 도구는 HWP를 직접 다루지 못하고, DOCX로 변환해 편집한 뒤 돌려놓는 과정에서 서식·표·문단 속성이 망가집니다.

한글의 달인(master-of-hwp) 은 이 문제를 해결합니다:

  • 진짜 포맷 유지 — 변환 없이 원본 HWP/HWPX를 그대로 열고 저장
  • 구조 이해 — 섹션·문단·표의 구조를 AI에 그대로 노출
  • AI-네이티브 편집 — "3번째 문단을 공식 문체로 바꿔줘" 같은 자연어 지시로 수정
  • 라운드트립 보장 — 편집 → 저장 → 재로딩 후에도 구조 훼손 없음

🚀 30초 시작

📘 개발자용 — Python 라이브러리

pip install master-of-hwp
from master_of_hwp import HwpDocument

doc = HwpDocument.open("보도자료.hwpx")
print(doc.summary())                         # 구조 요약 (AI 컨텍스트용)

for s, p, text in doc.find_paragraphs("보도"):
    print(f{s}.{p}: {text}")

edited = doc.replace_paragraph(0, 0, "새 문단 내용")
edited.path.with_suffix(".edited.hwpx").write_bytes(edited.raw_bytes)

🎨 일반 사용자용 — Studio (WYSIWYG GUI)

macOS / Linux:

pip install master-of-hwp-studio
mohwp studio

Windows (PowerShell):

py -m pip install master-of-hwp-studio
mohwp studio

→ 브라우저 자동 실행 → rhwp WYSIWYG 에디터 + AI 작업 패널 한 화면에서 사용.

mohwp mcp-config   # OS별 Claude Desktop 설정 경로 자동 감지해 스니펫 출력

Windows 사용 시 참고

  • 최초 실행 시 Windows 방화벽 허용 팝업 → "액세스 허용" 누르세요 (localhost 용)
  • Python 3.11+ 필요. Python 설치 시 "Add Python to PATH" 체크 권장
  • mohwp 명령어가 안 보이면 새 터미널 열거나 py -m master_of_hwp_studio studio
  • Claude Code CLI 또는 Codex CLI 를 WSL 에서만 쓸 수 있는 경우, PowerShell 에서는 ANTHROPIC_API_KEY / OPENAI_API_KEY API 키 폴백 사용

✨ 주요 기능

기능 상세
문서 열기 .hwp / .hwpx 파일을 네이티브 포맷 그대로 로드
구조 분석 섹션·문단·표·셀을 JSON으로 반환 (summary(), section_tables 등)
문단/셀 편집 replace_paragraph, replace_table_cell_paragraph 불변 API
AI 자연어 편집 doc.ai_edit("내용을 공식체로") — Claude/Codex/API 모두 지원
멀티모달 이미지·PDF 첨부 → Claude Code CLI/Codex CLI가 Read/인식
템플릿 라이브러리 자주 쓰는 양식 저장/불러오기 (~/.mohwp/templates/)
왕복 재현율 fidelity.harness 로 바이트 레벨 검증
MCP 서버 Claude Desktop 에서 open_document, find_paragraphs, replace_paragraph 등 도구 호출

🧠 AI 제공자

제공자 사용 방식 우선순위
Claude Code CLI claude -p "prompt" (구독 사용, API 키 불필요) 🥇 1순위
Claude API ANTHROPIC_API_KEY 환경변수 🥈 2순위
Codex CLI codex exec (ChatGPT Plus/Pro 구독) 🥇 1순위
OpenAI API OPENAI_API_KEY 환경변수 🥈 2순위
Rule-based 위 어떤 것도 없을 때 폴백 🥉 항상 가능

🏗 아키텍처

┌──────────────────────────────────────────┐
│  사용자 (교사 · 공무원 · 개발자)         │
└────────────┬─────────────────────────────┘
             │
    ┌────────┴────────┐
    ▼                 ▼
┌──────────┐    ┌──────────────────┐
│ Claude   │    │ 한글의 달인 Studio│
│ Desktop  │    │ (mohwp studio)   │
└────┬─────┘    └────────┬─────────┘
     │ MCP              │ HTTP
     ▼                   ▼
┌────────────────────────────────┐
│  master-of-hwp Core API        │
│  (HwpDocument, ai_edit, ...)   │
└────────────┬───────────────────┘
             │
   ┌─────────┴─────────┐
   ▼                   ▼
┌────────────┐   ┌──────────────────┐
│ olefile +  │   │ rhwp (Rust+WASM) │
│ zipfile    │   │ WYSIWYG 에디터   │
└────────────┘   └──────────────────┘
  • Python Core — HWP 5.0 (CFBF) + HWPX (OOXML) 파싱, 편집 프리미티브
  • rhwpedwardkim/rhwp 의 Rust + WebAssembly WYSIWYG 편집 엔진 (번들 포함)
  • Studio — 웹 GUI + MCP 서버 통합 (mohwp CLI)

📦 패키지

이름 용도 설치
master-of-hwp Python Core API pip install master-of-hwp
master-of-hwp[ai] + AI provider SDK pip install "master-of-hwp[ai]"
master-of-hwp-studio GUI + MCP + rhwp 번들 pip install master-of-hwp-studio

🛣 로드맵

  • v0.1 ✅ — 읽기 API + HWPX 문단 편집 + fidelity
  • v0.2 ✅ — 표 셀 편집 · 자연어 편집 루프 · CLI provider · Studio GUI · rhwp 번들 · 템플릿 라이브러리 · 멀티모달 첨부
  • v0.3 — HWP 5.0 완전 쓰기 (CFBF resize writer) · 문단 삽입/삭제 · 표 추가/삭제
  • v0.4 — Agentic edit loop (intent → locate → apply → verify → rollback)
  • v1.0 — API 호환성 계약 고정

세부: docs/ROADMAP.md


🤝 기여하기

이 프로젝트는 커뮤니티 기여를 환영합니다.

도움 주시면 좋은 영역:

  • HWP 5.0 CFBF 쓰기 엔진 (v0.3)
  • 문단/표 삽입·삭제 연산
  • 추가 LLM provider (Gemini, 로컬 Ollama)
  • Windows/Linux 인스톨러
  • 접근성(a11y) 개선

작은 기여도 환영합니다 — 문서 오탈자, 번역, 샘플 파일 모두 가치 있습니다.


🙏 감사의 말

이 프로젝트는 edwardkim/rhwp (by @edwardkim) 의 Rust + WebAssembly HWP 파싱/렌더링 엔진을 기반으로 합니다. master-of-hwp-studio 의 WYSIWYG 에디터는 rhwp 가 있기에 가능합니다. rhwp 도 같이 ⭐ 눌러주세요.


📄 라이선스

MIT — LICENSE 참고.


만든 사람 — 배움의 달인

📺 YouTube  ·  𝕏 @reallygood83  ·  GitHub

도움이 되셨다면 ⭐ 한 번 눌러주시면 큰 힘이 됩니다.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

master_of_hwp-0.2.3.tar.gz (10.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

master_of_hwp-0.2.3-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

Details for the file master_of_hwp-0.2.3.tar.gz.

File metadata

  • Download URL: master_of_hwp-0.2.3.tar.gz
  • Upload date:
  • Size: 10.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for master_of_hwp-0.2.3.tar.gz
Algorithm Hash digest
SHA256 7a149fb715766d953312b4a6ec2d9f84e5a8d03b0330e7dcf01fb03d39127d3a
MD5 7834261a4eca67101157c3fb63329df6
BLAKE2b-256 e95d34b457230daeecaf2b84b09c9a28f64b69e5a409b0ede6e9c040b58dd6c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for master_of_hwp-0.2.3.tar.gz:

Publisher: release.yml on reallygood83/master-of-hwp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file master_of_hwp-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: master_of_hwp-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 33.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for master_of_hwp-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e9046ed6110cb1f06c5a3e8d415bda14fbc7e34000e0b3ff94183067aa31d3bc
MD5 cdb604a435dc4c03a4112ac0627cb8b3
BLAKE2b-256 ab474d374a7400ac1fe673138cc8b41a5f809bc4c4d57db44627d74969d096e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for master_of_hwp-0.2.3-py3-none-any.whl:

Publisher: release.yml on reallygood83/master-of-hwp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page