Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add EldanRing/qubicl --skill xlsxgit clone --depth 1 https://github.com/EldanRing/qubiclWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/eldanring/qubicl/xlsx)<a href="https://agentmods.dev/skills/eldanring/qubicl/xlsx"><img src="https://agentmods.dev/badge/skills/eldanring/qubicl/xlsx/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/eldanring/qubicl/xlsx"><img src="https://agentmods.dev/badge/skills/eldanring/qubicl/xlsx.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00048 | $0.01624 |
| Opus 5.5 | $0.00019 | $0.00650 |
| Sonnet 5.5 | $0.00010 | $0.00325 |
| Haiku 4.5 | $0.00005 | $0.00162 |
Grade A, and why
xlsx scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 93 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Spreadsheet workflows
Keep workbook artifacts under /home/qubicl. Obtain this skill's resourceRoot from skill_view and run its helpers with /opt/qubicl/skills-venv/bin/python. The computer and workstation presets contain the pinned spreadsheet libraries; do not install packages during a task.
Useful helpers beneath <resourceRoot>/scripts/:
xlsx_read.py FILE --sheets|--json|--cells|--csv|--formulas|--notes|--namesxlsx_create.py SPEC.json OUTPUT.xlsxxlsx_edit.py FILEfor values, rows, sheets, tables, names, links, notes, and protectionxlsx_restructure.py FILEfor reference-aware row or column changescsv_to_xlsx.py INPUT.csv OUTPUT.xlsxxlsx_to_csv.py INPUT.xlsx OUTPUT.csvxlsx_recalc.py FILEwhen LibreOffice is available
Read references/restructuring.md before inserting or deleting rows or columns in a formula-heavy workbook.
Inspect workbook structure and formulas before editing. Preserve formulas unless replacement is intentional, use a new output for risky transformations, and read the result back afterward. LibreOffice recalculation is available only on workstation computers; explain that limitation rather than manufacturing cached formula values.
xlsx_read.py --formulas includes normal, array and what-if data-table formulas.
Typed entries include formula_type and their result ref; array entries include
the expression in formula, while data-table entries include all input references
and flags in attributes. JSON/CSV sheet dumps represent typed formulas as JSON
objects rather than Python object names; standalone xlsx_to_csv.py uses the
same typed-formula and duration serialization. Elapsed-time values such as [h]:mm
use signed ISO 8601 durations (P1DT3H15M for 27 hours 15 minutes), preserving
days and fractional seconds. Dates and times retain their ISO date/time format.
For a typed client-facing read, use --cells (active sheet by default, or
--sheet NAME). Each stored cell includes its coordinate, normalized value,
type, original OOXML rawValue/storageType, numberFormat, and formula metadata
with its result range. rawValue is storage data, including shared-string indexes,
not display text. Both --cells and --formulas explicitly report
cachedValueAvailable, cacheStatus and per-cell missing-cache warnings; a
present empty-string, zero or error result remains distinct from a missing cache.
The reader never recalculates or invents display values. Use the existing render
workflow on a copy when appearance matters; recalculated render results do not
establish that the original file contained those caches. Literal strings starting
with = remain text and are not listed as formulas.
Use the common rendering receipt for PDF, DOCX, XLSX and PPTX:
/opt/qubicl/skills-venv/bin/python /opt/qubicl/artifact-render.py FILE --outdir DIR.
Each invocation captures its source, uses an isolated Office profile, and writes a unique
run directory with PDF, exact numbered PNGs and manifest.json. Read sourceSha256,
pages, warnings and validation, then inspect the generated pages. Old previews
are never returned as this run's outputs. visuallyInspected: false is intentional:
the tool renders; the agent performs visual review. Office rendering needs workstation.
Rendering and xlsx_recalc.py report formula errors, missing cached results and changed
OOXML package parts. recalculated: true does not mean error-free, correct formulas,
or perfect Excel fidelity. Preserve the source and review formulas, formats, charts,
print areas and the rendered pages before delivering converted workbooks.
CSV imports preserve leading-zero/long identifiers and mixed-type columns; strings beginning with = stay literal by default, including headers. Default UTF-8 decoding accepts an initial BOM and preserves noninitial U+FEFF characters. Use --column-types '{"A":"text","B":"number"}' for deliberate types or --allow-formulas only when formulas are intended. Explicit typed empty cells become blanks; --empty-cells reject requires nonempty typed values. Numeric overflow/nonfinite values and invalid typed conversions fail with CSV row, column and cell context before saving. Imports preflight Excel's 1,048,576-row, 16,384-column, 32,767-character cell and 8,192-character formula limits; oversized input fails instead of silently truncating. The saved archive is reopened to verify dimensions and text/formulas before atomically replacing the destination, so a failed conversion preserves an existing output. Review the conversion report. xlsx_to_csv.py --data-only refuses missing formula caches before writing; --allow-missing-results explicitly permits them and reports affected cells. Restructuring supports native table column insertion/deletion, unique generated headers, calculated/totals formulas, filter criteria and sort ranges. It updates structured references throughout the workbook; deleted columns/tables become #REF!, while partially deleted column ranges retain surviving endpoints. Inserted table rows receive calculated-column formulas, and removing a header preserves the surviving data as a headerless table. Read the JSON transformation report and inspect the saved workbook.
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- LICENSE 1.0 KB
- references/restructuring.md 11 KB
- scripts/csv_to_xlsx.py 9.7 KB runs code
- scripts/xlsx_create.py 9.6 KB runs code
- scripts/xlsx_edit.py 29 KB runs code
- scripts/xlsx_formula_values.py 3.5 KB runs code
- scripts/xlsx_read.py 13 KB runs code
- scripts/xlsx_recalc.py 4.2 KB runs code
- scripts/xlsx_restructure_dependents.py 20 KB runs code
- scripts/xlsx_restructure.py 29 KB runs code
- scripts/xlsx_to_csv.py 3.4 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago Changed · +14 lines ba51f1fc8f73
- 9d ago Changed · +56 lines 9b189c882335
- 2mo ago First seen · 23 lines · 48 tokens per session scan A 1db74b08246e
xlsx is a skill published in the GitHub repository EldanRing/qubicl (13 stars, last pushed 8d ago), licensed Apache-2.0. It adds 48 tokens to every session and 1,624 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
xlsx compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| xlsxEldanRing/qubicl | Skill | 13 | 8d ago | Apache-2.0 | A | 48 | Claude Code, Codex |
| site-reportPavloSEO/seohead-seotools | Skill | 0 | 2mo ago | MIT | A | 134 | Claude Code |
| lark-basePinvou/pinvou-agent | Skill | 2.9k | today | MIT | A | 174 | Claude Code, Codex |
| tencent-docsPinvou/pinvou-agent | Skill | 2.9k | today | MIT | A | 233 | Claude Code, Codex |
| gog-workspaceAtomicBot-ai/atomic-agent | Skill | 3.4k | 2d ago | MIT | A | 68 | Claude Code, Codex |
| xlsxAtomicBot-ai/atomic-agent | Skill | 3.4k | 2d ago | MIT | A | 44 | Claude Code, Codex |
| visualizerPinvou/pinvou-agent | Skill | 2.9k | today | MIT | A | 113 | Claude Code, Codex |