name: apple-flow-numbers
description: General Apple Numbers automation for Apple Flow. Use when working with .numbers files through apple-flow tools, including creating new sheets, appending structured rows, choosing insertion behavior (after-data, after-headers, at-end), and validating/debugging row placement with read-back checks.
Apple Flow Numbers
Use this skill to reliably create and update Apple Numbers documents with:
apple-flow tools numbers_createapple-flow tools numbers_create_workbookapple-flow tools numbers_add_sheetapple-flow tools numbers_append_rowsapple-flow tools numbers_style_apply
Favor deterministic CLI workflows over ad hoc AppleScript. Use direct AppleScript only for read-back verification and debugging.
Current Capability Snapshot
- Supports wide tables:
numbers_createauto-expands columns to fit all headers.numbers_create_workbookbuilds multi-sheet files from one JSON spec.numbers_add_sheetadds initialized sheets to existing workbooks.numbers_append_rowsauto-expands columns to fit the widest incoming row.
- Supports insertion modes:
after-data,after-headers,at-end
- Supports styling operations:
- colors (
background_color,text_color) - font (
font_name,font_size) - alignment (
left|center|right|justified|natural) - number format (
automatic|currency|percentage|scientific|fraction|text) - wrapping (
text_wrap) - dimensions (
row_height,column_width)
- colors (
Quick Start
- Create a Numbers file with headers:
apple-flow tools numbers_create \
"/abs/path/tracker.numbers" \
'["Date","Item","Category","Amount","Notes"]' \
--sheet "Sheet 1" \
--table "Table 1" \
--overwrite true
- Append rows (recommended default
after-data):
apple-flow tools numbers_append_rows \
"/abs/path/tracker.numbers" \
'[["2026-03-04","Coffee","Food",15,"Morning"],["2026-03-04","Burger","Food",30,"Lunch"]]' \
--sheet "Sheet 1" \
--table "Table 1" \
--position after-data
- Verify insertion response:
- Expect JSON with
"ok": true - Check
start_rowandinsert_after_row
- Apply formatting/style:
apple-flow tools numbers_style_apply \
"/abs/path/tracker.numbers" \
'{"scope":"range","start_row":2,"end_row":20,"start_column":1,"end_column":5}' \
'{"background_color":[255,245,230],"font_size":12,"alignment":"center","row_height":28,"column_width":160}'
- Build a full workbook (multiple sheets):
apple-flow tools numbers_create_workbook \
"/abs/path/workbook.numbers" \
'{"sheets":[{"sheet_name":"Transactions","table_name":"Tx","headers":["Date","Item","Amount"],"rows":[["2026-03-04","Coffee",15]]},{"sheet_name":"Summary","table_name":"Summary","headers":["Metric","Value"],"rows":[["Total",15]]}]}' \
--overwrite true
- Add one more sheet to an existing workbook:
apple-flow tools numbers_add_sheet \
"/abs/path/workbook.numbers" \
'{"sheet_name":"Dashboard","table_name":"DashboardTable","headers":["Metric","Value"],"rows":[["Count",1]]}'
Input Rules
- Always use an absolute path.
- File extension must be
.numbers. numbers_createheaders must be a JSON array of strings.numbers_append_rowspayload must be a JSON array.numbers_create_workbookrequires{"sheets":[...]}with uniquesheet_namevalues.numbers_add_sheetrequires a sheet JSON object withsheet_nameand non-emptyheaders.- Safest append shape: array-of-arrays (for example:
[[...],[...]]). numbers_style_applytarget/style args must be JSON objects.- Style target indices are 1-based.
Position Strategy
after-data:- Best for logs and trackers.
- Inserts right after the last non-empty data row.
- Fills the top data region instead of jumping to visual bottom rows.
after-headers:- Inserts at first data row.
- Shifts existing data down.
at-end:- Always appends to the physical end of the table.
- Use when you explicitly want bottom append behavior.
Wide-Column Imports
If a CSV has more than the default table width, import directly with full headers and rows. The tool will auto-add required columns before writing data.
Standard Workflow
- Define columns first.
- Create or reuse target file.
- Build rows as JSON.
- Append with
--position after-dataunless user asks otherwise. - Verify first and last inserted rows.
Read-Back Verification
Use this AppleScript probe after appending:
osascript <<'APPLESCRIPT'
set p to POSIX file "/abs/path/tracker.numbers"
tell application id "com.apple.iWork.Numbers"
set d to open p
set t to first table of first sheet of d
tell t
set firstRow to (value of cell 1 of row 2 as text) & "|" & (value of cell 2 of row 2 as text)
set lastRow to (value of cell 1 of last row as text) & "|" & (value of cell 2 of last row as text)
end tell
close d saving no
return firstRow & "\n" & lastRow
end tell
APPLESCRIPT
Troubleshooting
absolute path required:- Convert to absolute path before tool call.
target document does not exist:- Create with
numbers_createfirst or confirm path typo.
- Create with
Can't get sheetorCan't get table:- Provide exact
--sheetand--tablenames.
- Provide exact
Connection invalid/ AppleScript runtime failures:- Ensure Apple Numbers is installed (
com.apple.Numbers; older installs may usecom.apple.iWork.Numbers) and automation permissions are granted. - Avoid similarly named non-iWork apps (for example
Numbers Creator Studio.app) for AppleScript automation. - Retry command outside restrictive sandbox context when needed.
- Ensure Apple Numbers is installed (
- Rows appear too far down:
- Use
--position after-dataand verify table has expected headers/data.
- Use
Done Criteria
- Tool command returns
"ok": true. - Inserted row range is sensible (
start_row,insert_after_row). - Read-back confirms expected top and tail data placement.