Install
$ agentstack add skill-sumitaich1998-jarvisvr-control-media-playback ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Control Media Playback
Drive a media_player (and, for music, an optional music_visualizer) and handle its transport events.
Steps
- Resolve the source. A named track/video → resolve a
source_url+
media_type (audio|video). "Play music" with no title → a default playlist.
- Start with
play_media. Spawns amedia_player(state:"playing"). - For music, add ambience with
show_music_visualizer(audio-reactive). - Handle controls (
client.interaction, §5.11) withholo.update:
play_pause→ togglestate.seek{position_ms}→ setposition_ms.set_volume{volume}→ setvolume(0–1).stop→state:"stopped"orholo.destroy.
- Map speech to actions: "turn it up" →
volume += 0.1; "skip 30s" →
position_ms += 30000.
Output
media_player (play_media, props per registry.json):
{ "widget_type": "media_player",
"transform": { "anchor": "world", "billboard": true },
"props": { "title": "Lo-fi Beats", "source_url": "https://cdn.jarvisvr.app/audio/lofi.mp3",
"media_type": "audio", "state": "playing", "position_ms": 0,
"duration_ms": 180000, "volume": 0.6, "loop": true },
"interactions": ["tap","grab","resize","slider"] }
music_visualizer (show_music_visualizer):
{ "widget_type": "music_visualizer",
"props": { "track": "Lo-fi Beats", "artist": "Chillhop", "style": "bars",
"amplitude": [0.2,0.6,0.9,0.4,0.7], "color": "#7FE7FF", "playing": true } }
Edge cases
- Source not found → say so; offer alternatives, don't fabricate a URL.
- Nothing playing ("pause") → no-op with a gentle note.
- Volume bounds → clamp to 0.0–1.0.
- Video vs audio → video uses a larger
world-anchored player; keep it out of
the user's path (defer placement to stage-agent).
- Ambient background loop (rain, café) → that's
set-soundscape. - Generate cover art / imagery →
create-image.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: sumitaich1998
- Source: sumitaich1998/jarvisvr
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.