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 agentmods add skills/spillwavesolutions/automating-mac-apps-plugin/automating-numbersnpx skills add SpillwaveSolutions/automating-mac-apps-plugin --skill automating-numbersgit clone --depth 1 https://github.com/SpillwaveSolutions/automating-mac-apps-pluginWrote 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/spillwavesolutions/automating-mac-apps-plugin/automating-numbers)<a href="https://agentmods.dev/skills/spillwavesolutions/automating-mac-apps-plugin/automating-numbers"><img src="https://agentmods.dev/badge/skills/spillwavesolutions/automating-mac-apps-plugin/automating-numbers.svg" alt="Measured on agentmods" 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.00070 | $0.01428 |
| Opus 5 | $0.00035 | $0.00714 |
| Sonnet 5 | $0.00014 | $0.00286 |
| Haiku 4.5 | $0.00007 | $0.00143 |
Grade A, and why
automating-numbers 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 6d 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 — 200 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Automating Numbers (JXA-first, AppleScript discovery)
Relationship to the macOS automation skill
- Standalone for Numbers, aligned with
automating-mac-appspatterns. - Use
automating-mac-appsfor permissions, shell, and UI scripting guidance. - PyXA Installation: To use PyXA examples in this skill, see the installation instructions in
automating-mac-appsskill (PyXA Installation section).
Core Framing
- Numbers AppleScript dictionary is AppleScript-first; discover there.
- JXA provides logic and data processing.
- Objects are specifiers; read via methods, write via assignments.
- Handle errors from Numbers operations using try/catch blocks and Application error checking.
Workflow (default)
- Discover terms in Script Editor (Numbers dictionary).
- Prototype minimal AppleScript commands.
- Port to JXA and add defensive checks.
- Prefer batch reads and clipboard shim for writes.
- Use UI scripting only for dictionary gaps.
Validation Checklist
- Empty document handling works without errors
- Data integrity verified after batch operations
- Numbers UI remains responsive after automation runs
- Errors logged with specific Numbers object paths
- Sheet/table indices validated before access
- Clipboard shim restores original clipboard contents
Examples
Basic table read (JXA - Legacy):
const numbers = Application('Numbers');
const doc = numbers.documents[0];
const sheet = doc.sheets[0];
const table = sheet.tables[0];
const data = table.rows.whose({_not: [{cells: []}]})().map(row => row.cells().map(c => c.value()));
Basic table read (PyXA - Recommended):
import PyXA
numbers = PyXA.Numbers()
# Get first document, sheet, and table
doc = numbers.documents()[0]
sheet = doc.sheets()[0]
table = sheet.tables()[0]
# Read all rows with data
rows = table.rows()
data = []
for row in rows:
cells = row.cells()
if cells: # Skip empty rows
row_data = [cell.value() for cell in cells]
data.append(row_data)
print("Table data:", data)
What ships with it
12 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.
- references/numbers-advanced.md 745 B
- references/numbers-basics.md 410 B
- references/numbers-dictionary.md 704 B
- references/numbers-formulas.md 296 B
- references/numbers-pyxa-api-reference.md 25 KB
- references/numbers-recipes.md 325 B
- references/numbers-sorting.md 368 B
- references/numbers-ui-scripting.md 537 B
- scripts/create_numbers_spreadsheet.py 2.5 KB runs code
- scripts/create_skills_spreadsheet.js 3.8 KB runs code
- scripts/export_numbers_to_csv.py 3.3 KB runs code
- scripts/read_numbers_spreadsheet.py 2.6 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.
- 6d ago First seen · 200 lines · 70 tokens per session scan A f7d3d18d26b4
automating-numbers is a skill published in the GitHub repository SpillwaveSolutions/automating-mac-apps-plugin (40 stars, last pushed 15d ago), licensed MIT. It adds 70 tokens to every session and 1,428 once invoked, about $0.0003 per session on Opus 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-30.
Other skills, from other repositories
excel-analyst-pro
Create or revise local Excel workbooks for DCF valuation, LBO returns, or budget-versus-actual variance analysis when the user explicitly requests a spreadsheet artifact. Use when evidence-backed finance models need reviewable formulas and checks. Trigger with explicit requests for a DCF, LBO, or variance workbook. Do…
lark-sheets
飞书电子表格:创建和操作电子表格。支持创建表格、管理工作表与行列结构(增删/合并/调整尺寸/隐藏/冻结)、读写单元格(值/公式/样式/批注/单元格图片)、查找替换、多操作原子批量更新,以及图表、透视表、条件格式、筛选器、迷你图、浮动图片等对象的创建与维护。当用户需要创建电子表格、管理工作表、批量读写或编辑数据、统计汇总与可视化、表格美化、公式计算(含 Excel 公式迁移)、金融/财务建模(DCF、三张表、预算、Sensitivity 等)等任务时使用。若用户是想按名称或关键词搜索云空间(云盘/云存储)里的表格文件,请改用 lark-drive 的 drive +search 先定位资源。当用户给出 doubao.com 的…
excel-cli
Excel CLI automation skill for Windows workbooks. Use when a coding agent needs token-efficient, scriptable, or unattended Excel automation via excelcli commands. Best for CI/CD, scheduled jobs, batch processing, PowerShell workflows, and bulk workbook edits. Supports Power Query, DAX, PivotTables, Tables, Ranges…
excel-mcp
Excel MCP Server skill for Windows workbook automation. Use when an assistant needs rich MCP tools to create, inspect, modify, format, or analyze Excel files. Supports Power Query (M), Data Model/DAX, PivotTables, Tables, Ranges, Charts, Slicers, formatting, screenshots, VBA macros, connections, and calculation mode.…
sheet-music-publisher
Converts mastered audio to sheet music and creates printable songbooks. Use after mastering when the user wants sheet music or a songbook for their album.
calc-spreadsheets
Use when creating, opening, or editing LibreOffice Calc ODS spreadsheets, or XLSX workbooks only when Excel compatibility is explicitly required.