Test audio loading, playback, stop, and spatial audio via iwsdk CLI.
The material indicates this is essentially a prompt/document-style workflow for testing an audio example, with no declared secrets or remote endpoints, so overall risk appears low. Caution is still warranted because the README includes operational steps to install dependencies, start a dev server, and run CLI commands locally, which implies local code execution and workspace data access, but these are normal tool capabilities rather than clear red flags.
The material explicitly states there are no required secrets or environment variables, and the README does not request any API keys, tokens, or account credentials; no clear sign of credential collection, storage, or abuse is present.
The declared remote endpoint host is none, and the documentation mainly describes testing via the iwsdk CLI within a local example workspace; while it includes starting a dev server and browser/xr operations, the material provides no factual indication of user data being sent to unknown or unrelated external hosts.
The README explicitly instructs running commands such as `npm run fresh:install`, `npm run dev`, and `npx iwsdk ...`, including launching a background dev server; this implies local code/process execution. That is a normal tool capability, and no request for system privileges beyond the stated testing purpose is evident.
The documentation requires operating inside the `$IWSDK_REPO_ROOT/examples/audio` workspace, parsing logs, checking system state, and interacting with the example app, indicating access to the local project directory and related runtime data. There is no evidence of requests to read unrelated directories, sensitive system files, or excessive permissions.
Positive signals include the open-source designation and a GitHub source at facebook/immersive-web-sdk, making the code auditable; however, the license is unspecified, community adoption shows 0 stars, maintenance status is unknown, and the README involves `npm`/`npx` install-and-run flows, so normal dependency supply-chain caution remains warranted. Based on the provided material, there is no concrete red flag sufficient for a high-risk rating.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "test-audio" skill from askskill: 1. Download https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/.claude/skills/test-audio/SKILL.md 2. Save it as ~/.claude/skills/test-audio/SKILL.md 3. Reload skills and tell me it's ready
Use the iwsdk CLI to test the audio example, verify that AudioSource loads and starts playback correctly, and report the status of each step.
A test result showing whether the audio loaded and started playback successfully, with status details for each stage.
Run the audio example through the iwsdk CLI, stop the audio after playback starts, and confirm whether the playback state switches to stopped correctly.
A test conclusion on whether the stop action worked, including the state change before and after stopping.
Use the iwsdk CLI to test the spatial audio capability in the audio example, verify whether the audio source enables spatial effects as expected, and summarize the results.
A spatial audio test summary indicating whether spatial audio worked as expected and whether any issues were found.
Run 6 test suites covering audio loading, playback trigger, stop, system registration, component schema, and stability.
Configuration:
$IWSDK_REPO_ROOT/examples/audioTool calls: every tool call is npx iwsdk <subcommand> [--input-json '<JSON>'] [--timeout <ms>], run from inside the example workspace (cwd $EXAMPLE_DIR). The CLI auto-discovers the IWSDK app root from cwd, so no path tricks are required. Run npx iwsdk mcp inspect from the example to discover available tools and their CLI subcommands.
<JSON> is a JSON object string. Omit --input-json if no arguments are needed.{ok, workspaceRoot, operation, result}. Parse it to check assertions.--timeout 20000 for operations that may take longer (reload, xr enter, screenshot).IMPORTANT: Run each Bash command one at a time. Parse the JSON output and verify assertions before moving to the next command. Do NOT chain multiple CLI commands together.
IMPORTANT: When the instructions say "wait N seconds", use sleep N as a separate Bash command.
IMPORTANT: Boolean values in ecs set-component must be actual JSON booleans (value: true), NOT strings (value: "true"). Strings silently fail to coerce.
cd $IWSDK_REPO_ROOT/examples/audio && npm run fresh:install
Wait for this to complete before proceeding.
Start the dev server as a background task using the Bash tool's run_in_background: true parameter:
cd $IWSDK_REPO_ROOT/examples/audio && npm run dev
IMPORTANT: This command MUST be run with run_in_background: true on the Bash tool — do NOT append & to the command itself.
Once the background task is launched, poll the output for Vite's ready message (up to 60s). You can also run npx iwsdk dev status from the example directory until state.running becomes true. You do not need to extract or manage the port yourself; subsequent commands resolve the active runtime through the CLI automatically.
If the server fails to start within 60 seconds, report FAIL for all suites and skip to Step 5.
npx iwsdk ecs systems 2>/dev/null
This must return JSON with a list of systems. If it fails:
Run these commands in order:
npx iwsdk browser reload --timeout 20000 2>/dev/null
Then: sleep 3
npx iwsdk xr enter --timeout 20000 2>/dev/null
Then: sleep 2
npx iwsdk browser logs --input-json '{"count":20,"level":["error"]}' 2>/dev/null
Assert: No error-level logs. Audio autoplay warnings are acceptable.
Test 1.1: Find Audio Entity
npx iwsdk ecs find --input-json '{"withComponents":["AudioSource"]}' 2>/dev/null
Assert: At least 1 entity. Save the first as <audio>.
The audio example uses a GLXF level that creates entities via composition. The Spinner entity has an AudioSource.
Test 1.2: Verify Loaded State
npx iwsdk ecs query --input-json '{"entityIndex":<audio>,"components":["AudioSource"]}' 2>/dev/null
Assert:
src contains an audio file path (e.g., .mp3)_loaded = true (buffer loaded)_loading = false (not currently loading)_isPlaying = false (not playing yet — unless autoplay is set)volume = 1positional = trueTest 1.3: Pool Created
Assert: _pool exists with available array matching maxInstances.
Test 2.1: Request Play
npx iwsdk ecs set-component --input-json '{"entityIndex":<audio>,"componentId":"AudioSource","field":"_playRequested","value":true}' 2>/dev/null
…
Plan IWSDK features, architecture, and code patterns with best-practice guidance.
Test XR session lifecycle and mode transitions to verify behavior and debug state issues.
Build, debug, and refine IWSDK PanelUI panels more efficiently.
Test multiple grab interaction modes with the iwsdk CLI.
Test XR interactions, panels, and audio behavior with the iwsdk CLI.
Find and click XR target objects to verify UI interactions work correctly.
Test Havok physics behaviors with the iwsdk CLI against example scenes.
Test UI system behavior and compatibility against the poke example with iwsdk CLI.
Test slide, snap turn, teleport, and jump locomotion with iwsdk CLI.
Test level hierarchy, tags, and lighting setup with the iwsdk CLI.
Test ECS core behaviors and example runtime via the iwsdk CLI.
Test environment settings and component schemas with iwsdk CLI against poke.