Launch article · Wolf Runtime by WolfSDK
Wolf Runtime by WolfSDK: edit Office files and see what changed
If your software edits a customer's spreadsheet, contract or deck, it should leave everything it didn't touch alone and say what it did change.
Published
We built Wolf Runtime around that rule. It reads, edits and renders XLSX, DOCX, PPTX and PDF through one command-line contract, using our WolfXL, WolfDocx, WolfPPT and WolfPDF engines, with WolfRender for rendering. Operations differ by format.1
Untouched parts stay untouched
An Office file is a package of parts. We measured what happens to the parts an operation should leave alone, on test files we collected, for same-format operations:
- DOCX: 55 of 55 no-op saves came out byte-identical to the input. In 52 files we injected tracked changes and accepted them, and no unrelated part changed.2
- PPTX: 38 of 38 no-op saves came out byte-identical. A text replacement in the 37 decks that have editable text changed no unrelated parts.2
- XLSX: across 45 workbooks, no-op saves and recalculation saves changed no unrelated parts. Recalculation rewrites the formula sheets and the calculation chain, and we count those as intended.2
We ran LibreOffice 26.2.5.2 over the same files. It rewrote unrelated parts in every one of them on a no-op save: 1,195 part changes across the 45 XLSX files, 1,400 across the 55 DOCX files and 3,311 across the 38 PPTX files. An office suite that re-serializes on save is expected to do that, and it is the baseline we compare against.3
Converting between formats is a different operation with its own checks.
A receipt for every run
For supported operations, Wolf writes a JSON receipt with engine identities, input and output records, status, warnings and errors. For an edit, Wolf names each package part it rewrote and counts the parts it left alone, so you can compare the result with the original in a few lines of code. You decide whether the recorded change is the change you wanted.4
A loss report for every render
Renderers approximate, and Wolf says where. For each omission, approximation and font substitution it finds, Wolf gives a location, a reason and a severity. When a loss is error-level, Wolf marks the output partial instead of passing it off as success. You set the policy: accept the warnings, send an approximation to review, or refuse the file.5
How close is the rendering?
We score rendering as mean SSIM distance to Office's own PDF output on a frozen held-out corpus (lower is closer), against LibreOffice, office2pdf and libreoffice-pure.
| Format | Documents | Wolf | LibreOffice | Page count matches Office (Wolf / LibreOffice) |
|---|---|---|---|---|
| DOCX | 42 | 0.136 | 0.203 | 37 / 36 |
| PPTX | 51 | 0.107 | 0.120 | 51 / 51 |
| XLSX | 39 | 0.202 | 0.332 | 21 / 11 |
Wolf has the lowest mean distance in all three formats, and office2pdf and libreoffice-pure finish behind both. The PPTX gap to LibreOffice is small, and XLSX pagination is where we have the most work left. Wolf reported omissions on 12 of the DOCX, 18 of the PPTX and 8 of the XLSX files. This is the third scoring pass on the same corpus, and we fixed earlier failures between passes, so treat it as a regression benchmark. We have not run a blind test, and a mean cannot tell you how any single document will look.6
Running inside a sandbox
The embedded binary has no network client, runs no subprocess, interprets no macros, resolves no external references and collects no telemetry.7 In a Docker run on Linux, we got the same task results with an empty environment, no HOME, networking off, a read-only root and fonts from a declared directory.8
The static Linux binary is about 50 MB.9 Added to a public code-interpreter sandbox image, Wolf adds 48.4 MiB of image layers where LibreOffice plus Poppler adds 357.9 MiB. The base image dominates, so the whole image is 9.0% smaller: 3,142.8 MiB against 3,452.4 MiB.10
We make no claim of hostile-file hardening. Run untrusted documents under operating-system resource limits. Optional recognition and the session features run as separate processes with their own boundaries.
Reproducible when you pin the inputs
Pin the input bytes, engine build, fonts, clock, locale and random seed, and supported output reproduces. Receipt timestamps and timings vary by design.11
Licensing and what comes next
Wolf Runtime is commercial software, licensed under a written Order. Starting prices are on the Wolf Runtime page: Internal from $15,000 a year, Product from $60,000 a year and Platform from $150,000 a year. A free evaluation is available on request. WolfXL and WolfPPT have MIT community editions, and the current WolfXL Commercial and WolfDocx Commercial subscriptions are listed on the pricing page. Commercial editions are licensed separately.12
We plan .NET hosts first and Java hosts next over the C ABI. Package names, prices and dates are not announced.13
If you edit Office files programmatically, try Wolf on the files you can't afford to corrupt and tell us where it breaks.