Skip to main content
Part of the summer-apps skill. The skill links here when your agent needs the detail.
A working code app: shared notes for a playtest. Copy it, rename things, then grow it. It shows every piece an app needs: the manifest, loading the SDK and kit, waiting for the host, shared data (list, put, live changes), who changed a row (person or agent), an edit flow (dialog + form with setValues), status badges, an error with Try again, the page declaration, an agent event, an agent tool and frame-move state. Publish it with apps.publish({ appId, files, manifest, note }) where files holds index.html and app.js as { path, content }. The page, sections, inputs, table, notice and empty text are kit components (apps.guide({ section: "kit" }), or /summer-ui/v1/catalog.json on the app host); no app CSS is needed.

The manifest (send it as manifest)

index.html

app.js

Playing sound with Web Audio instead of <audio>? Wrap it so the frame is not moved mid-sound: summer.app.busy(true) when it starts, summer.app.busy(false) in the source’s onended.

The agent side of the same app

That is an apps.write_data input: it works with the app closed, and the open app shows it through notes.subscribe. apps.tools and apps.read_data return the collections above, so an agent knows the record shape.
Source: library/skills/summer-apps/minimal-app.md, rendered from summer-engine@4.3.0 on npm.