Wearables Comms logo

Wearables Comms

Community
win4r
wearables_comms

Required for every call or text-message request originating on a wearable: resolve named recipients from synced device contacts and invoke the originating wearable, not a paired phone.

Overview

Publisherwin4r
RepositoryMuseAI-Skills
Skill namewearables_comms
Stars
382
Forks
116
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by win4r on GitHub. Read the source before you install it.

Installation

Install the Wearables Comms AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/win4r/MuseAI-Skills/tree/main/opt/hatch/skills/wearables-comms
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/win4r/MuseAI-Skills.git /tmp/MuseAI-Skills
mkdir -p .claude/skills
cp -r /tmp/MuseAI-Skills/opt/hatch/skills/wearables-comms .claude/skills/wearables_comms
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Wearables Comms in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Wearables Comms on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Wearables Comms is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Wearables Calls and Messages

Purpose

Handle call and text-message requests that originate on a wearable. Resolve a named recipient from that wearable's synced contacts, then invoke the originating wearable's native communications command. Do not silently hand the action to a paired phone.

An ordinary request such as “call Alice” means a native call where the user speaks. This workflow does not cover a request for the assistant to conduct the conversation itself.

Select the device

  1. Call device.list and select the one device marked is_request_origin: true.
  2. Call device.describe for that device. Its live command names and argument schemas are authoritative.
  3. Keep that same device id for contact lookup and the final action. Never choose a paired phone merely because it also advertises a compatible command. Only an explicit request to use another device overrides this default; resolve and describe that device before proceeding.
  4. If no request-origin device is identifiable, or the selected device does not advertise the requested capability, explain that the action is unavailable rather than silently switching devices.

Resolve a recipient

Skip contact lookup when the user supplied a complete phone number. Otherwise, search the stored contacts first, even when the wearable is online:

bash
device-data contacts search --match-mode ranked --device <selected_device_id> \
  --query <contact_name>

Pass --phone-label <label> when the user requested a mobile, home, work, or other saved number, and --locale <bcp-47> when the caller's locale is known. Ranked results are candidates, not authorization to act. Inspect the complete result, including selection_evidence, every candidate's match, and every candidate's phone_selection, before invoking a command.

  • Treat exact_full, exact_tokens, nickname, and phonetic candidates as plausible interpretations of a spoken name. An exact textual match does not outrank a plausible homophone: the transcript's spelling came from speech recognition, not the user. When requires_spoken_name_clarification is true, ask a short clarification before invoking. Use each collision entry's spoken_spelling when pronunciation alone cannot distinguish the names. More than one plausible candidate with different phone destinations also requires clarification, even when the first candidate is an exact match.
  • Resolve a phone line separately after resolving the person. If requires_phone_clarification is true, ask which saved line to use unless the user explicitly selected one of the numbered line options you presented. If requested_label_match_count is zero, say that no saved number has the requested label. If distinct_usable_phone_count is zero, ask the user for a number. Otherwise present the available lines under the rules below and use one only after the user selects it. When only one line remains, an explicit confirmation selects it. Never choose the first or preferred-order number. Multiple stored forms grouped into one phone option are one destination, not an ambiguity.
  • Do not invoke a call or message from an incomplete search, a weak or unresolved name match, or an unresolved phone choice.

Ask for clarification

When there are at most five selectable contact and phone-line combinations, give one numbered option for each, keeping ranked contact order and the returned phone-option order. Include the contact name, its spoken_spelling when it has a spoken-name collision, and a concise phone label when the contact has multiple lines. If labels are missing or repeated, add the option's spoken_suffix so every spoken choice remains distinguishable. Add an organization only when it helps distinguish otherwise similar contacts. Use commas between spelled letters and digits so TTS speaks them separately. For example:

“1, Sean, spelled S, E, A, N, mobile. 2, Shawn, spelled S, H, A, W, N, work. Which one should I call?”

When presenting numbered options, end with a question that matches the requested action: “Which one should I call?” for a call or “Which one should I message?” for a message. Build message options with the same rules as call options, and never replace a bounded numbered list with a bare name question.

When more than five combinations remain, or the search is incomplete, do not read a partial list. Ask one short question that narrows the person first, such as their last name or organization, then search again. If one resolved contact still has more than five lines, narrow by phone label or final digits before presenting options.

Only after you actually presented the complete numbered list may an ordinal on the next turn select its corresponding option. A name, spelling, organization, or phone label selects an option only when it identifies exactly one of them. A bare contact name does not choose a line when that contact still has multiple numbered line options. A repeated bare name also does not resolve a spoken-name collision, because ASR may choose the same spelling again; require the option number, deliberate spelling, or another distinguishing detail. Do not reorder the presented options while interpreting the answer.

Only when the stored search cannot resolve the recipient, fall back to the selected device's live contacts.search command if device.describe advertises it. Do not run the live search first or silently move the lookup to another device.

Place a call

Select the native call command advertised by the selected wearable. Current clients publish wearables.comms.provider.call; do not assume that name or its arguments without checking device.describe. Call device.invoke with the selected device id and the resolved phone number in the exact advertised schema.

Send a message

Require both a resolved recipient and the message text. Select the native SMS command advertised by the selected wearable. Current clients publish wearables.comms.native.sms; use its exact schema from device.describe, then call device.invoke on that device.

Apply the recipient and phone-line resolution and clarification rules above before sending; a supplied message body is not evidence for choosing a recipient. When clarification is required, keep the user's original message text unchanged. Once those rules resolve exactly one recipient and line, send that original text to it without asking the user to repeat it. Do not send to any candidate before then.

Do not substitute a draft or send command from a paired phone. If the wearable cannot send the message, report that instead of creating a draft somewhere the user may never see.

Report the result

  • Report success only when device.invoke reports success.
  • Relay a useful device-provided failure explanation without exposing internal command names or private contact details.
  • Do not blindly retry a timed-out, interrupted, or uncertain call or send; the action may already have happened.

Frequently asked questions

What does the Wearables Comms AI skill do?

Required for every call or text-message request originating on a wearable: resolve named recipients from synced device contacts and invoke the originating wearable, not a paired phone.

Why use Wearables Comms on TypingMind?

Because you install it once and use it with any model. Wearables Comms is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Wearables Comms in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/win4r/MuseAI-Skills/tree/main/opt/hatch/skills/wearables-comms. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Wearables Comms?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Wearables Comms?

As many as you like. As long as a model supports skills, you can use Wearables Comms with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Wearables Comms AI skill free?

It is published on GitHub by win4r. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇