Connect your coding agent
Make a narrated demo of your app without recording anything. You point your coding agent (Claude Code, Claude Desktop, or any MCP client) at your running app. It drives the app, captures each feature, and Zyng stitches a narrated, on-brand pitch on your credits. The Loom you never recorded.
▶ A coding agent built this with Zyng. Best with sound on.
1. Install
One line. Publishing needs only the package; capturing also needs Chromium.
pipx install zyng-mcp # or: uvx zyng-mcp python -m playwright install chromium # one-time, for capture
For OS-keychain credential storage, install zyng-mcp[keychain].
2. Get an API token
Sign in at app.zyng.work, open the avatar menu, choose API tokens, and Mint a zyk_… token (shown once). A fresh account includes free credits. One credit is one second of finished video, and tokens spend the same balance as the web studio.
3. Register with your agent
Add to .mcp.json at your project root (Claude Code) or claude_desktop_config.json (Claude Desktop):
{
"mcpServers": {
"zyng": {
"command": "zyng-mcp",
"env": {
"ZYNG_API_KEY": "zyk_your_token",
"ZYNG_BASE_URL": "https://app.zyng.work"
}
}
}
}Gitignore that file (it holds your token), then restart or approve so the account, capture_clips, and publish tools load.
4. Ask your agent
Tell it what to show. It does the rest.
My app is running at http://localhost:3000. Record the sign-in and the dashboard, then publish a 30-second pitch. Say "this is the fastest way to onboard" over the dashboard.
Your agent checks account for credits, calls capture_clips per feature (authoring the Playwright selectors from your source), assembles a publish spec, and calls publish, which blocks until Zyng returns the finished MP4 and a share link.
The Zyng skill (recommended)
Drop in the Zyng skill so any agent runs this loop consistently: it checks credits first, reads your source for real selectors instead of guessing, composes a clean spec, and keeps your secrets out of the conversation. Save it to your agent’s skills folder (for Claude Code, .claude/skills/zyng/SKILL.md).
Authenticated apps, secrets never touch the agent
Never put a password in a spec. All three options resolve on your machine, out of band:
- HTTP Basic Auth (staging behind a login dialog): run
zyng-mcp secret set staging_basic_auth(enteruser:password), then capture withhttp_auth="staging_basic_auth". - A login form (preferred): run
zyng-mcp login http://localhost:3000once, log in by hand, and capture starts authenticated. - A form login you must show:
zyng-mcp secret set app_password, then a fill step{"do":"fill","selector":"#password","secret":"app_password"}.
The value never enters your agent’s context, the tool call, a log, or the uploaded video.
The three tools
| tool | what it does | needs |
|---|---|---|
account | Your credit balance, the “do I have credits?” check. | token |
capture_clips | Drive a running app, screen-record a feature into a raw clip and timeline. | Chromium, no key |
publish | Upload clips plus a composition spec, get back a managed narrated MP4. | token, spends credits |
Beyond a walkthrough, scenes and footage
The publish spec mixes cards (title and closing slides), clips (your captures, optionally wrapped in a themed embed:"frame" device frame), and scenes (curated animated components: BigStat, MetricGrid, PipelineFlow, DeviceMock). All narrated and stitched. So one spec can open on a stat, show your product in a browser frame, and close on a call to action.
Troubleshooting
| symptom | fix |
|---|---|
| Tools not available | Restart or approve the zyng MCP server in your client. |
| “Chromium isn’t installed” | Run python -m playwright install chromium. |
| “invalid or missing X-API-Key” | The token is wrong or expired. Mint a new one in the studio. |
| “no render-minutes left” | Add credits at app.zyng.work. |
| A step fails naming a selector | Read your source, fix the selector, and call capture_clips again. |