Chalk Labs
Need help deploying docx?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/sairam-muppalla-docx
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, writing, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
docx- Description
- Create, read, edit, template, and review Word .docx files.
- License
- MIT
- Instructions
- 184 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (12)
- LICENSE
- SKILL.md
- revisions-and-comments.md · references/
- docx_comments.py · scripts/
- docx_common.py · scripts/
- docx_create.py · scripts/
- docx_edit.py · scripts/
- docx_read.py · scripts/
- docx_revisions.py · scripts/
- docx_template.py · scripts/
- docx_validate.py · scripts/
- test_docx_skill.py · tests/
SKILL.md (first lines)
# Docx Skill
Create, read, edit, and template Microsoft Word `.docx` files with
python-docx via small CLIs. It handles text, styles, lists, tables,
images, headers/footers, `{{token}}` templating, tracked changes
(list/accept/reject), comments (list/add/delete), TOC and page-number
fields, and package health checks. It does not render documents itself
(PDF needs LibreOffice — see Converting to PDF) or edit legacy `.doc`.
## When to Use
- The user asks to generate a Word document (report, letter, contract).
- You need the text, outline, styles, or embedded images of a `.docx`.
- You must change an existing `.docx`: replace text, edit table cells,
insert/delete paragraphs, apply styles, merge fragmented runs.
- You have a `.docx` template with `{{placeholders}}` to fill from data.
- The document has tracked changes to review, accept, or reject.
- You need to read reviewers' comments, or add/delete comments.
- A `.docx` won't open or behaves oddly and you need corruption triage.
- The document needs a table of contents or "Page X of Y" footers.
- Not for: `.doc` (legacy), `.odt`, or WYSIWYG layout work.
## Prerequisites
- Python 3.10+ with `python-docx` installed:
`pip install python-docx` (import name is `docx`; lxml comes with it).
- Comments `add` uses the native API on python-docx >= 1.2 and an XML
fallback on older versions — both are automatic.
- For image blocks: the image files must exist locally (PNG/JPEG).
## How to Run
All helpers live in `scripts/` next to this file. Run them with the
`terminal` tool; each supports `--help` and prints JSON to stdout.
```bash
python scripts/docx_create.py spec.json out.docx
python scripts/docx_read.py out.docx --text
python scripts/docx_edit.py replace out.docx --find old --replace new
python scripts/docx_template.py tpl.docx values.json filled.docx
python scripts/docx_revisions.py list out.docx
python scripts/docx_comments.py list out.docx
python scripts/docx_validate.py out.docx
```
## Quick Reference
| Task | Command |
| --- | --- |
| Create from JSON spec | `docx_create.py spec.json out.docx` |
| Full text (body+tables+headers/footers) | `docx_read.py f.docx --text` |
| Heading outline + table shapes | `docx_read.py f.docx --structure` |
| Styles actually used | `docx_read.py f.docx --styles` |
| Extract embedded images | `docx_read.py f.docx --images outdir/` |
| Detect tracked changes/comments | `docx_read.py f.docx --revisions` |
| Find/replace (formatting kept) | `docx_edit.py replace f.docx --find A --replace B -o out.docx` |
| Set a table cell | `docx_edit.py set-cell f.docx --table 0 --row 1 --col 2 --text X` |
| Insert paragraph before index N | `docx_edit.py insert f.docx --index N --text X --style Normal` |
| Delete paragraph N | `docx_edit.py delete f.docx --index N` |
| Apply style to paragraph N | `docx_edit.py style f.docx --index N --style "Heading 1"` |
| Merge equal-format adjacent runs | `docx_edit.py normalize f.docx -o out.docx` |
| Insert TOC field before para N | `docx_edit.py toc f.docx --index N -o out.docx` |
| "Page X of Y" footer fields | `docx_edit.py page-numbers f.docx` |
| Fill `{{tokens}}` | `docx_template.py tpl.docx values.json out.docx --strict` |
| List revisions (id/author/date/text) | `docx_revisions.py list f.docx` |
| Accept / reject all revisions | `docx_revisions.py accept-all f.docx -o out.docx` (or `reject-all`) |
| Accept / reject one revision | `docx_revisions.py accept f.docx --id 3 -o out.docx` |
| List comments (+anchored text) | `docx_comments.py list f.docx` |
| Add comment anchored to text | `docx_comments.py add f.docx --target "phrase" --text "note" --author You` |
| Delete comment by id | `docx_comments.py delete f.docx --id 0` |
| Health-check the package | `docx_validate.py f.docx` (exit 1 on errors) |
## Procedure
1. **Create.** Write a JSON spec with `write_file`, then run
`scripts/docx_create.py`. The spec supports: `page` (size + margins in
mm), `header`/`footer` strings, `footer_page_numbers` (adds a
"Page X of Y" field footer), `styles` (custom paragraph styles with
font, size, bold/italic, hex `color`), and `blocks` — `heading`
(level 1-9), `paragraph` (either `text` or a `runs` list where each run
may set `bold`/`italic`/`underline`), `bullet_list`, `numbered_list`,
`table` (`header` row rendered bold, `rows`, optional built-in table
`style` such as `Table Grid`), `image` (`path`, optional `width_mm`),
`toc` (Table of Contents field), and `page_break`. The full spec
format is documented at the top of `scripts/docx_create.py`.
2. **Read.** Use `scripts/docx_read.py` with exactly one mode flag.
`--text` returns body paragraphs, all table cell text, and
header/footer text as JSON. `--structure` returns the heading outline
plus paragraph/table/section counts. `--images DIR` copies every file
under `word/media/` out of the package.
3. **Edit.** Use `scripts/docx_edit.py`. `replace` walks body, tables
(nested included), headers and footers, and preserves run formatting;
add `--body-only` to skip headers/footers. Pass `-o out.docx` to keep
the original; omit it to edit in place. Paragraph indices for
`insert`/`delete`/`style`/`toc` refer to `--structure`/`--text` body
order. Run `normalize` first on documents that came out of heavy Word
editing — it merges adjacent runs with identical formatting so later
find-replace matches reliably.
4. **Review revisions.** `docx_revisions.py list` reports every `w:ins`
and `w:del` (id, author, date, affected text) anywhere in body,
tables, headers, or footers. `accept-all` / `reject-all` resolve them
in bulk; `accept`/`reject --id N` handles a single revision. Accept
keeps insertions and drops deleted text; reject does the reverse.
5. **Comments.** `docx_comments.py list` returns each comment's id,
author, date, body text, and the document text it is anchored to.
`add --target "some phrase"` anchors a new comment to the first
occurrence of that phrase (runs are split as needed; formatting is
preserved). `delete --id N` removes the comment and its markers
without touching document text.
6. **Template.** Put `{{name}}`-style tokens in the document. Run
`scripts/docx_template.py` with a JSON object of values. Use
`--strict` to fail when tokens remain unfilled; the JSON output lists
`filled` counts and `unfilled_tokens` either way.
7. **Verify** (always): re-read the output with `--text` or
`--structure`, and run `docx_validate.py` on anything you produced
via revision/comment surgery.
## Converting to PDFFrom SaiRam-Muppalla/hermes-skills-backup, MIT.
More from SaiRam-Muppalla/hermes-skills-backup
- 0.570score
pulse
SaiRam-Muppalla
Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X/Twitter within a configurable…
SkillAFreshness: AClaude Code +9 - 0.570score
syllabus
SaiRam-Muppalla
Generates a curated supplementary reading list from any course syllabus using Consensus academic search.
SkillAFreshness: AClaude Code +9 - 0.566score
litreview
SaiRam-Muppalla
Academic literature orientation skill that searches papers via free keyless APIs (PubMed E-utilities + OpenAlex) by default — with the Consensus MCP as an…
SkillAFreshness: AClaude Code +9 - 0.565score
deep-research
SaiRam-Muppalla
Run a disciplined, multi-source research investigation for a high-stakes question or decision — fan-out web search across many channels, parallel sub-agents…
SkillAFreshness: AClaude Code +9 - 0.565score
research
SaiRam-Muppalla
Default entry point for any research request — a hybrid router that classifies the question deterministically and either delegates to a specialist research…
SkillAFreshness: AClaude Code +9 - 0.565score
prospecting
SaiRam-Muppalla
When the user wants to find, qualify, and build a list of prospects to reach out to — across B2B SaaS, general B2B, or local small businesses.
SkillAFreshness: AClaude Code +9 - 0.560score
powerpoint
SaiRam-Muppalla
Create, read, edit .pptx decks with python-pptx.
SkillAFreshness: AClaude Code +9 - 0.560score
pdf
SaiRam-Muppalla
PDF files: create, read, merge, fill, OCR, edit text.
SkillAFreshness: AClaude Code +9 - 0.560score
grounded-citations
SaiRam-Muppalla
Ground answers and documents in cited, verifiable sources.
SkillAFreshness: AClaude Code +9 - 0.560score
xlsx
SaiRam-Muppalla
Create, read, edit Excel .xlsx workbooks and CSVs.
SkillAFreshness: AClaude Code +9 - 0.550score
mow-curriculum-architect
SaiRam-Muppalla
Use when designing hands-on bootcamps and code labs.
SkillAFreshness: AClaude Code +9 - 0.539score
interview-system-designer
SaiRam-Muppalla
This skill should be used when the user asks to "design interview processes", "create hiring pipelines", "calibrate interview loops", "generate interview…
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 20, 2026 (11 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from SaiRam-Muppalla
- 0.570score
syllabus
SaiRam-Muppalla
Generates a curated supplementary reading list from any course syllabus using Consensus academic search.
SkillAFreshness: AClaude Code +9 - 0.570score
pulse
SaiRam-Muppalla
Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X/Twitter within a configurable…
SkillAFreshness: AClaude Code +9 - 0.566score
litreview
SaiRam-Muppalla
Academic literature orientation skill that searches papers via free keyless APIs (PubMed E-utilities + OpenAlex) by default — with the Consensus MCP as an…
SkillAFreshness: AClaude Code +9 - 0.565score
deep-research
SaiRam-Muppalla
Run a disciplined, multi-source research investigation for a high-stakes question or decision — fan-out web search across many channels, parallel sub-agents…
SkillAFreshness: AClaude Code +9 - 0.565score
research
SaiRam-Muppalla
Default entry point for any research request — a hybrid router that classifies the question deterministically and either delegates to a specialist research…
SkillAFreshness: AClaude Code +9 - 0.565score
prospecting
SaiRam-Muppalla
When the user wants to find, qualify, and build a list of prospects to reach out to — across B2B SaaS, general B2B, or local small businesses.
SkillAFreshness: AClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get docx running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
docx skill. Agent Mart. https://agentmart.dev/skills/sairam-muppalla-docx (last updated 2026-10-24)