HWP viewing, editing, and automation share one engine
rhwp parses HWP 5.0 binary files, HWPX XML documents, and a limited corpus-verified subset of HML. Its Rust document model feeds layout, pagination, SVG output, Canvas rendering, PDF and PNG export, and editing operations. The same engine reaches users through a web studio, browser extensions, a VS Code extension, npm packages, a native CLI, and WebAssembly.
The project is Korean-first. Its main README and issue discussions are Korean, while a substantial English README mirrors features and setup. The English page states that the roadmap's Korean version remains the source of truth. That language choice fits a project centered on South Korea's HWP format, but it affects contributors who need to follow 14,917 files and a fast-moving typesetting effort through translated documentation.
The editor goes far beyond text extraction
The renderer handles paragraphs, tables, equations, images, charts, headers, footers, master pages, footnotes, multiple columns, and several object-placement modes. Editing includes text changes, formatting dialogs, table operations, undo and redo, plus an hwpctl-compatible action layer. The project can save HWP and HWPX and uses preflight checks to stop unsupported HML content from being saved with silent loss.
That breadth should not be confused with perfect document fidelity. Issue #6095 reports a nested table creating 303 pixels of empty space and pushing content onto a second page. Issue #6035 compares table-row pagination that leaves 31 points blank and produces 12 pages where the reference output has 11. These reports are specific, actively investigated renderer gaps, exactly the kind a buyer should test with its own forms.
Browser packages and release binaries avoid the full build
Web applications can embed @rhwp/editor or call the lower-level @rhwp/core WASM parser and renderer. The README also points users to Chrome, Edge, Firefox, and VS Code packages. Native release archives include checksums, and rhwp capabilities prints the CLI's machine-readable command contract before a user attempts document work.
Release v0.8.4 narrowed distribution rather than adding more official channels. It kept GitHub Pages, native CLI archives, two npm packages, editor marketplaces, and browser extensions. It withdrew PyPI, @rhwp/node, a container image, operating-system packages, install scripts, and an installation Action after v0.8.3 had exposed them unintentionally. Teams depending on those removed routes should not treat their earlier appearance as ongoing support.
MCP gives agents document operations without uploading files
The native binary can run an MCP server that exposes HWP information, search, field filling, and document conversion. Large files can be opened into a session for repeated queries and edits without reparsing each call. That is a useful boundary for local agents handling Korean forms, because the host can pass a file path to the local process instead of sending the document to another hosted conversion service.
Claude Code is named as one supported host, and the project provides integration and troubleshooting guides. The capability is still only as accurate as the parser and layout engine beneath it. An agent that fills named fields may be safe after output verification; an agent that converts a layout-sensitive 12-page form deserves visual comparison. The MCP tag describes a real built-in server, not a proposed integration.
What happened when we ran it
Our sandbox installed 200 Rust packages in 41 seconds at commit 496333b, then finished the build in 168 seconds. The checkout occupied 1,614.7 MB and contained roughly 793,046 source lines across 14,917 files. A Dockerfile, Compose file, tests directory, and 12 CI workflows were all present. Source setup succeeded in the unprivileged 3-CPU, 12 GB container.
The test command ran until the 900-second limit. By then, Cargo had reported 3,880 passing tests and zero failures. The supplied tail shows fields_missing_file_exit_runtime_silent_stdout, Unicode-confusable checks, and other field tests passing, followed by a clean 13-test result. It then started tests/gate_contract.rs and announced 4 tests, but the log ends before their result.
Calling that a test failure would misstate the evidence. No assertion failed in our run; the overall suite simply did not finish inside 15 minutes. The 1,614.7 MB checkout and long-running suite make contributor setup heavier than the native binary path. Maintainers running a change locally should select relevant targets first and reserve a longer CI job for the complete set.
Korean document fidelity remains the buying test
rhwp was pushed on August 25, 2026, and GitHub listed 195 open issues and pull requests. The latest activity pairs narrow renderer reports with proposed fixes, including Korean quote width, page ownership, table splitting, and Studio zoom state. That issue-to-pull-request rhythm is healthy, though it also shows how many edge cases a reverse-engineered office format contains.
Use rhwp when open code, local processing, web delivery, or agent access matters enough to test the actual corpus. Keep a set of representative government forms, school documents, tables, equations, and print outputs as acceptance fixtures. A general office suite is safer when users need many formats. A smaller parser is easier when text extraction alone solves the job. rhwp earns the larger commitment when editing and layout are requirements.

