@duct-sdk/sdk
v0.1.13
Published
Duct SDK — A shell (like terminal) that knows when to talk, when to show, and when to hand off.
Maintainers
Readme
@duct-sdk/sdk
An intelligent execution shell for your product — lets humans and agents act on your backend without touching your UI.
A shell (like terminal) that knows when to talk, when to show, and when to hand off.
- Humans type what they want, Duct executes it, navigates, or surfaces structured data inline.
- Agents get a permissioned, structured API surface — no scraping, no computer use.
Credentials and shell provisioning are managed by duct.
Quickstart
1. Create your account and get your API key
2. Authenticate:
npx @duct-sdk/sdk login3. Run setup in the root of your project:
npx @duct-sdk/sdk initThis scans your codebase, detects your API surface, and generates:
duct.config.ts— your shell manifest- A receiver route (
/duct/receive) — handles deeplink handoffs - A shell widget component — drop into your layout
4. Push your manifest to Duct cloud:
npx @duct-sdk/sdk push5. Add the shell to your layout (Next.js example):
import { DuctShell } from '@duct-sdk/sdk/next';
export default function Layout({ children }) {
return (
<>
{children}
<DuctShell shellId={process.env.NEXT_PUBLIC_DUCT_SHELL_ID} />
</>
);
}CLI Reference
| Command | Description |
|---|---|
| npx @duct-sdk/sdk login | Authenticate with your Duct API key |
| npx @duct-sdk/sdk init | Scan codebase and generate config + shell files |
| npx @duct-sdk/sdk init --no-agents | Skip AI scan and start from a blank template |
| npx @duct-sdk/sdk push | Push duct.config.ts manifest to Duct cloud |
| npx @duct-sdk/sdk pull <hash> | Restore a manifest version from push history |
| npx @duct-sdk/sdk init --update | Incremental re-scan against git diff |
| npx @duct-sdk/sdk init --manual | Generate a config template without LLM (instant) |
| npx @duct-sdk/sdk scan | Detect drift between live API and manifest |
| npx @duct-sdk/sdk checkup | Check env config and service connectivity |
Once installed globally (npm i -g @duct-sdk/sdk), all commands shorten to duct login, duct init, duct pull, etc.
Framework Support
| Framework | Import |
|---|---|
| Next.js (App Router) | @duct-sdk/sdk/next |
| Remix | @duct-sdk/sdk/remix |
| Vite | @duct-sdk/sdk/vite |
| SvelteKit | @duct-sdk/sdk/sveltekit |
| React Embed | @duct-sdk/sdk/react |
Your API endpoints stay yours. Duct reads your manifest, routes intent, and calls your existing endpoints — nothing is proxied or stored.
Security
- Keep secrets server-side and never expose them in client code
- Use least privilege when marking actions as agent-accessible
- Store credentials in environment variables and rotate them in the Duct dashboard when needed
