Docs

Commands

Every menu option is a dictionary. The cmd row is the identifier runCmd (or a profile / picker / field handler) looks up. Typed commands use / slash syntax and can call these same ids.

Command dictionary

In Edit on a metasheet, open an option’s value (Space). Rows are fields, not a JSON blob.

NameRequiredMeaning
cmdYesThe command id from the tables below.
kindNocmd (default, ribbon / runCmd), profile, picker, or header (field ☰).
keyNoOne-letter hotkey while that menu is open.
toneNoInsert swatch: table, dict, list, grid, pivot.
disabledNotrue — greyed out. Ribbon cmds refresh this from the live sheet.
stubNotrue — advertised but not implemented.
dangerNotrue — destructive styling (Sign out).
detailNoShort secondary label on the row.
iconNoShort icon (profile / field menus).
pickNoExtra payload for field commands (format code, principal, …).
principalNoAccess principal id (field Access).
valKeyNoFilter value key (field Filter).
toggleNotrue — stays open after click (field checkboxes).
textNotrue — the row is an in-place text field (filter query).

A nested menu is a dictionary that does not have a cmd (or id) row. Labels you see in the menu are the parent dictionary’s names — not the cmd string.

Ribbon · Insert kind cmd

cmdDefault labelWhat it does
tableTableInsert a nested table. On a grid, a multi-cell selection is moved into that table (one record per row, one field per column, generated headers). A single cell still inserts an empty table.
dictionaryDictionaryInsert a named-field dictionary. On a grid, a multi-cell selection is moved in: two columns become Name/Value rows; a two-row range that is not two columns becomes one entry per column; any other shape stores each cell as Field 1….
listFieldInsert a field (numbered values). On a grid, a multi-cell selection is moved in row by row (left to right).
gridGridInsert a nested grid.
checkboxCheckboxBoolean cell; Space toggles.
imageFile…File cell (image, PDF, …).
file—Same as File… (alias).
buttonButtonClickable cell. Push data appends/writes; also query refresh, URL, email, recalc.
pivotPivot tablePivot beside the current table.
chartChartInsert a nested bar/line/pie chart beside the source.
chartbar chartline chartpieBar / Line / PieChart tab — set kind.
chartrefreshRefreshRebuild series from source.
chartgosourceGo to sourceJump to the table or formula cell.

Ribbon · Formulas

cmdDefault labelWhat it does
fnlibLibraryFunction library.
namesDefined namesCreate/remove #name pointers.
calcCalculation: Auto/ManualToggle recalc mode.
refreshRecalc allFull invalidate (F9).
fnsec_mathMathLibrary filtered to that catalog section.
fnsec_statStatistical
fnsec_dateDate & time
fnsec_logicLogical
fnsec_lookupLookup
fnsec_arrayArray
fnsec_lambdaLambda
fnsec_textText
fnsec_infoInformation

Any fnsec_<categoryId> opens the library for that section. Unknown ids toast “No functions in that section”.

Ribbon · Queries

cmdDefault labelWhat it does
querymanageManage…List / edit / delete queries.
querynewFrom API…GET a URL into the selected cell; optionally save as a query.
queryrefreshRefreshRe-fetch the query for this cell.
queryrefreshallRefresh allRe-fetch every saved query.
importapi—Alias of From API…

Ribbon · Data

cmdDefault labelWhat it does
sortascSort A→ZSort the current table or list.
sortdescSort Z→A
filterFiltersCriteria dialog.
validateValidation…Allowed values / types.
findFindSearch the tree (Ctrl+F).
replaceReplaceReplace in the current structure.
getdataSample tableDemo Region/Units/Revenue table.
biggridLoad 5k-row gridVirtualization demo.
importlocalLocal file…Import a file into the selection / workbook.
import—Alias of Local file…
importfolderShared folder…Pick from a shared folder.
exportjsonDownload JSONExport metagrid-v2.
export—Alias of Download JSON.
exportemailEmail…Send the workbook JSON.
copylinkCopy app linkCopy the app URL.
share—Alias of Copy app link.

Ribbon · Access

cmdDefault labelWhat it does
accessusersUsersWorkbook roster.
accessgroupsGroupsNamed groups, including subgroups.
accesspermsPermissionsWho may view / edit / grant.
accessAccess…Permissions for the current structure (also on Structure).
viewasView as…Preview as another principal.

Ribbon · Structure

The Structure tab changes with cur.type. These cmds still work from any customized menu.

cmdOnWhat it does
gridcleanupGridUsed range → table or dictionary.
transposeTableFields ↔ records.
showfieldsTableHide fields without deleting them.
toggletotalsTableTotal record on/off.
lockheadersTableShare nested field formulas.
tolistTableConvert to list (one field).
todictionaryTable / listConvert to dictionary (one record, or named list).
totableFieldConvert to table.
totablepairsDictionaryName/Value table.
tonumberedlistDictionaryConvert to a field.
tonamedlist—Legacy alias of dictionary conversion.
namedlist—Legacy alias of insert dictionary.
pivotgosourcePivotJump to the source table.
pivotrefreshPivotRebuild from source.
pivotfieldsPivotField list pane.
pivotaddgroupPivotAdd a group field.
pivotremovegroupPivotRemove a group field.
pivotaddvaluePivotAdd a value field.
pivotremovevaluePivotRemove a value field.
pivotaddfilterPivotAdd a pivot filter.
pivotclearfiltersPivotClear pivot filters.

Profile kind profile

Set kind to profile. These ids are not passed to runCmd unless noted.

cmdDefault labelWhat it does
sheetsMy sheetsCloud workbook list (signed in).
signinSign in…Auth dialog.
signoutSign outSign out (danger).
menusMenus…Open the full menu catalog. Also a cmd id.
identitiesAddresses…Settings → Sending addresses (linked emails and phones for /EMAIL / /TEXT).
prefsSettings…Settings. Also a cmd id.
protectProtect sheetLocal read-only. Also a cmd id.
viewasView as…Same as Access → View as. Also a cmd id.
helpKeyboard shortcutsHelp overlay. Also a cmd id.

Empty-cell picker kind picker

cmdDefault labelWhat it does
fromlistFrom a list…Point at a list or column to fill this cell.
gridGridInsert grid and drill in.
tableTableInsert table and drill in.
listFieldInsert a field and drill in.
namedlistDictionaryInsert dictionary and drill in.

Sheet commands you can pin

These run through kind: cmd even though they are not on the default ribbon. Keyboard and gutters already do most of them.

cmdWhat it does
copy cut paste pastevaluesClipboard.
filldown fillrightFill.
selectallSelect all.
insrow inscol delrow delcol delcellInsert / delete geometry.
undo redoHistory.
renameStart editing the current name/header.
uuidToast the structure id and cell key (debug).
fmtgeneral fmtnumber fmtcurrency fmtpercent fmtsciNumber formats.
fmtdecinc fmtdecdec fmtcommaDecimals / comma style.
fmtdate fmtdateiso fmtdatelong fmtdatetime fmttime fmttext fmtclearDate/text formats.

Field ☰ kind header

Field menus rebuild from the current field — they are not saved with your customized ribbon. kind must be header. Several ids take extra rows (pick, principal, valKey).

cmdRole
filter sort validate formatOpen those submenus.
clear-filterClear the field filter.
sort-asc sort-descSort this field.
hide-field unique-id total-aggField visibility / id / totals aggregate.
list-from-colCreate a list from this field’s values (placed before the table).
fit fit-auto fit-name fit-manualColumn fit.
access-see access-edit access-manage access-toggleField Access.
fmtApply a format; pick is the code (General, number, currency, percent, scientific, text, date, dateiso, datelong, datetime, time, clear).
fmt-number fmt-date fmt-font fmt-align fmt-condFormat submenus.
fmt-bold fmt-italic fmt-wrap fmt-family fmt-size-inc fmt-size-decFont.
fmt-align-pickAlignment; pick is left / center / right / empty for default.
fmt-scaleColor scale; pick is gr or rg.
fmt-dups fmt-cond-clearDuplicates / clear conditional formatting.
fmt-dec-inc fmt-dec-dec fmt-commaNumber submenu.
op q select-all add-to-filter val applyFilter builder.
value structure file toggles-menu listType picker.
pick-value pick-struct pick-file nav-listType details.
linked fxlinked blank strictValidation toggles.
pick-total-aggTotal aggregate; pick is sum / avg / min / max / append.

Where this is stored

Customized ribbon and profile menus persist in localStorage key metagrid:metasheet-v2 as nested JSON objects. Field ☰ and the empty-cell picker always rebuild live. Reset on the metasheet restores the built-in trees.