ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิวได้แล้วต้นแบบ · อัปเดตทุก 30 นาที
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · วิธีติดตั้งภาษาไทยทุกตัว

stetdoc

โดย clauseo-aiรุ่น 0.9.2i★ 9iรันบนเครื่อง
ชื่อใน registryio.github.clauseo-ai/stetdoc

วิธีติดตั้ง

ใช้ทำอะไรได้

ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ

  • ต่อแบบ ติดตั้งในเครื่อง
  • บัญชีหรือคีย์ ไม่ต้องใส่คีย์
  • หมวด เอกสาร ตาราง และงานออฟฟิศ
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Read, redline and compare Word .docx files with real tracked changes

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ · ✓ ตรวจคำสั่งแล้ว 13 พ.ย. 2569

ขั้นแรก: คุณใช้ AI ตัวไหน

เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง

ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน

ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ

  1. ลง Node.js ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js

    เปิดหน้าดาวน์โหลด Node.js ↗

  2. เปิดไฟล์ตั้งค่าของแอป Claude บนคอม

    SettingsDeveloperEdit Config

  3. วางค่าตั้งนี้แล้วบันทึกไฟล์

    {
      "mcpServers": {
        "stetdoc": {
          "command": "npx",
          "args": [
            "-y",
            "stetdoc",
            "mcp"
          ]
        }
      }
    }
  4. ปิดแอป Claude แล้วเปิดใหม่

  5. ลองเลย

    ใช้ stetdoc บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude บอกว่ากำลังใช้ stetdoc หรือมีชื่อเครื่องมือของ stetdoc ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ChatGPT ยังต่อ stetdoc ไม่ได้

stetdoc ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ

คุณทำแบบนี้แทนได้

ก · ใช้แอปที่ต่อ stetdoc ได้

  • ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
  • ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)

ข · ตัวอื่นในหมวด เอกสาร ตาราง และงานออฟฟิศ ที่ต่อกับ ChatGPT ได้

เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์

ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน

ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Node.js ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js

    เปิดหน้าดาวน์โหลด Node.js ↗

  2. เปิด Terminal

    Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell

  3. วางคำสั่งนี้แล้วกด Enter

    claude mcp add --scope user stetdoc -- npx -y stetdoc mcp
  4. พิมพ์ /mcp ใน Claude Code

    ต้องเห็น stetdoc ในรายการและขึ้นว่าเชื่อมต่อแล้ว

  5. ลองเลย

    ใช้ stetdoc บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude Code บอกว่ากำลังใช้ stetdoc หรือมีชื่อเครื่องมือของ stetdoc ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน

ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Node.js ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js

    เปิดหน้าดาวน์โหลด Node.js ↗

  2. กดปุ่มนี้เพื่อเปิด Cursor

    เปิดใน Cursor

    Cursor จะถามยืนยันการติดตั้ง ให้กด Install

  3. เปิดแชตของ AI ใน Cursor โหมด Agent

  4. ลองเลย

    ใช้ stetdoc บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Cursor บอกว่ากำลังใช้ stetdoc หรือมีชื่อเครื่องมือของ stetdoc ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน

ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Node.js ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js

    เปิดหน้าดาวน์โหลด Node.js ↗

  2. กดปุ่มนี้เพื่อเปิด VS Code

    เปิดใน VS Code

    VS Code จะถามยืนยันการติดตั้ง ให้กด Install

  3. เปิดแชตของ AI ใน VS Code โหมด Agent

  4. ลองเลย

    ใช้ stetdoc บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า VS Code บอกว่ากำลังใช้ stetdoc หรือมีชื่อเครื่องมือของ stetdoc ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

โปรแกรมอื่นที่ใช้ MCP ได้ เช่น Windsurf, Zed หรือ Gemini CLI มีวิธีเพิ่มต่างกัน ดูวิธีของแต่ละตัวในหน้ารวมโปรแกรม

ดูโปรแกรมที่ใช้ MCP ทั้งหมด →

ค่าตั้งแบบไฟล์ JSON อยู่ในหัวข้อ “สำหรับคนเขียนโค้ด” ด้านล่าง

ติดตรงไหน? ถามคนที่ใช้ stetdoc อยู่💬 พูดคุย →
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON

ติดตั้งในเครื่อง

Claude Code

claude mcp add --scope user stetdoc -- npx -y stetdoc mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "stetdoc": {
      "command": "npx",
      "args": [
        "-y",
        "stetdoc",
        "mcp"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "stetdoc": {
      "command": "npx",
      "args": [
        "-y",
        "stetdoc",
        "mcp"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "stetdoc": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "stetdoc",
        "mcp"
      ]
    }
  }
}

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

สรุป

ดาวน์โหลดต่อสัปดาห์i
1,000/สัปดาห์
licensei
Apache-2.0
การเชื่อมต่อ
รันบนเครื่อง
รุ่นล่าสุดi
0.9.2
ส่งเข้า registryi
3 พ.ย. 2569
แก้โค้ดล่าสุดi
12 พ.ย. 2569
ผู้ทำ
clauseo-ai
แพ็กเกจ
npm: stetdoc
เว็บผู้ทำ
stetdoc.clauseo.chat
สถานะใน registry
ใช้งานอยู่

ใช้กับโปรแกรมไหนได้

ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569

ติดตั้งบนเครื่องได้ใน

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

ดูโปรแกรมทั้งหมดพร้อมข้อดีข้อเสีย →

คู่มือที่เกี่ยวข้อง

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 14 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub clauseo-ai ซึ่งเป็นเจ้าของ repo

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด เมื่อวานซืน

  • ✓ ผ่าน

    มีสัญญาอนุญาต (license)

    ใช้ Apache-2.0

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

พูดคุย

ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์

ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย

ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx

เข้าสู่ระบบด้วย Google เพื่อโพสต์

รีวิวจากผู้ใช้

ยังไม่มีรีวิว

เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิว

เทียบกับตัวอื่นในหมวด เอกสาร ตาราง และงานออฟฟิศi

  • ดาวมากกว่า 93% ของอีก 3891 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 73% ของอีก 3891 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 3891 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

stetdoc ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด เมื่อวานซืน และส่งรุ่นล่าสุด (0.9.2) เข้า registry 11 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Puter MCP, XcodeBuildMCP, XcodeBuildMCP

ตัวอื่นในหมวดเดียวกัน

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

โดย HeyPuterใช้กันมาก★ 44.2Kอัปเดต 5 เดือนที่ผ่านมา

รันบนคลาวด์✓ เจ้าของบริการ · puter.com

XcodeBuildMCP

ให้ AI จัดการโปรเจกต์ Xcode สั่ง build และใช้ iOS Simulator

โดย getsentryใช้กันมาก↓ 130.5K/สัปดาห์ ยอดของแพ็กเกจที่ใช้ร่วม★ 6.6Kอัปเดต 4 เดือนที่ผ่านมา

รันบนเครื่อง✓ เจ้าของบริการ · xcodebuildmcp.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

โดย cameroncookeใช้กันมาก↓ 130.5K/สัปดาห์ ยอดของแพ็กเกจที่ใช้ร่วม★ 6.6Kอัปเดต 14 เดือนที่ผ่านมา

รันบนเครื่อง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

stetdoc is how AI agents work in Word. Every change your agent makes lands in Word as a tracked change with its name on it, and everything it didn't touch comes back exactly as it was.

# macOS

brew install clauseo-ai/tap/stetdoc

Linux

curl -fsSL https://stetdoc.clauseo.chat/install.sh | sh

Windows

uv tool install stetdoc

stetdoc init

stetdoc init installs the skill for the agents you pick, or for every agent it finds when there's no terminal. Every other way to install is in the channels below.

[Read the docs](https://stetdoc.clauseo.chat/docs) · Quickstart · Changelog · Free and open source, MIT or Apache-2.0

$ stetdoc replace msa.docx 'due within thirty (30) days' 'due within forty-five (45) days'

replace "due within thirty (30) days" with "due within forty-five (45) days": once, at p145 (clause 11.1) applied 1 operation, tracked as Claude 2026-11-02T07:44:07Z. base 96c462d4a556723b:0:96c462d4a556723b 0 replace p145: deletion #54, insertion #55 p145 {style "First Paragraph"} 11.1 Payment … shall be due within {--thirty (30)--}{#54 C}{++forty-five (45)++}{#55 C} days … validated 1 unit: no problems, and this file needs no separate check. wrote msa.edited.docx msa.docx is unchanged. Run the next edit on msa.edited.docx to build on this one, …

stetdoc 0.9.1 on a Harvey LAB supply agreement, with the long lines cut short. {--…--} is the deletion and {++…++} the insertion, each a Word revision by Claude.

Word found unreadable content.

Every agent that edits a .docx's XML gets this message from Word sooner or later. Word splits a sentence across many runs and stores tracked changes as XML structure. It refuses a file whose elements fall out of schema order. One slip in the XML and the document won't open.

stetdoc checks every edit against the schema and Word's own rules before it writes a byte. A batch of edits applies in full or not at all. Bad input, a hostile file included, fails with a stable error code. stetdoc never panics, hangs or touches the network.

Fastest on every model.

We gave agents eight contract tasks and three long markups, five ways: with stetdoc, with no plugin, with Anthropic's docx skill, with Anthropic's legal plugin and with Adeu. Then we opened every file they wrote in Word. The agents using stetdoc were fastest on all three models.

  • 0 of 118 stetdoc runs left Word anything to repair.
  • 6 of 6 long Harvey LAB markups passed their checks and opened clean in Word, on every model.
  • [5 ms](docs/install.md#why-the-channel-matters) for each stetdoc call to start.

docx-agent-bench: 639 runs in Claude Code 2.1.311 and Antigravity CLI 1.4.8, every file opened in Microsoft Word for Mac 16.114.3. How it was graded.

Open, save, same bytes.

Run a document through stetdoc without editing it and you get the identical file back, byte for byte. Edit one clause and only that clause's elements change. Styles, numbering, comments, other people's tracked changes and macros stay where their authors left them.

$ stetdoc unpack msa.docx && stetdoc pack msa.stet -o roundtrip.docx

$ cmp msa.docx roundtrip.docx && echo identical identical

Every build checks this on 306 documents, and every night random edits run on 48,595 public documents. FIDELITY.md says, feature by feature, what stetdoc keeps exactly, what it normalizes, what it shows read-only and what it leaves out.

It knows where 11.1 is.

Lawyers cite clauses by number. Word works those numbers out when it draws the page, so they appear nowhere in the file. stetdoc computes them, and a search hands your agent the clause, a stable paragraph ref and the exact text.

$ stetdoc view msa.docx --find 'thirty' --find 'governing law'

p81 {§3.3} …be submitted to the Seller not less than thirty (30) days prior to the first day of the… {~ "thirty" 2} p145 {§11.1} …each Shipment of Products shall be due within thirty (30) days from the date… {~ "thirty" 1} p268 22.7 Governing Law of the Arbitration Agreement. This arbitration agreement contained in this… {~ "governing law" 1} {position: p81..p466 of find "thirty" (13), "governing law" (3): 16 matches in 15 blocks (15 of 15 blocks)}

Three of the 16 hits, with the long lines cut short. This block leaves out the other 13 and the clause headings stetdoc prints above them.

Twelve matches is not one.

replace matches text the way it reads, across bold, italics and run breaks. When the text appears more than once, stetdoc writes nothing and lists every match with its clause. Missing text gets the same refusal. stetdoc also refuses an edit aimed at a paragraph that changed after the agent read it, so a change never lands in the wrong place.

$ stetdoc replace msa.docx 'thirty (30) days' 'forty-five (45) days'

error[ambiguous_match]: "thirty (30) days" is in the document 12 times, and it must be there once: p81 (clause 3.3) …d to the Seller not less than [thirty (30) days] prior to the first day of the… p145 (clause 11.1) … Products shall be due within [thirty (30) days] from the date of the Bill of … next: Nothing was applied, so retry at once, with no dry run: to change every one, pass --all; to pick one place, …

Two of the 12 places, with the long last line cut short. stetdoc lists all 12.

Hands off the XML.

stetdoc gives your agent the document as text, with a ref on every paragraph and a number on every clause. The zip and its XML stay with stetdoc. In Claude Code, the plugin adds a hook that stops Claude from unzipping a .docx, scripting it with python-docx or rewriting its XML. The only way into the file is the one stetdoc checks.

In Claude Code 2.1.275 or later, one line installs the plugin. It carries the skill and the hook. The binary must still be on the PATH, because Claude Code runs the command rather than MCP.

/plugin install stetdoc --marketplace clauseo-ai/stetdoc

One install for every agent you run.

stetdoc init installs the skill for the agents you pick, or for the ones it detects. It knows Claude Code, Codex, Cursor, OpenCode, OpenClaw, Hermes Agent, Grok Build, cmx2, Antigravity CLI, GitHub Copilot CLI, Amp and Factory. It still installs for Gemini CLI, which Google retired in favour of Antigravity CLI.

stetdoc init --project   # in this project, plus a short block in AGENTS.md

stetdoc init --list # what is installed, and where stetdoc init --remove # take it out again stetdoc skills get core # the full skill, embedded in the binary

Agents that take tools instead of a shell get the same commands over the Model Context Protocol from stetdoc mcp. stetdoc init --mcp prints how to register it with each agent. Install the skill with the server. Without the skill, an agent whose server fails to start falls back to unzipping the .docx and editing its XML. Use stetdoc with your agent has the setup for each one. To serve stetdoc mcp to cloud apps, with auth and TLS, see Self-hosting the MCP server.

Install stetdoc

Pick any channel. Every one installs the same binary.

# Homebrew, macOS and Linux

brew install clauseo-ai/tap/stetdoc

Install script, macOS and Linux

curl -fsSL https://stetdoc.clauseo.chat/install.sh | sh

uv or pipx, macOS, Linux and Windows

uv tool install stetdoc pipx install stetdoc

npm

npm install -g stetdoc

Cargo, from source

cargo install stetdoc --locked

The uv and pipx wheel holds the native binary, so no Python runs after the install. The install script checks the SHA-256 and installs to ~/.local/bin. npm swaps its Node launcher for the binary when install scripts run.

An agent can run stetdoc dozens of times in one task. Homebrew, uv, pipx and the install script put the binary itself on your PATH, so each call starts in about 5 ms. Through npx, every call starts Node and npm first, which costs a tenth of a second or more. Keep npx stetdoc mcp for the MCP server, which starts once per session. uvx stetdoc runs stetdoc once without installing it. Install covers Windows, updating, uninstalling and pinning a version.

The commands

# Every revision has an author. Set it here, or save yours once with stetdoc init.

export STETDOC_AUTHOR="Jane Doe"

Each hit shows its ref, its clause and the exact text.

stetdoc view contract.docx --find 'net 30' --find 'governing law'

Writes contract.edited.docx. The old text must appear once, or nothing changes.

stetdoc replace contract.docx 'net 30' 'net 45' stetdoc comment contract.edited.docx 'Liability Cap' 'Is this mutual?' --in-place

A redline of any two versions.

stetdoc compare old.docx new.docx -o redline.docx

An edit writes NAME.edited.docx beside the input, then NAME.edited-2.docx, and never overwrites. -o FILE names the output and --in-place writes back. Receipts and views name the tracked changes other people made, so the agent can report them.

For longer work, unpack a working copy and edit its readable files with any tool, string replacement and apply_patch included:

stetdoc unpack contract.docx        # writes contract.stet/

$EDITOR contract.stet/document.md # edit the text after each ref stetdoc check contract.stet # the redline pack will write, validated stetdoc pack contract.stet # writes contract.edited.docx with real tracked changes

Inserting paragraphs, formatting, and accepting or rejecting revisions go to stetdoc edit as a batch of operations. How stetdoc works explains working copies, refs, base tokens and receipts. The CLI reference lists every command and flag, such as --clause, --range, --all and --manual, with examples that run as tests.

Build on stetdoc

The engine is a Rust library, stetdoc-core, built around one handle:

let mut doc = Document::open(bytes, &OpenOptions::default())?;

let view = doc.view(&ViewSpec::default())?; // Tracked by default. let receipt = doc.edit(Edit::ops(batch, stamp))?; // Unedited, it returns the input bytes. let saved = doc.save()?;

Node and Bun use it through the npm package @clauseo/stetdoc, with TypeScript types generate

ตัดมาแค่ช่วงต้น อ่านต่อใน repo