XLSX
jjyaoao/HelloAgents
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization.
Create, read, edit Excel .xlsx workbooks and CSVs. An agent skill from NousResearch/hermes-agent.
$ npx skills add NousResearch/hermes-agent --skill xlsx -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install NousResearch/hermes-agent xlsx --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/NousResearch/hermes-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/productivity/xlsx .claude/skills/xlsx && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "xlsx" agent skill from https://github.com/NousResearch/hermes-agent/tree/main/skills/productivity/xlsx into .claude/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/NousResearch/hermes-agent/tree/main/skills/productivity/xlsxType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add NousResearch/hermes-agent --skill xlsx -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install NousResearch/hermes-agent xlsx --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NousResearch/hermes-agent.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/productivity/xlsx .agents/skills/xlsx && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "xlsx" agent skill from https://github.com/NousResearch/hermes-agent/tree/main/skills/productivity/xlsx into .agents/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add NousResearch/hermes-agent --skill xlsx -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install NousResearch/hermes-agent xlsx --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NousResearch/hermes-agent.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/productivity/xlsx .cursor/skills/xlsx && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "xlsx" agent skill from https://github.com/NousResearch/hermes-agent/tree/main/skills/productivity/xlsx into .cursor/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/NousResearch/hermes-agent.git --path skills/productivity/xlsx--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add NousResearch/hermes-agent --skill xlsx -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install NousResearch/hermes-agent xlsx --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NousResearch/hermes-agent.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/productivity/xlsx .gemini/skills/xlsx && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "xlsx" agent skill from https://github.com/NousResearch/hermes-agent/tree/main/skills/productivity/xlsx into .gemini/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install NousResearch/hermes-agent xlsxInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add NousResearch/hermes-agent --skill xlsx -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/NousResearch/hermes-agent.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/productivity/xlsx .github/skills/xlsx && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "xlsx" agent skill from https://github.com/NousResearch/hermes-agent/tree/main/skills/productivity/xlsx into .github/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add NousResearch/hermes-agent --skill xlsx -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install NousResearch/hermes-agent xlsx --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NousResearch/hermes-agent.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/productivity/xlsx .opencode/skills/xlsx && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "xlsx" agent skill from https://github.com/NousResearch/hermes-agent/tree/main/skills/productivity/xlsx into .opencode/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
xlsxCreate, read, edit Excel .xlsx workbooks and CSVs. An agent skill from NousResearch/hermes-agent.
XLSX is an agent skill from NousResearch/hermes-agent. Create, read, edit Excel .xlsx workbooks and CSVs.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts and reference files (for example `references/restructuring.md`, `scripts/csv_to_xlsx.py` and `scripts/xlsx_create.py`).
It sits in Documents & Office, covering Excel spreadsheets. It works with Microsoft Excel, LibreOffice and openpyxl. The repository describes itself as: The agent that grows with you. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 14ec243. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 7 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonsofficepipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
XLSX loads about 2.4k tokens when it runs, and up to ~3.3k if it reads all its reference files. Until then it costs about 14 tokens; SKILL.md has 1,064 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from NousResearch/hermes-agent at commit 14ec243, republished under its MIT licence (© NousResearch). 1,064 words, ~2,413 tokens.
.claude/skills/xlsx/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.Work with Excel .xlsx workbooks using Python and openpyxl: build styled multi-sheet workbooks with formulas and charts, inspect or dump existing files, edit cells and structure, and convert to/from CSV. All helper scripts are argparse CLIs that print JSON and use explicit UTF-8 I/O.
xlsx_restructure.py),
copy/rename sheets, tables, names, notes, protection.xlsx_recalc.py).soffice --headless --convert-to xlsx old.xls).openpyxl (pip install openpyxl). No other
third-party packages are needed; everything else is stdlib.soffice) for headless recalculation or
format conversion.Run the helper scripts with the terminal tool from this skill's
scripts/ directory (every script supports --help):
python scripts/xlsx_create.py spec.json report.xlsx # build from JSON spec
python scripts/xlsx_read.py report.xlsx --sheets # inventory
python scripts/xlsx_read.py report.xlsx --json --sheet Data
python scripts/xlsx_read.py report.xlsx --formulas
python scripts/xlsx_edit.py report.xlsx --sheet Data --set B2=42 --recalc
python scripts/xlsx_restructure.py report.xlsx --sheet Data --insert-rows 3:2
python scripts/xlsx_recalc.py report.xlsx
python scripts/csv_to_xlsx.py data.csv out.xlsx --encoding utf-8
python scripts/xlsx_to_csv.py report.xlsx out.csv --sheet DataAuthor the JSON spec with write_file, inspect script JSON output with
read_file or directly from stdout.
| Task | Command |
|---|---|
| Create workbook from spec | xlsx_create.py spec.json out.xlsx |
| Sheet names + dimensions | xlsx_read.py f.xlsx --sheets |
| Dump sheet as JSON | xlsx_read.py f.xlsx --json --sheet S |
| Dump sheet as CSV | xlsx_read.py f.xlsx --csv --out d.csv |
| List formulas + cached values | xlsx_read.py f.xlsx --formulas |
| Set a cell / formula | xlsx_edit.py f.xlsx --set "A1==SUM(B:B)" |
| Append a row | xlsx_edit.py f.xlsx --append '[1,"x",true]' |
| Insert 2 rows, refs NOT shifted | xlsx_edit.py f.xlsx --insert-rows 3:2 |
| Insert 2 rows, refs shifted | xlsx_restructure.py f.xlsx --insert-rows 3:2 |
| Delete a column, refs shifted | xlsx_restructure.py f.xlsx --delete-cols B |
| Create a native table | xlsx_edit.py f.xlsx --add-table Sales:A1:C9 |
| Append inside a table | --table-append 'Sales=["West",5]' |
| List tables | xlsx_edit.py f.xlsx --list-tables |
| Defined names | --define-name "Rates='Data'!$B$2:$B$9" / --delete-name Rates / xlsx_read.py f.xlsx --names |
| Hyperlink | `--hyperlink "A1=https://example.com |
| Cell note | `--note "B2=Check this |
| Protect sheet (see Pitfalls) | --protect your-password --unlock B2:B9 |
| Recalculate via LibreOffice | xlsx_recalc.py f.xlsx |
| Copy / rename sheet | --copy-sheet Src:New --rename-sheet Old:New |
| Force recalc on open | xlsx_edit.py f.xlsx --recalc |
| CSV -> styled xlsx | csv_to_xlsx.py in.csv out.xlsx |
| xlsx -> CSV | xlsx_to_csv.py f.xlsx out.csv --encoding utf-8 |
xlsx_create.py --help and its docstring). Each sheet supports
rows (scalars or styled cell objects), sparse cells overrides,
column_widths, row_heights, merges, freeze_panes,
autofilter, conditional_formats (cell_is rules and color
scales), charts (bar/line/pie from cell ranges),
validations (list dropdowns), tables (native Excel tables with
a style name), and protection. Workbook-level defined_names
maps names to refs. Cell objects also take hyperlink and note.
Typed values: JSON numbers/bools
pass through; dates use {"value": "2026-01-31", "type": "date"}.
Number formats are Excel format strings: currency "$#,##0.00",
percent "0.0%", date "yyyy-mm-dd"."formula": "SUM(B2:B9)" in the spec or
--set "C1==SUM(A:A)" in the editor. When writing formulas, add
"full_calc_on_load": true (spec) or --recalc (editor); this sets
the workbook's fullCalcOnLoad flag so Excel/LibreOffice recompute
everything on open. openpyxl itself NEVER evaluates formulas.--sheets for inventory (names, dimensions, merged
ranges, chart count, tables, protection, defined names),
--json/--csv for data, --formulas to
pair each formula string with its cached result, --notes for
cell comments, --names for defined names. Cached results
exist only if the file was last saved by a real spreadsheet app;
files fresh from openpyxl return null there. To materialize
results headlessly run xlsx_recalc.py file.xlsx (uses
LibreOffice; prints {"recalculated": false, ...} and exits 0
when soffice is absent), then reload with --data-only.xlsx_edit.py applies renames/copies first, then
structural row/column changes, then --set/--append. It edits in
place unless --out is given — copy the file first if you need the
original.xlsx_restructure.py instead of
xlsx_edit.py. It rewrites formula references on ALL sheets
(absolute $ refs, ranges, cross-sheet refs), shifts merges,
autofilter, freeze panes, validation and conditional-format
ranges, table refs, defined names, and row/column dimensions, then
prints a JSON report including a not_shifted list. Rules and
limits: references/restructuring.md.csv_to_xlsx.py infers int/float/bool/ISO-date
per cell and styles the header row; xlsx_to_csv.py writes ISO
dates and blank strings for empty cells. Both default to UTF-8 and
accept --encoding (e.g. utf-8-sig for Excel-friendly BOM,
cp1252 for legacy Windows exports).LibreOffice converts headlessly (also works for CSV export of a single sheet):
soffice --headless --convert-to pdf report.xlsx --outdir out/
soffice --headless --convert-to csv report.xlsx --outdir out/ # 1st sheet onlyOnly the first sheet lands in a CSV; for other sheets use
xlsx_to_csv.py --sheet NAME. If soffice is missing, install
LibreOffice or hand the file to the user unconverted.
load_workbook(path, data_only=True) and only when the file was
previously saved by Excel/LibreOffice. Otherwise you get None.xlsx_edit.py insert/delete does not shift references (raw
openpyxl behavior). Use xlsx_restructure.py, which does — but even
it cannot move chart anchors, images, or conditional-format RULE
formulas; read its JSON report's not_shifted list and
references/restructuring.md.--protect sets the standard
xlsx sheet-protection hash: it signals "don't edit this" to
well-behaved apps and nothing more. Anyone can strip it by editing
the zip's XML or unchecking it in LibreOffice. Never rely on it for
confidentiality or integrity; it does not encrypt anything.data_only=True then save silently discards all formulas
(cached values replace them). Never save a workbook loaded that way
unless that is the goal.; delimiters and
decimal commas — use --delimiter ';' and expect strings like
"12,5" to stay strings.datetime/date objects. Dumps here emit ISO
strings.[ ] : * ? / \.xlsx_read.py out.xlsx --sheets and confirm sheet
names, dimensions, merged ranges, and chart counts match intent.--json and compare against the source values.--formulas lists them and that --recalc was applied.xlsx_restructure.py: read its JSON report, then re-run
--formulas and --sheets to confirm references and ranges landed
where expected.soffice --headless --convert-to pdf out.xlsx and inspect the PDF.© NousResearch, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files (scripts, references) in skills/productivity/xlsx of NousResearch/hermes-agent.
Open the folder on GitHubat commit 14ec243
XLSX next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| XLSX this skillNousResearch/hermes-agent | 252k | — | ~2.4k | Automated safety check: Pass | MIT | |
| XLSXjjyaoao/HelloAgents | 3.2k | — | ~5k | Automated safety check: Pass | Proprietary | |
| XLSXginlix-ai/LangAlpha | 1.8k | — | ~9.3k | Automated safety check: Pass | Apache-2.0 | |
| XLSX Spreadsheet ToolkitXiaomiMiMo/MiMo-Code | 14k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Excel Spreadsheet Builderagentscope-ai/QwenPaw | 36k | — | ~1.8k | Automated safety check: Pass | Proprietary | |
| Spreadsheet Model AuditorOneWave-AI/claude-skills | 328 | — | ~2k | Automated safety check: Pass | MIT |
jjyaoao/HelloAgents
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization.
ginlix-ai/LangAlpha
Excel workbooks with live formulas: build or edit .xlsx models with openpyxl, recalculate with IronCalc or LibreOffice, audit conventions, profile messy uploads, render for review
XiaomiMiMo/MiMo-Code
Builds, edits, cleans, recalculates and reads Excel workbooks and CSV files with openpyxl and pandas, plus LibreOffice for recalculation and PDF export.
agentscope-ai/QwenPaw
Creates, edits, cleans and analyzes Excel and CSV files with openpyxl and pandas, recalculating formulas through LibreOffice so files are delivered without formula errors.
OneWave-AI/claude-skills
Audits business spreadsheet models (.xlsx, .xlsm, or Google Sheets exported to .xlsx) for structural integrity errors and explains each fix -- budgets, forecasts, pricing models, commission…
dataelement/bisheng
Builds, edits and cleans Excel workbooks inside BiSheng's code executor using openpyxl, with LibreOffice recalculation and a pre-delivery check.
NousResearch/hermes-agent
Produces a presenter-led video from a topic or script plus one authorized presenter image, with captions, lip-sync checks and acceptance reports.
NousResearch/hermes-agent
Creates, reads, edits and templates Word .docx files with python-docx scripts, including tracked changes, comments, tables of contents and health checks.
NousResearch/hermes-agent
Attaches a numbered, URL-backed citation to every outside fact in an answer or document, rejecting quotes that aren't real.
NousResearch/hermes-agent
PDF files: create, read, merge, fill, OCR, edit text. An agent skill from NousResearch/hermes-agent.
NousResearch/hermes-agent
Premium scroll-driven landing pages; scroll = timeline. An agent skill from NousResearch/hermes-agent.
NousResearch/hermes-agent
Create, read, edit .pptx decks with python-pptx. An agent skill from NousResearch/hermes-agent.
Works with
Categories
Create, read, edit Excel .xlsx workbooks and CSVs. An agent skill from NousResearch/hermes-agent. XLSX is an agent skill from NousResearch/hermes-agent.xlsx workbooks and CSVs.
XLSX fits situations like: tasks that involve Excel spreadsheets.
Run `npx skills add NousResearch/hermes-agent --skill xlsx -a claude-code`. Or copy the skill folder (skills/productivity/xlsx in NousResearch/hermes-agent) into .claude/skills/xlsx in your project. Claude Code loads it when a task matches its description.
Run `npx skills add NousResearch/hermes-agent --skill xlsx -a codex`. Or copy the skill folder (skills/productivity/xlsx in NousResearch/hermes-agent) into .agents/skills/xlsx in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NousResearch/hermes-agent --skill xlsx -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/xlsx, .gemini/skills/xlsx, .github/skills/xlsx and .opencode/skills/xlsx in your project.
Going by SKILL.md and its folder, XLSX needs Python for the scripts in its folder and the command-line tools its instructions call (python, soffice and pip). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
XLSX is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 922 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with XLSX: XLSX (jjyaoao/HelloAgents, 3.2k stars), XLSX (ginlix-ai/LangAlpha, 1.8k stars), XLSX Spreadsheet Toolkit (XiaomiMiMo/MiMo-Code, 14k stars) and Excel Spreadsheet Builder (agentscope-ai/QwenPaw, 36k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
NousResearch (a GitHub organization) maintains it in NousResearch/hermes-agent, which has 252,110 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 9, 2026.
Source: NousResearch/hermes-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.