start
Skill0 starsChanged 5 months agoMITView on GitHub
Start the phone voice remote for this Claude Code session.
130 other projects use a version of this.
Adopted by
Most recently taken up by
- ansvisor/ansvisortheir own version, first seen Nov 8, 2026
- dsifry/metaswarmtheir own version, first seen Nov 8, 2026
- ai-search-guru/getcito-worlds-first-open-source-aio-aeo-or-geo-tooltheir own version, first seen Nov 8, 2026
- paulocsb/worldcup-fifa-pooltheir own version, first seen Nov 8, 2026
- srinator22/New-Projecttheir own version, first seen Nov 8, 2026
- Memolok/Claude-plugintheir own version, first seen Nov 6, 2026
Used with
Projects with it also use setup-engine, team-audio and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
CoralGameSkillsetup-engine
Configure the project's game engine and version. Pins the engine in CLAUDE.md, detects knowledge gaps, and populates engine reference docs via WebSearch when the version is beyond the LLM's training data.
Also in 13 projects that use this
CoralGameSkillteam-audio
Orchestrate audio team: audio-director + sound-designer + technical-artist + gameplay-programmer for full audio pipeline from direction to implementation.
Also in 13 projects that use this
lilangMaxSkillcreate-stories
Break a single epic into implementable story files. Reads the epic, its GDD, governing ADRs, and control manifest. Each story embeds its GDD requirement TR-ID, ADR guidance, acceptance criteria, story type, and test evidence path. Run after /create-epics for each epic.
Also in 11 projects that use this
lilangMaxSkillstory-done
End-of-story completion review. Reads the story file, verifies each acceptance criterion against the implementation, checks for GDD/ADR deviations, prompts code review, updates story status to Complete, and surfaces the next ready story from the sprint.
Also in 11 projects that use this
- +5 more from CoralGame
- +3 more from lilangMax
Other versions130 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 130
- anthropics/knowledge-work-plugins★ 35ksame name
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- openai/plugins★ 7.8ksame name
- SterlingChin/marvin-template★ 1ksame name
- educlopez/ui-craft★ 441same name
- ai-search-guru/getcito-worlds-first-open-source-aio-aeo-or-geo-tool★ 432same name
- dsifry/metaswarm★ 426same name
- pixel-cellar/Claude-Code-Game-Studios★ 324same name
- ansvisor/ansvisor★ 233same name
- alexeykrol/claude-code-starter★ 194same name
120 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 117 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
Launch the voice daemon as a background task: Use the Bash tool's background mode (run_in_background) — do not append &, and do not use …
- Distinctive: line 15
Run exactly this command (the env is set explicitly so it can't pick up another plugin's data dir):
- Very specific: line 74
If "pairing" is null/absent (the bridge state couldn't be confirmed), just show the link and say paired devices reconnect, and to add a …
- Very specific: line 79
If you see NOT_RUNNING after the poll, the background task didn't come up — check /tasks for its output (it logs to stderr) and …
“Common” is measured: kept by at least 6 in 10 of the 117 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
The voice remote runs as a visible, killable background task inside this Claude Code
session — it appears in /tasks and dies with the session. Starting it launches that task,
then shows a scannable QR code + the phone URL. State lives in the plugin's own data dir
(${CLAUDE_PLUGIN_DATA}), not in ~/.config.
Launch the voice daemon as a background task. Use the Bash tool's background mode (
run_in_background) — do not append&, and do not usenohup/setsid/disown(those detach it to launchd and it loses the cmux trust it needs to type into the pane). Run exactly this command (the env is set explicitly so it can't pick up another plugin's data dir):CLAUDE_PLUGIN_DATA="${CLAUDE_PLUGIN_DATA}" node "${CLAUDE_PLUGIN_ROOT}/dist/daemon/standalone.js"It will not return — that is correct; this process is the live voice session and must keep running. (If the OpenAI key is missing it instead writes onboarding state and exits.)
Wait for the daemon to publish the session, then show it. The daemon writes a machine-level QR code (
qr.txt, the same URL/QR for every pane) and a per-pane runtime file (runtime/<CMUX_SURFACE_ID>.json, so multiple panes don't clobber each other). Poll for THIS pane's runtime file in a separate, normal (foreground) Bash call — and also handle the no-API-key case, which writes the machine-levelruntime.jsonand exits:D="${CLAUDE_PLUGIN_DATA}" R="$D/runtime/${CMUX_SURFACE_ID:-default}.json" # Wait for this pane's runtime file AND for the bridge to report the pairing state (`"pairing"` # settles from null to true/false once the daemon connects), or for the no-API-key notice. for i in $(seq 1 30); do { [ -f "$R" ] && grep -qE '"pairing": (true|false)' "$R"; } && break [ -f "$D/runtime.json" ] && break sleep 0.5 done if [ -f "$R" ]; then cat "$D/qr.txt" 2>/dev/null; echo; cat "$R"; elif [ -f "$D/runtime.json" ]; then cat "$D/runtime.json"; # may be a needsSetup notice else echo "NOT_RUNNING"; fiIf the output contains
"needsSetup": true(instead of asessionUrl), the daemon could not start because the OpenAI API key is missing (the background task already exited, so there's no ghost/tasksentry). Do not show a QR code. Instead, print a friendly, clearly-formatted message that:- says an OpenAI API key is required to start the voice remote;
- shows the exact
configPathfrom the JSON to open or create (use that value verbatim); - shows a tiny example to paste into that file:
{ "openaiApiKey": "sk-..." } - tells them to re-run
/voice-control:startafter saving.
The
messagefield inruntime.jsonalready contains suitable text — you may surface it as-is and/or reformat it nicely. Then stop.- If you see the QR block and a
sessionUrl, present both to the user (always show the link — it's how any device gets back to this session):- Reproduce the QR code character-for-character inside a fenced code block (
```) so it renders monospaced and stays scannable — do not summarize, crop, re-wrap, or alter any character. Show thesessionUrldirectly beneath it as a tap/copy fallback. - Then branch on the
"pairing"field in the runtime JSON:"pairing": true— no device is paired yet, so a pairing window is open: tell them to scan/open it on their phone within about 90 seconds to connect it, then tap to speak. Their words arrive here as normal messages and replies are spoken back. Note that the link is single-use (the first device to claim it pairs; a leaked link can't be used to join later)."pairing": false— a device is already paired: tell them their paired devices reconnect automatically (just open the link; an overnight sleep needs nothing). To connect a new device, run/voice-control:pairfor a fresh ~90-second window.- If
"pairing"isnull/absent (the bridge state couldn't be confirmed), just show the link and say paired devices reconnect, and to add a device run/voice-control:pair.
- Tell them the voice remote is now a visible background task: it shows up in
/tasks, and to end it they can run/voice-control:stopor stop that task from/tasks.
- Reproduce the QR code character-for-character inside a fenced code block (
- If you see
NOT_RUNNINGafter the poll, the background task didn't come up — check/tasksfor its output (it logs to stderr) and${CLAUDE_PLUGIN_DATA}/daemon.log. Confirm the plugin is loaded, then run/voice-control:startagain.
Then stop and return to normal — do not call any further tools. To end it, run /voice-control:stop.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

