Skip to main content

Edit .docx files with tracked changes, comments, and revision restoration — for humans and AI agents

Project description

revisedoc

Edit .docx files the way Word intended — with full change tracking, inline comments, and revision history. No more sending around unmarked copies or losing track of what changed. Use it from the command line, from your Python code, or hook it up as an MCP server so your AI coding agent can edit documents with the same care a human reviewer would.

Features

  • Tracked-changes replace — Replace text using Word-compatible <w:del> / <w:ins> markup
  • Inline comments — Anchor comments to any text range
  • Revision inspection — List all tracked changes with id, author, date, type, text
  • Revision restoration — Undo a specific tracked change
  • MCP server — Expose all operations as structured tools for AI agents (opencode, Claude Code, etc.)

Use Cases

  • Contract redlining — Replace outdated terms in a .docx contract with tracked changes so the other side sees exactly what was modified.

  • Document review workflows — Annotate drafts with inline comments, then list and restore revisions to review changes systematically.

  • AI-assisted editing — Connect the MCP server to opencode or Claude Code and have your agent propose edits with full change tracking — no more "just trust me, I made some changes."

  • Batch processing — Script document updates across hundreds of files using the Python API, with every change recorded in Word's revision log.

Installation

pip install revisedoc          # with pip
pipx install revisedoc          # with pipx (isolated)

For AI agent integration (opencode, Claude Code):

pip install "revisedoc[mcp]"     # pip — quotes required in zsh
pipx install "revisedoc[mcp]"    # pipx — quotes required in zsh

[mcp] is an optional extra — it installs the same revisedoc package plus the mcp SDK dependency. Without it, the CLI and Python API work fine; only the revisedoc-mcp server is unavailable.

Note for zsh users: the square brackets must be quoted. Use pip install "revisedoc[mcp]" not pip install revisedoc[mcp].

CLI Usage

# Replace text with tracked changes
revisedoc replace input.docx output.docx "old text" "new text" --author "Me"

# Add a comment
revisedoc comment input.docx output.docx "target text" "my comment" --author "Reviewer"

# List tracked changes
revisedoc list-revisions input.docx
revisedoc list-revisions input.docx --format json

# Undo a revision (restore deleted text)
revisedoc restore input.docx output.docx --revision-id 3

# Undo an insertion instead
revisedoc restore input.docx output.docx --revision-id 3 --restore-type insertion

# Print document plain text
revisedoc get-text input.docx

Python API

from docx import Document
from revisedoc import replace_text, add_comment, list_revisions, restore_revision, get_full_text, finalize_comments

doc = Document("input.docx")
replace_text(doc, "old phrase", "new phrase", author="MyBot")
add_comment(doc, "some specific text", "Review this part", author="Reviewer")
pending = doc.part._pending_comments
doc.save("output.docx")
finalize_comments("output.docx", pending_comments=pending)

MCP Server — AI Agent Integration

Start the MCP server:

revisedoc-mcp

opencode

Add to opencode.json:

{
  "mcp": {
    "revisedoc": {
      "type": "local",
      "command": ["revisedoc-mcp"],
      "enabled": true
    }
  }
}

Claude Code

Add to .claude/settings.json:

{
  "mcpServers": {
    "revisedoc": {
      "command": "revisedoc-mcp"
    }
  }
}

Available Tools

Tool Description
docx_replace Replace text with tracked changes
docx_comment Add a comment anchored to text
docx_list_revisions List all tracked changes
docx_restore Undo a revision by ID
docx_get_text Print document plain text

Development

pip install -e ".[mcp,test]"
pytest tests/ -v

Architecture

The package structure:

src/revisedoc/
├── __init__.py     # Public API exports
├── editor.py       # Core editing operations
├── cli.py          # Command-line interface
└── mcp.py          # MCP server for AI agents

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

revisedoc-0.1.2.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

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

revisedoc-0.1.2-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file revisedoc-0.1.2.tar.gz.

File metadata

  • Download URL: revisedoc-0.1.2.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for revisedoc-0.1.2.tar.gz
Algorithm Hash digest
SHA256 886690f673ea8713c8613a9a323cb47455c262f50470ffab9d740a6ffa6ed459
MD5 62c87dcb575c752030751ac6490a0597
BLAKE2b-256 a7a24335d222fb0b2a9fd5340936994b3b074595c3a2954901c4d685dce0cef8

See more details on using hashes here.

File details

Details for the file revisedoc-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: revisedoc-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for revisedoc-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 756b361e0627639bfac3fb0cfa31a748c9db752c1e6cee00372a2c6b81688e7a
MD5 277a6ceb5afbe06276de07b0217c1211
BLAKE2b-256 e1918ff877d3d9cfad58e12b670ecb9a9910ec6d856710b831cad55ebe4e595d

See more details on using hashes here.

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