origami.gratis
Origami Folio
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 10 · Act 25 · Transact 4 · Score: Not yet scored
Tool inspector
add_ledger
ADD A LEDGER FOLD IN ONE CALL — a titled card holding one live spreadsheet block. This CHANGES THE DECK the human is looking at and re-renders it. `formulas` maps an A1 cell to a formula and the calc engine RUNS them on the way in, so the file carries numbers, not an engine: {"D1":"=B1-C1","B5":"=SUM(B1:B4)"}. `totals` is a footer row: {"on":true,"fns":{"1":"SUM","2":"SUM"}} — the keys are COLUMN INDICES as strings, 0-based. `kpis` pins cards above the table: [{"name":"planTotal","ref":"B5"}] — `name` is an identifier, `ref` an A1 cell. A column `format` is an OBJECT — {"kind":"currency"|"number"|"percent"|"date"|"text"|"general"} — never a string. `currency` sets the PREFIX every currency column prints; without it the format library prints "$". Validated before anything is applied; a bad shape is refused with the violation named. One undo step.
Page: /folio/
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
title |
string | yes | The fold's heading (rendered as the h2) and the default sidebar label |
eyebrow |
string | no | The small label line above the heading, e.g. "Q3 review" (omit for none) |
label |
string | no | Sidebar/tab label (default: the title, trimmed to ~28 characters) |
position |
integer | no | 0-based insert index (default: the end) |
columns |
array | yes | Column definitions: [{ label, align?: "left"|"right"|"center", format?: { kind: "general"|"number"|"currency"|"percent"|"date"|"text", decimals?: int } }] |
rows |
array | yes | Cells, row by row, as strings: [["Rent","1200"], …]. Leave a formula cell "" — the calc engine fills it |
currency |
string | no | The PREFIX every currency-kind column prints, e.g. "€" or "EUR" or "£". It is printed LITERALLY, not resolved from an ISO code: "EUR" gives "EUR1,234.50" and "€" gives "€1,234.50". Default: the format library's own "$" |
formulas |
object | no | A1 cell -> formula, e.g. { "D1": "=B1-C1", "B5": "=SUM(B1:B4)" } |
named |
object | no | Named outputs other blocks can reference, e.g. { "grandTotal": "=B3" } |
totals |
object | no | A footer row: { "on": true, "fns": { "1": "SUM", "2": "SUM" } } — keys are COLUMN INDICES as strings, 0-based |
kpis |
array | no | Cards pinned above the table: [{ "name": "planTotal", "ref": "B5" }] — name is an identifier, ref an A1 cell or a cellName |
cellFormats |
object | no | Per-cell format overrides by A1 reference, e.g. { "B3": { "kind": "currency" } } |
caption |
string | no | The line under the table (default: none) |
Raw JSON schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"title": {
"type": "string",
"maxLength": 200,
"description": "The fold's heading (rendered as the h2) and the default sidebar label"
},
"eyebrow": {
"type": "string",
"maxLength": 80,
"description": "The small label line above the heading, e.g. \"Q3 review\" (omit for none)"
},
"label": {
"type": "string",
"maxLength": 200,
"description": "Sidebar/tab label (default: the title, trimmed to ~28 characters)"
},
"position": {
"type": "integer",
"minimum": 0,
"description": "0-based insert index (default: the end)"
},
"columns": {
"type": "array",
"description": "Column definitions: [{ label, align?: \"left\"|\"right\"|\"center\", format?: { kind: \"general\"|\"number\"|\"currency\"|\"percent\"|\"date\"|\"text\", decimals?: int } }]",
"items": {
"type": "object"
}
},
"rows": {
"type": "array",
"description": "Cells, row by row, as strings: [[\"Rent\",\"1200\"], …]. Leave a formula cell \"\" — the calc engine fills it",
"items": {
"type": "array"
}
},
"currency": {
"type": "string",
"maxLength": 8,
"description": "The PREFIX every currency-kind column prints, e.g. \"€\" or \"EUR\" or \"£\". It is printed LITERALLY, not resolved from an ISO code: \"EUR\" gives \"EUR1,234.50\" and \"€\" gives \"€1,234.50\". Default: the format library's own \"$\""
},
"formulas": {
"type": "object",
"description": "A1 cell -> formula, e.g. { \"D1\": \"=B1-C1\", \"B5\": \"=SUM(B1:B4)\" }"
},
"named": {
"type": "object",
"description": "Named outputs other blocks can reference, e.g. { \"grandTotal\": \"=B3\" }"
},
"totals": {
"type": "object",
"description": "A footer row: { \"on\": true, \"fns\": { \"1\": \"SUM\", \"2\": \"SUM\" } } — keys are COLUMN INDICES as strings, 0-based"
},
"kpis": {
"type": "array",
"description": "Cards pinned above the table: [{ \"name\": \"planTotal\", \"ref\": \"B5\" }] — name is an identifier, ref an A1 cell or a cellName",
"items": {
"type": "object"
}
},
"cellFormats": {
"type": "object",
"description": "Per-cell format overrides by A1 reference, e.g. { \"B3\": { \"kind\": \"currency\" } }"
},
"caption": {
"type": "string",
"maxLength": 200,
"description": "The line under the table (default: none)"
}
},
"required": [
"title",
"columns",
"rows"
]
}
Similar websites
econsor.de
German digital agency building portals, e-commerce sites and online marketing, combining strategy, design and AI to grow clients' visibility and customer base.
inkframe-eta.vercel.app
Browser-native Elah video editor for 9:16 and 16:9 exports
agentdesk-demo.vercel.app
Meridian Ops
eworker.ca
E-Worker is business infrastructure powered by AI, with focused apps and connected business work.