Announcing Beacon: Self-improving memory for coding agents
← All skills
Skill

ai-sdk

skill:openai/plugins#ai-sdk

Vercel AI SDK expert guidance. Use when building AI-powered features — chat interfaces, text generation, structured output, tool calling, agents, MCP integration, streaming, embeddings, reranking, image generation, or working with any LLM provider.

Verdict
Suspicious

Risky behavior the analysis could not rule out.

Analyzed Oct 27, 2026, 23:30 UTC at 0722921

Dispute security verdict

If you believe this verdict is incorrect, submit a dispute and we'll review it.

2
findings
high
highest severity
2
threat classes
5,479
files scanned
151/151
checks satisfied
0
package advisories

Why this verdict

  • suspicious: finding skill:plugins/vercel/skills/ai-sdk:plugins/vercel/skills/ai-sdk/references/devtools.md:45:EXEC
  • suspicious: finding skill:plugins/vercel/skills/ai-sdk:plugins/vercel/skills/ai-sdk/references/devtools.md:45:SUPPLY

Security findings 2

Code execution

highContextual riskmedium confidence

The DevTools reference instructs the agent to run `npx @ai-sdk/devtools`, which downloads and executes an unpinned npm package and starts a local web service on localhost:4983.

npx @ai-sdk/devtools
vector:instruction
Counter-argument considered

Strongest refutation case fails: the setup section tells users to install the package locally and the command targets the vendor's own @ai-sdk scope, but the npx line carries no version pin, so the pinned-registry-install carve-out does not apply, the declared description/claims (guidance, file read, data structure) do not declare executing a package or starting a web service, and the file contains a concrete bash instruction the skill mandates reading. The finding stands as a contextual risk.

Supply chain

mediumContextual risklow confidence

The devtools documentation instructs the agent to run `npx @ai-sdk/devtools`, which downloads and executes the latest unpinned version of an npm package at runtime, so the code executed depends on mutable registry state.

npx @ai-sdk/devtools
vector:instruction
Counter-argument considered

The only mitigation candidate is the setup instruction to install the package with a project package manager, which would make npx reuse a local binary, but that install is itself unpinned and npx still fetches the latest version whenever the package is absent, so executed code remains dependent on mutable registry state; no carve-out (which requires pinning) or declared claim neutralizes this. The supply-chain finding survives.

Open questions 1

What the analysis could not settle from the code alone.

Is https://ai-gateway.vercel.sh the official Vercel AI Gateway endpoint, and does the models-list request send any local data beyond the GET itself?

Coverage gaps 14

Parts of the artifact the static analysis could not fully examine.

context:unanalyzable_binary binary content is only byte-scanned
plugins/codex-security/mcp/helpers.mjs.br.part-000
context:unanalyzable_binary macho content is only byte-scanned
plugins/codex-security/mcp/native/darwin-arm64/unix.node
context:unanalyzable_binary macho content is only byte-scanned
plugins/codex-security/mcp/native/darwin-x64/unix.node
context:unanalyzable_binary elf content is only byte-scanned
plugins/codex-security/mcp/native/linux-arm64-gnu/unix.node
context:unanalyzable_binary elf content is only byte-scanned
plugins/codex-security/mcp/native/linux-arm64-musl/unix.node
context:unanalyzable_binary elf content is only byte-scanned
plugins/codex-security/mcp/native/linux-x64-gnu/unix.node
context:unanalyzable_binary elf content is only byte-scanned
plugins/codex-security/mcp/native/linux-x64-musl/unix.node
context:unanalyzable_binary pe content is only byte-scanned
plugins/codex-security/mcp/native/win32-arm64/windows.node
context:unanalyzable_binary pe content is only byte-scanned
plugins/codex-security/mcp/native/win32-x64/windows.node
context:unanalyzable_binary binary content is only byte-scanned
plugins/codex-security/mcp/server.mjs.br.part-000
context:unanalyzable_binary binary content is only byte-scanned
plugins/codex-security/mcp/server.mjs.br.part-001
context:oversize archive member exceeds 8388608 bytes; truncated, no text
plugins/shopify/skills/shopify-admin/assets/admin_2026-04.json.gz!/admin_2026-04.json
context:decoded_views_exceeded 452 derived view(s) beyond the per-file view cap: decoded:charcode, decoded:rot13, decoded:unicode-escape
plugins/creative-production/mcp/server.bundle.mjs
context:bytes_unavailable yara-x: no bytes to scan
plugins/shopify/skills/shopify-admin/assets/admin_2026-04.json.gz!/admin_2026-04.json