Skip to content
cccskills
FreePublished on GitHubEnglish overview

microsoft-office

Create, read, and edit Word, PowerPoint, and Excel files with command-line helpers. Use it to prepare documents, presentations, and spreadsheets, fill templates, and convert CSV data. It works offline and does not require Microsoft Office.

OriginalShow the original description

Create, read, and edit Word, PowerPoint, and Excel files.

NousResearch/hermes-agent258,442 stars(GitHub 258,442 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Drafting or updating a Word report or letter
  • Creating or revising a PowerPoint deck
  • Building or restructuring an Excel workbook
  • Filling a document or presentation template
  • Converting CSV data into a workbook

Overview

What it does

Create, read, and edit Word (.docx), PowerPoint (.pptx), and Excel (.xlsx, .csv) files with command-line helper tools. The skill can fill document templates, inspect tracked changes and comments, read slide notes and structure, edit spreadsheet formulas and charts, and convert CSV files. It handles files without launching Microsoft Office.

When it helps

Use it to prepare a report or letter, rebuild a presentation or spreadsheet, or review an existing file and update selected parts. It is useful when you know the file format, since you consult the reference for that format before working.

Example requests

  • “Read the text and structure of this Word file, then fix typos.”
  • “Create an Excel workbook with multiple sheets from this data.”
  • “Fill this PowerPoint template with the content and review the slides.”

Notes

Requires Python 3.10 or later and python-docx, python-pptx, and openpyxl. PDF export, slide image rendering, and Excel recalculation require additional tools such as LibreOffice. It does not support legacy .doc, .ppt, or .xls files, .odt, .odp, or .ods, or visual layout adjustments on screen.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
AGoodIt recommends separate output paths and rereading outputs; no external transmission is described.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingIt specifies Python and three libraries, while optional rendering and PDF tasks need extra tools.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 30, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (30)

  • SKILL.md7.7 KB
  • LICENSE1.0 KB
  • references/excel.md8.6 KB
  • references/powerpoint.md9.3 KB
  • references/restructuring.md3.7 KB
  • references/revisions-and-comments.md3.9 KB
  • references/word.md9.2 KB
  • scripts/csv_to_xlsx.py3.3 KB
  • scripts/docx_comments.py10.4 KB
  • scripts/docx_common.py3.2 KB
  • scripts/docx_create.py6.2 KB
  • scripts/docx_edit.py8.4 KB
  • scripts/docx_read.py6.1 KB
  • scripts/docx_revisions.py4.4 KB
  • scripts/docx_template.py2.4 KB
  • scripts/docx_validate.py6.0 KB
  • scripts/pptx_create.py8.8 KB
  • scripts/pptx_edit.py16.8 KB
  • scripts/pptx_from_template.py3.4 KB
  • scripts/pptx_read.py4.6 KB
  • scripts/pptx_render.py3.5 KB
  • scripts/xlsx_create.py9.6 KB
  • scripts/xlsx_edit.py10.6 KB
  • scripts/xlsx_read.py5.7 KB
  • scripts/xlsx_recalc.py4.1 KB
  • scripts/xlsx_restructure.py15.6 KB
  • scripts/xlsx_to_csv.py2.3 KB
  • tests/test_docx_skill.py21.7 KB
  • tests/test_powerpoint_skill.py20.0 KB
  • tests/test_xlsx_skill.py23.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Microsoft Office Skill

Create, read, edit, and template Word (.docx), PowerPoint (.pptx), and Excel (.xlsx, .csv) files offline with small Python CLIs built on python-docx, python-pptx, and openpyxl. Office itself is never needed. It does not open legacy binary formats (.doc, .ppt, .xls) and does not render pages without LibreOffice.

When to Use

Pick the format, then read its reference with skill_view before working:

FileReferenceTypical asks
.docxreferences/word.mdreports, letters, contracts, {{token}} templates, tracked changes, comments
.pptxreferences/powerpoint.mdpitch decks, brand-template decks, chart refreshes, speaker notes, slide PNGs
.xlsx, .csvreferences/excel.mdstyled multi-sheet workbooks, formulas, charts, CSV conversion, row/column restructures

Deeper notes: references/revisions-and-comments.md (Word review markup) and references/restructuring.md (Excel reference shifting).

  • Not for .doc/.ppt/.xls: convert first with soffice --headless --convert-to docx|pptx|xlsx old-file when LibreOffice is installed.
  • Not for .odt/.odp/.ods, or WYSIWYG layout work.

Prerequisites

  • Python 3.10+ with python-docx, python-pptx, and openpyxl (import names docx, pptx, openpyxl).

  • Pick the interpreter with terminal. Use python when it already imports the libraries (the Hermes Docker image ships them). Otherwise, when hermes is on PATH, let Hermes build its shared, pinned documents environment under the Hermes home: it survives container restarts, never touches the Hermes install itself, and is safe to run from several agents at once. When it is not (the terminal runs in a Docker sandbox, which has no Hermes), the block builds a venv in the sandbox home with the same pinned versions. Use this exact block in every document skill so they all share one environment:

    python -c "import docx, pptx, openpyxl" 2>/dev/null && PY=python || if command -v hermes >/dev/null 2>&1; then
      PY="$(hermes pm environment documents --extra documents --extra documents-pdf)"
    else
      PY="$HOME/.cache/hermes-docs-venv/bin/python"
      "$PY" -c "import docx, openpyxl, pptx, reportlab, pypdf, pdfplumber, pypdfium2" 2>/dev/null || (
        # Safe to run from several agents at once: each caller builds a private venv,
        # a symlink publishes the first finished one atomically, the others delete theirs.
        mkdir -p "$HOME/.cache" && cd "$HOME/.cache" && stage="$(mktemp -d hermes-docs-venv.XXXXXX)" || exit 1
        old="$(readlink hermes-docs-venv)"  # an earlier build that no longer imports, if any
        python3 -m venv "$stage" &&
          "$stage/bin/python" -m pip install -q --disable-pip-version-check python-docx==1.2.0 openpyxl==3.1.5 python-pptx==1.0.2 reportlab==5.1.0 pypdf==6.21.2 pdfplumber==0.11.10 pypdfium2==5.14.0 &&
          "$stage/bin/python" -c "import docx, openpyxl, pptx, reportlab, pypdf, pdfplumber, pypdfium2" &&
          if [ -z "$old" ]; then python3 -c 'import os, sys; os.symlink(*sys.argv[1:])' "$stage" hermes-docs-venv
          elif [ "$(readlink hermes-docs-venv)" = "$old" ]; then
            ln -s "$stage" "$stage.lnk" && python3 -c 'import os, sys; os.replace(*sys.argv[1:])' "$stage.lnk" hermes-docs-venv &&
              case "$old" in hermes-docs-venv.??????) rm -rf "$old" ;; esac
          fi 2>/dev/null
        [ "$(readlink hermes-docs-venv)" = "$stage" ] || rm -rf "$stage" "$stage.lnk"
      )
    fi
    export PY
    "$PY" scripts/docx_create.py --help
    

    Run every helper with "$PY". In PowerShell (Hermes runs on that host, so it is on PATH): $env:PY = hermes pm environment documents --extra documents --extra documents-pdf. Never pip install into the interpreter that runs Hermes or into the hermes pm environment one; Hermes owns both.

  • Optional: LibreOffice (soffice) for PDF export, Excel recalculation, and slide rendering, plus poppler (pdftoppm or pdftocairo) for slide PNGs. The helpers that need them report what is missing and exit 0.

How to Run

Every helper lives in scripts/, is an argparse CLI with --help, prints JSON to stdout, and exits non-zero on failure. Run them with terminal from the skill directory. Author JSON specs with write_file; read results with read_file or straight from stdout.

"$PY" scripts/docx_create.py spec.json out.docx
"$PY" scripts/pptx_create.py deck.json out.pptx
"$PY" scripts/xlsx_create.py spec.json report.xlsx

Quick Reference

TaskWordPowerPointExcel
Create from JSON specdocx_create.pypptx_create.pyxlsx_create.py, csv_to_xlsx.py
Read backdocx_read.py --text/--structurepptx_read.py --outlinexlsx_read.py --sheets/--json
Editdocx_edit.pypptx_edit.pyxlsx_edit.py, xlsx_restructure.py
Fill a templatedocx_template.pypptx_from_template.py—
Review / checkdocx_revisions.py, docx_comments.py, docx_validate.pypptx_render.py (slide PNGs)xlsx_recalc.py, xlsx_to_csv.py

The per-format reference has the full flag table.

Procedure

  1. Identify the format from the file extension or the ask, and load its reference (skill_view with file_path=references/<format>.md).
  2. Set PY with the Prerequisites block once per session.
  3. Create, edit, or read with that format's helpers; pass an output path to keep the original whenever the helper supports one.
  4. Verify the result as the reference's Verification section says, then give the user the exact output path.

Converting to PDF

When LibreOffice is installed, convert headlessly:

soffice --headless --convert-to pdf --outdir out/ file.docx   # also .pptx, .xlsx
soffice --headless --convert-to csv --outdir out/ report.xlsx # first sheet only

Check first with command -v soffice || command -v libreoffice. Fonts not on the host are substituted, so render-check decks before shipping. There is no pure-Python path to PDF for any of these formats: if soffice is missing, say so rather than approximating. For other sheets use xlsx_to_csv.py --sheet NAME.

Pitfalls

  • Never unzip-and-edit the XML. These files are zip packages; raw text substitution corrupts them. Edit through the helpers (or the libraries) and use patch/write_file only for JSON inputs.
  • Text is split into runs. Word and PowerPoint fragment text at edit boundaries; the replace helpers merge equal-format runs first, but a match across differently formatted runs takes the first run's formatting.
  • Nothing computes fields or formulas. Word TOC/page fields and Excel formulas are filled in by the office app on open (or by xlsx_recalc.py).
  • Encoding. Write specs as UTF-8; the helpers read UTF-8 explicitly.
  • Format-specific traps are in each reference.

Verification

  • Re-read every output with the format's read helper and check the expected content is there and the old content is gone.
  • Word: docx_validate.py out.docx exits 0 after revision, comment, or field surgery.
  • PowerPoint: render with pptx_render.py and check each PNG with vision_analyze when the render tools exist.
  • Excel: xlsx_read.py --formulas lists written formulas; run xlsx_recalc.py when cached values matter.
  • The bundled tests are the full contract: "$PY" -m pytest tests/ -q (needs pytest in that interpreter).

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

1password

FreeSummary

Set up the 1Password CLI and use stored passwords or API keys in commands and configuration templates. Choose an authentication method, retrieve secret references, and pass credentials to processes through environment variables.

  • Installing and configuring the 1Password CLI
  • Running commands with stored API keys
  • Filling configuration templates with stored secrets
NousResearch/hermes-agent258.4KUpdated Oct 29, 2026

Build an Excel workbook linking the income statement, balance sheet, and cash flow statement. Populate historical figures, create formula-based forecasts, compare scenarios, and check that balances and cash totals agree across all three statements.

  • Populating a financial model template with historical data
  • Building linked forecasts across three financial statements
  • Comparing base, upside, and downside scenarios
NousResearch/hermes-agent258.4KUpdated Oct 29, 2026

accelerate

FreeSummary

Adapt existing PyTorch training scripts to use multiple GPUs or machines with limited code changes. The skill guides configuration, launch commands, mixed precision, which uses lower-precision numbers, and DeepSpeed or FSDP settings for distributing training work and memory.

  • Move a single-GPU training script to multiple GPUs
  • Configure mixed precision training
  • Set up DeepSpeed or FSDP to reduce memory use
NousResearch/hermes-agent258.4KUpdated Oct 29, 2026

actual-setup

FreeSummary

Configure Hermes to run AI models through Actual Computer on your own hardware. Set up either the hosted relay or a local connection, select models, verify responses, and troubleshoot request errors or empty output.

  • Connecting Hermes with an Actual inference key
  • Running models through a local Actual daemon
  • Downloading and loading local models
NousResearch/hermes-agent258.4KUpdated Oct 29, 2026

Test an app from the perspective of a frustrated, less technical user. Find confusing steps and barriers, separate actionable usability problems from personal complaints, and produce screenshots, suggested fixes, and prioritized tickets.

  • Reviewing usability before a launch or demo
  • Checking the experience of a new user
  • Finding friction in signup and subscription flows
NousResearch/hermes-agent258.4KUpdated Oct 29, 2026

Resolve Git merge conflicts between two agents by comparing both changes and their stated goals. Combine compatible work, explain choices where designs differ, and verify the merged result with project builds or tests.

  • Resolving conflicts between branches edited by two agents
  • Integrating changes from parallel worktrees
  • Reviewing reasons for conflicting design choices
NousResearch/hermes-agent258.4KUpdated Oct 29, 2026

See all skills by NousResearch

Report a problem with this skill