create-dpas-appOne capability layer for your UI, your copilot and MCP
One command scaffolds a Dual-Plane Agent Stack application: one typed registry instead of a product and a parallel agent API, governed on the server and testable without a model.
pnpm create dpas-app my-agent-appcd my-agent-app && pnpm dev
Open http://localhost:3000. Filter, sort and hide columns, all URL-synced, so a narrowed view is shareable. Open a chase dialog and record a reminder. Switch identity in the header: as Ada, the analyst, issue-invoice does not grey out, it disappears, and asking the server for it directly answers Capability not found.
Add a provider key, press ⌘J, and ask:
Which invoices are overdue, and by how much?
The copilot reads the ageing ladder on the server, narrows the table in your browser, reads the rows back, and answers from what it read. The table moves because the agent called the same setter your toolbar calls; it has no privileged channel into the UI.
Then ask it to issue a draft. It will not: a model-initiated issue-invoice comes back as an approval card, and nothing moves until you decide.
Everything on this site describes the app the scaffolder actually generates, built on the published @agent-surface/* and @orpc-agent/* packages, Mastra and assistant-ui. The architecture, capability and security guides are the same markdown that ships inside every generated app, so the two cannot drift.