> nanosheets.ai
the shared work surface for you and your agents
A spreadsheet-shaped working document for human–agent collaboration. Prompts embedded in the sheet drive the work; views scope the rows the agent can see and act on. The sheet is a file you own — agents read and write the same file you do.
$ sheet open
A sheet your agent can read
Every sheet is a typed grid an agent can fetch over HTTP. Columns carry intent — what kind of value, what the agent is allowed to write, what only a human may approve.
- Rich column types: select, multi-select, switch, date, url, status, image, approval — beyond just text and number
- Image cells take direct uploads; long text opens a pop-out markdown editor
- Per-column instructions travel with the value to the agent
- Form view for distraction-free, one-row-at-a-time data entry
- Row pinning keeps your place — never scroll-hunt the row you were on
- Every cell change tracked and versioned — no edit lost, agent or human
$ prompt edit
Prompts drive the whole sheet
Author as many markdown prompts as you need — each one a complete agent workflow over your sheet. Reference cells with {{column:id}}, row sets with {{view:id}}, and other prompts with {{prompt:name}} to chain steps. Agents substitute and execute, row by row.
- Many prompts per sheet — run any one independently for a different task
- Full markdown editor (CodeMirror 6) with live preview, syntax highlighting, and token chips
- {{column:id}} pulls cell values + per-column instructions
- {{view:id}} scopes the work to a saved filter
- {{prompt:name}} composes prompts into multi-step workflows
$ views edit
Views scope what the agent sees
Views are saved queries over your sheet — filters, sorts, and column visibility you author once and reuse everywhere. Reference a view in a prompt with {{view:id}} and the agent only reads and acts on those rows.
- Filter by any column to carve a run out of a large sheet
- {{view:id}} in a prompt scopes the work to that saved query
- Same views power the tabs you click and the rows agents process
$ man nanosheets
How it works
Shape
$ sheet new
Spin up a sheet. Pick the columns the agent fills, the columns you approve, and any locks that keep humans in the loop.
Prompt
$ prompt edit
Write one markdown prompt for the sheet. Reference cells with {{column:id}} and rows with {{view:id}}. No DSL, just words.
Run
$ /nanosheets run
Download the skill, drop it next to your agent, and watch it work the rows your view targets. You stay in the loop on every approval.
$ /nanosheets run <sheet>
A skill that runs anywhere
Download a prose-only skill bundle with your API token baked in. Drop it next to any agent that loads SKILL.md and it'll work your sheet without code, scripts, or setup.
- Claude Code, Codex, Gemini CLI, anything SKILL.md-shaped
- Ready for emerging agentic systems like Hermes and OpenClaw
- Per-user bearer tokens with last-used tracking
- Per-row optimistic rebase — agents and humans coexist
- Cells stamped writtenBy:'skill' for clear provenance
- Cell-level version history — diff any agent change and revert in one click
Hand the spreadsheet to your agent.
One sheet. One prompt. One agent that fills the rows you tell it to — and asks you to approve the ones that matter.