Skills/npm/deck

deck@0.13.0

VERIFIED· startup only

Publisher claims: "Kadal Deck: build it, rehearse it, own the room. Talks written in MDX, with an MCP server and CLI for your AI agent, narration and a teleprompter to rehearse, a phone remote to present, and a live room for polls, Q&A and reactions. Export to PDF, PNG and " Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher kadal · publishing for 36 daysInstalls 13,952Last detonated 32 h ago
$claude mcp add deck -- npx -y @kadal/deck
WatchReport an issue

Coverage

Startup only; authenticated tool behavior not tested.
Tested
server startup over stdio (initialize sent) · every file read, file written and host contacted by what ran
Not tested
the tool list (the server exited before answering) · what the tools do when called with real credentials

What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.

Before you give it your token

It will ask for
KADAL_DECK_TOKENConfiguration, not credentials: DECK_ADMIN_KEY, DECK_HOST, DRAG_PATH, KADAL_DECK_BUILD_RECORD, KADAL_DECK_ENTRY, KADAL_DECK_HOST, KADAL_DECK_HTTPS, KADAL_DECK_KIT, KADAL_DECK_PWA, KADAL_DECK_REMOTE_ASSETS, KADAL_DECK_SUBDIR, KADAL_DECK_TARGET, KADAL_DECK_WITHOUT_NOTES, NOTES_PATH, RESOLVE_PATH, SOURCE_PATH
Where it talks to
kadal.cc (its own)Also vercel.sh, cloudflare.com, youtube-nocookie.com, twitter.com, bsky.app, revealjs.com, esm.sh, plantuml.com — not the publisher's domain; check what for before connecting.
What the honeypot saw
no credential files read · no network
What we could not test
the tool list (the server exited before answering) · what the tools do when called with real credentials

Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names vercel.sh, cloudflare.com, youtube-nocookie.com, twitter.com, bsky.app, revealjs.com, esm.sh, plantuml.com as well as its own vendor. The guard injects KADAL_DECK_TOKEN only into requests to kadal.cc (and its subdomains) and refuses the rest.

$vet-skills run --secrets KADAL_DECK_TOKEN=kadal.cc -- npx -y @kadal/deck

Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; startup only; authenticated tool behavior not tested) on 2026-11-13 and scored it 85/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 70 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
48sprocessdependency install exit 0
68sclaimedstartup only: exited (0) before answering · Global: --dir <path> (-C) runs in another folder · --json prints one JSON object on stdout · --help · --version. Exit codes: 0 ok, 1 failed, 2 usage, 3 not signed in, 4 missing prerequisite (publish: the published deck moved since your last sync), 5 unresolved merge conflicts. Docs: https://deck.kadal.cc/docs/
68sprocessscript backend runs setup only
68sprocessno install scripts to re-run

Static findings

MEDIUM
npx invocation of non-well-known packagedist/mcp/index.js:942 · npx invocation of non-well-known package — may execute untrusted codecommand: "npx kadal-deck login"Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/render.js:146 · npx invocation of non-well-known package — may execute untrusted codeif (/Executable doesn't exist|playwright install/i.test(msg)) throw new MissingDependencyError("Playwright is installed but Chromium is not. Run: npx playwright install chromium");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/hosting.js:326 · npx invocation of non-well-known package — may execute untrusted codecase "cloudflare": return `Cloudflare: ${build} && npx wrangler deploy`;Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Hidden zero-width characters detecteddist/sync/mdx.js:626 · Hidden zero-width characters detected — may conceal contentconst bom = text.startsWith("");Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST07
MEDIUM
npx invocation of non-well-known packagedist/cli/hosting.js:22 · npx invocation of non-well-known package — may execute untrusted code* (`npx wrangler deploy` after the build); Pages' Git integration needs no fileFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/mcp/index.js:811 · npx invocation of non-well-known package — may execute untrusted code…s()) return failure("Not signed in to a Kadal Deck host. Ask the person to run `npx kadal-deck login` in a terminal (it opens a browser to approve this machine), or to set KA…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Hidden zero-width characters detecteddist/sync/mdx.js:688 · Hidden zero-width characters detected — may conceal contenttext: no.bom ? `${text}` : text,Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST07
MEDIUM
npx invocation of non-well-known packagedist/mcp/index.js:813 · npx invocation of non-well-known package — may execute untrusted codecommand: "npx kadal-deck login"Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/mcp/index.js:865 · npx invocation of non-well-known package — may execute untrusted codeconst NOT_SIGNED_IN = "Not signed in to a Kadal Deck host. Ask the person to run `npx kadal-deck login` (or set KADAL_DECK_TOKEN), then try again.";Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/hosting.js:243 · npx invocation of non-well-known package — may execute untrusted codecontent: `// Cloudflare Workers static assets: \`${build} && npx wrangler deploy\`.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/hosting.js:68 · npx invocation of non-well-known package — may execute untrusted coderun: (b) => `npx ${b}`Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Hidden zero-width characters detecteddist/sync/mdx.js:587 · Hidden zero-width characters detected — may conceal contentconst t = text.replace(/^/, "").replace(/\r\n?/g, "\n");Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST07
MEDIUM
npx invocation of non-well-known packagedist/cli/render.js:114 · npx invocation of non-well-known package — may execute untrusted codethrow new MissingDependencyError("Rendering slides needs Playwright and Chromium. In the deck folder run: npm install -D playwright && npx playwright install chromium");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06

Cost to the agent

Instructions loaded
≈98 tok
1 file · 81 in bundle
Tool list per prompt
≈0 tok
0 tools · 0 per tool
Handshake
no reply
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 0

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

No advisories in OSV for @kadal/deck@0.13.0 as of 30 h ago. This is the package itself, not its dependencies.