Skip to main content

Automated DOCX Redlining Engine

Project description

Adeu: Agentic DOCX Redlining Engine

Adeu Open Source project is a Python engine designed to allow AI Agents and LLMs to redline Microsoft Word documents (.docx). It visualizes the Word documents as markdown to the LLM and maps back changes to the Word document.

🤖 Model Context Protocol (MCP) Server

Adeu is primarily designed as an MCP Server. This allows AI tools (like Claude Desktop, Cursor, or custom agents) to directly interact with local Word documents.

Setup for Claude Desktop

  1. Install Adeu (or clone the repo):

    git clone https://github.com/dealfluence/adeu.git
    cd adeu
    # Ensure you have a python environment ready
    pip install .
    
  2. Configure Claude Desktop: Open your config file (MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json) and add the server:

    {
      "mcpServers": {
        "adeu": {
          "command": "uv",
          "args": [
            "--directory",
            "/absolute/path/to/adeu",
            "run",
            "adeu/server.py"
          ]
        }
      }
    }
    

    (Note: You can use python instead of uv if you manage dependencies manually, but uv is recommended for fast environment handling).

Exposed Tools

Once connected, the Agent has access to these tools:

  1. read_docx(file_path)

    • Extracts text from a local DOCX file.
    • Usage: "Read the contract at ~/Downloads/saas_agreement.docx."
  2. apply_structured_edits(original_path, edits, output_path)

    • The core engine. The Agent constructs a list of changes (Insert, Delete, Modify) and Adeu injects them.
    • Usage: "Change the Governing Law to 'California' and delete the Non-Compete clause."
  3. diff_docx_files(original_path, modified_path)

    • Compares two files and returns a semantic word-level diff.
    • Usage: "Compare v1.docx and v2.docx and summarize the changes."

🖥️ CLI Usage

Adeu includes a standalone CLI for batch processing or manual workflows.

# 1. Extract text for LLM processing
adeu extract contracts/agreement.docx
# Output: contracts/agreement.md

# 2. Apply Redlines (from a JSON list of edits or a modified Markdown file)
adeu apply contracts/agreement.docx contracts/agreement_modified.md
# Output: contracts/agreement_redlined.docx

📦 Library Usage

You can use Adeu directly in your Python applications to build custom legal tech pipelines.

from io import BytesIO
from adeu.redline.engine import RedlineEngine
from adeu.models import DocumentEdit, EditOperationType

# 1. Load your document
with open("contract.docx", "rb") as f:
    doc_stream = BytesIO(f.read())

# 2. Define an edit (usually generated by an LLM)
edit = DocumentEdit(
    operation=EditOperationType.MODIFICATION,
    target_text="State of New York",
    new_text="State of Delaware",
    comment="Changed governing law per client instruction."
)

# 3. Apply the edit
engine = RedlineEngine(doc_stream)
engine.apply_edits([edit])

# 4. Save the result
with open("contract_redlined.docx", "wb") as f:
    f.write(engine.save_to_stream().getvalue())

🚀 Key Features

  • Native Redlines: Generates real Microsoft Word Track Changes (w:ins, w:del).
  • Split-Run Handling: Intelligently handles Word's complex XML structure where a single word like "Contract" might be split into ["Con", "tract"].
  • Format Preservation: Does not convert the doc to Markdown and back. Formatting, headers, footers, and images are preserved 100%.
  • Native Comments: Injects real comments into the word/comments.xml part, linked to specific text ranges.

🛠️ Installation for Development

Adeu uses poetry for dependency management.

git clone https://github.com/dealfluence/adeu.git
cd adeu
poetry install
poetry run pytest

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

adeu-0.1.0.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

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

adeu-0.1.0-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file adeu-0.1.0.tar.gz.

File metadata

  • Download URL: adeu-0.1.0.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for adeu-0.1.0.tar.gz
Algorithm Hash digest
SHA256 063536aa4803ea9698254658e8125c5db01aff922d6791259a277a2674639d93
MD5 2c86debca26e489d0377c15a99d9f54b
BLAKE2b-256 e5e5435226eb58cdbd36fee1b46e34ad8d2aa91ad0c1202d438da23654351a8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for adeu-0.1.0.tar.gz:

Publisher: release.yml on dealfluence/adeu

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

File details

Details for the file adeu-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: adeu-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for adeu-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 388db710ea329e47e330f2a57691c26f2459587f519638c8f2b35540ca6d9d91
MD5 55b58d35b8f66941da2a9d8856eaf77c
BLAKE2b-256 2a9570952e71e68432e74b2ca426253fd247addfbe789747cf4f8d253e9429f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for adeu-0.1.0-py3-none-any.whl:

Publisher: release.yml on dealfluence/adeu

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