01 · HUMAN
Available todayEmbed a permissioned shell that only invokes actions you declared in your manifest. Side effects pause for confirmation — the same gate agents hit through the API.
See it in action
A Duct shell floating over a sample product — the user asks, sees structured UI, and hands off with context. No navigating the app by hand.
Deploy, scale, and manage your stack — one dashboard your whole team actually loves.
Deploy pipelines
Push to prod in one click with guarded rollouts.
Why this mode
The shell is one delivery surface for your action layer. It answers, shows structured UI, collects input, and hands off — all bound to duct.config.ts.
Records become tables. Status queries become cards. The shell picks the right component from the result shape — no per-answer frontend work.
Irreversible actions pause for explicit approval in chat. Users stay in control — nothing runs without their say-so, and every call is logged.
Flow
Define actions once in duct.config.ts — this is how that contract plays out for this caller.
Define actions in your manifest
Map your API to duct.config.ts — permissions, side effects, and deeplinks in one contract.
User asks in plain language
"Show my invoices", "Cancel my subscription", "Take me to billing."
Shell invokes a declared action
Data views, in-conversation forms, or a signed handoff — only what the manifest allows.
Your API executes
Same backend, same permissions. Duct routes intent and enforces consent — your servers still run the work.