"Use Porcupine from Node.js server-side JavaScript or TypeScript
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill nodejs-server --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Nodejs Server?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-nodejs-server)More formats (shields.io, HTML) on the badges page.
---
name: nodejs-server
description: "Use Porcupine from Node.js server-side JavaScript or TypeScript
for file and microphone wake-word detection."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# Porcupine Node.js Server Skill
Use this sub-skill when the task is to run Porcupine from Node.js 18+ in a server, CLI, Electron main-process, or other non-browser JavaScript/TypeScript runtime.
## Route here for
- Installing and importing `@picovoice/porcupine-node`.
- Constructing `new Porcupine(accessKey, keywords, sensitivities, options)`.
- Choosing built-in keyword enum values versus custom `.ppn` keyword file paths.
- Processing 16 kHz, 16-bit, mono PCM frames with `process(frame)` and calling `release()`.
- Listing inference devices with `Porcupine.listAvailableDevices()`.
- Building file-based WAV scanning or microphone capture workflows in Node.js.
- Diagnosing native `.node` package loading, AccessKey, frame-shape, sensitivity, and lifecycle failures.
## Route elsewhere
- Browser, WebAssembly, React hooks, or browser microphone work: `../web-and-react/SKILL.md`.
- Custom keyword training, language model `.pv` selection, platform-specific `.ppn` assets, and Picovoice Console/API limits: `../custom-keywords-and-assets/SKILL.md`.
- Python CLI/API workflows: `../python-and-cli/SKILL.md`.
- C, MCU, mobile, JVM, .NET, Flutter, or React Native SDKs: the relevant sibling sub-skill.
- Cross-cutting install/AccessKey/platform issues shared by every SDK: `../../references/troubleshooting.md`.
## First reads
1. `references/nodejs-api-reference.md` for API signatures, built-in keyword names, options, exported helpers, package/build facts, and validation rules.
2. `references/nodejs-workflows.md` for file WAV and microphone workflow recipes.
3. `references/troubleshooting.md` before changing code around native loading, AccessKey, keyword arrays, PCM frames, or cleanup.
4. `scripts/porcupine_node_file_template.js` when a safe starting point for a Node file-detection helper is useful.
## Operating guardrails
- Treat `@picovoice/porcupine-node` as a Node-only native package; do not use it in browser bundles.
- Do not hard-code AccessKeys or require them for help, keyword listing, or device-listing tasks. An AccessKey is required only when constructing a Porcupine engine for detection.
- Prefer `BuiltinKeyword.<NAME>` values for built-in English wake words. Use custom `.ppn` paths only for trained or non-bundled keyword models, and route asset/training decisions to `custom-keywords-and-assets`.
- Keep every audio frame at `handle.frameLength`, `handle.sampleRate`, mono, 16-bit linear PCM. Use `Int16Array` in new code.
- Always release the Porcupine handle in a `finally` block or shutdown handler; release microphone recorders separately.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!