# Tiny Little Office Tiny Little Office (https://tinylittleoffice.com) is an office suite whose documents live entirely in their links. You make a document by writing a URL. The document is TLO (Markdown with a few additions), percent-encoded after `#doc=`; the site and the API’s `link` write it packed, `#/v1//`; both open: ``` https://tinylittleoffice.com//#doc= ``` `` is one of `write`, `outline`, `deck`, `sheet`, `calc`, `draw`, `diagram`, `anim`, `cal`, `trip`. `&title=` names it, `&by=` says who made it, and `&lang=` (`es`, `zh-hant`…) opens the page in one of the site's languages. The words may be in any language or script, right to left too: write for the reader. Emoji are words, put the character in; `:name:` is one of Lucide's icons in the line, and first in a slide's headline it is the slide's icon; `code` is set in monospace. Keep a link under 2,000 characters and to the shapes shown: a hand-written link is checked by nothing. With a runtime: `import { link, read, lint } from 'https://tinylittleoffice.com/api.js'` in a browser, Deno or Bun; `npx tinylittleoffice` in Node, where `skill --into ~/.claude/skills` installs this guide for Claude Code. To learn a shape by example: - `npx tinylittleoffice shapes `: what the app reads, a line a shape - `npx tinylittleoffice example [shape]`: the smallest document that shows it, its JSON, lint and measures - `npx tinylittleoffice try `: a draft’s lint, measures and JSON https://tinylittleoffice.com/llms/.txt is a page on one app; https://tinylittleoffice.com/examples/.json every shape of it as a document, a link and JSON. ## One example per app - `write` Word Processor, headings: - `outline` Outliner, a nested list: - `deck` Presentation Builder, a slide of bullets: - `sheet` Spreadsheet, a money column: - `calc` Calculator, named lines: - `draw` Drawing Tool, pixel art: - `diagram` Diagram Maker, a mind map: - `anim` Animator, a shape that moves: - `cal` Calendar, things on days: - `trip` Trip Planner, a route: ## A document inside a document Any app's document goes inside a Word Processor page, a slide or an outline item: a fence named by any of the ten app ids (```` ```sheet ````, ```` ```calc ````, ```` ```anim ````…) holding that document's own TLO. Its own app draws it there, and it is edited in place. A slide with one shows it alone under the headline; an animation moves on its slide and plays when presented. A page's or a deck's PDF, and a deck's PowerPoint, carry it drawn. Put a document inside rather than link to it. Two slides, a cover and then the Moon going around the Earth, an animation on its slide: ## Three rules agents break first 1. **Every space and line break is kept.** A list nests by two spaces a level, and in a link each space is written (`%20%20` or `++`, a new line `%0A`): a dropped space flattens the tree. A line break inside a paragraph stays a line break, so never wrap a paragraph's lines. 2. **A slide shows one thing.** A slide with a chart, a table or a diagram shows it alone under the headline: bullets on it are not drawn, so put them in the notes (`> ` lines) or on a slide of their own. A `{.title}` slide is a cover, with a line or two under it, not a list. 3. **A comma in a list splits it.** In a Venn's or a seating chart's list a comma separates things, a comma in a number too: "2,000 cases" is two things, so write 2000. ## More The whole description: https://tinylittleoffice.com/llms-full.txt