quillwork
Lossless, AI-friendly editing of Word documents and existing PowerPoint decks, for Python 3.12 and newer.
An agent reads a compact text view of the document, with a short anchor on every paragraph, table row and comment. It sends small JSON edits against those anchors. Quillwork writes each edit into the original file as a real Word tracked change and leaves every byte it did not need to touch exactly as it was. Letterheads, numbering, styles, fields and existing tracked changes survive, and a person reviews the agent's work in Word's Review pane.
from pathlib import Path
import quillwork
doc = quillwork.Document.open(Path("contract.docx").read_bytes())
doc.set_agent("AI")
print(doc.read()) # [b103 #1.] The Consultant provides advice ... for 16 hours per week.
doc.apply({
"base_version": doc.version,
"ops": [{"op": "replace_text", "anchor": "b103", "find": "16 hours", "replace": "20 hours"}],
})
Path("contract.edited.docx").write_bytes(doc.save())
doc.help() lists every op. This is an alpha (0.0.x): the op language and the sidecar format
may change between releases.
quillwork.Presentation edits existing .pptx text, tables and speaker notes and fills
literal {{name}} template slots across formatted runs. It preserves the branded deck and
returns exact source/candidate hashes and a text review report. PowerPoint candidates need
application-owned approval and a visual fit check. Slide creation and image/chart editing
are outside this initial API. See the
PowerPoint guide.
- Source, docs and benchmarks: https://github.com/gardan4/quillwork
- Binding reference: https://github.com/gardan4/quillwork/blob/main/docs/BINDING.md
- MCP server and agent tools: the
quillwork-serverpackage
Licensed under Apache-2.0.
Metadata
Release files for quillwork 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| quillwork-0.0.4.tar.gz | 372.8 kB | With provenance | Details for quillwork-0.0.4.tar.gz |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| quillwork-0.0.4-cp312-abi3-manylinux_2_28_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ x86-64 | Details for quillwork-0.0.4-cp312-abi3-manylinux_2_28_x86_64.whl |
| quillwork-0.0.4-cp312-abi3-macosx_11_0_arm64.whl | CPython 3.12 | abi3 | macOS 11.0+ ARM64 | Details for quillwork-0.0.4-cp312-abi3-macosx_11_0_arm64.whl |
Total release size: 5.0 MB
Release files / quillwork-0.0.4.tar.gz
| Download URL | quillwork-0.0.4.tar.gz |
|---|---|
| Size | 372.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c67fe27bde58462101b80f2c1ef2746ea22d479e7f38b3d2d8f07c6a5205526d
|
|
BLAKE2b-256 checksum How to use checksums |
4540c189af51cb20be8d193a3bc5deae47e5120ab24ca65845fb050407a0e01b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.
Transparency logRelease files / quillwork-0.0.4-cp312-abi3-manylinux_2_28_x86_64.whl
| Download URL | quillwork-0.0.4-cp312-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
82279c71f5f5408d43455dc2a86b0cd182facb3a06936d18a5dc2d53c18ab119
|
|
BLAKE2b-256 checksum How to use checksums |
8496555b65c49f1869274136f2c3f6715a7267dee2b9723826555c676dffe41e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.
Transparency logRelease files / quillwork-0.0.4-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | quillwork-0.0.4-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bcc3eff56439fbf80d4222ad3af81b9498ecf1f9563c6346e3b87ab2ff135047
|
|
BLAKE2b-256 checksum How to use checksums |
c0add4203d238fe9a220a2730add3111bb48949e4b67e7064db8ec4ab778e2b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.
Transparency logSecurity for quillwork 0.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 3 files in this release have been uploaded with provenance metadata.
Attestation for quillwork-0.0.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.