Paired — Bluetooth Phone Bridge

WarnAudited by ClawScan on May 10, 2026.

Overview

This skill is transparent about bridging to your phone, but it grants high-impact phone control and has some unclear or inconsistent safeguards that should be reviewed before use.

Install only on a Linux host and phone you own. Before enabling it, review the trusted-numbers file, avoid storing your phone PIN unless needed, do not enable background systemd hooks or SMS auto-reply casually, and confirm whether Gemini/Telegram integrations may receive message content. Prefer the paired-* wrappers over low-level bt-* tools for high-impact actions.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If this path works on the phone, an agent or command could attempt to send SMS messages without the same visible safeguards described for the higher-level wrappers.

Why it was flagged

This exposed SMS command accepts arbitrary destination and message text and has a silent-send mode. The provided file does not show the trusted-number allowlist or explicit confirmation check that SKILL.md says should gate all SMS sends.

Skill content
ap.add_argument("number"); ap.add_argument("text"); ap.add_argument("--silent", action="store_true" ...); if args.silent: r = bt_adb.sms_send_silent(args.number, args.text, serial=args.serial)
Recommendation

Use the high-level paired-sms-send wrapper by default, add an explicit trusted-number or --confirm gate to bt-adb-sms-send as well, and avoid enabling or using --silent unless the user has clearly approved that exact send.

What this means

SMS content or reply context may be sent to an external AI provider when auto-reply is enabled, even though the summary does not clearly list that network destination.

Why it was flagged

The artifact implies an external Gemini provider flow for SMS LLM auto-reply, but the declared external services and network-access summary only call out Telegram/Bluetooth. That leaves the SMS-to-provider data boundary under-described.

Skill content
~/.config/paired/gemini-keys.conf ... Gemini API key(s) for paired-respond — OPTIONAL, only if SMS LLM auto-reply is enabled ... external_services: - telegram ... network_access: bluetooth-LAN-only-plus-user-own-telegram
Recommendation

Clearly list Gemini as an external service, document what SMS/contact data is sent, require explicit opt-in for auto-reply, and provide a simple way to disable it.

What this means

Installing and configuring the skill can give the agent access to private messages, contacts, clipboard content, phone controls, and possibly the ability to unlock the phone.

Why it was flagged

The skill openly declares sensitive phone data access and optional storage of a phone unlock PIN. This is purpose-aligned for a phone bridge, but it crosses an important permission boundary.

Skill content
capabilities: ... reads-sms ... reads-contacts ... reads-clipboard ... controls-mobile-device-via-adb ... unlocks-mobile-device-with-stored-pin ... ~/.config/paired/pin ... phone unlock PIN ... OPTIONAL, only if --auto-unlock used
Recommendation

Only use this on your own trusted host and phone, keep the PIN file disabled unless necessary, enforce 0600 permissions, and review trusted numbers regularly.

What this means

If enabled, parts of the skill can continue running in the background and react to SMS/call or command-hook events outside a single interactive request.

Why it was flagged

The skill documents optional user-level systemd services that keep listening for phone events and command dispatch after setup.

Skill content
Systemd unit files ... for persistent listeners (SMS push, call watch, command hook) ... systemctl --user enable --now paired-inbox-hook.service
Recommendation

Enable only the services you need, verify them with systemctl --user, protect the HMAC key, and disable the services when you no longer want background monitoring.

What this means

After setup, many Bluetooth/ADB/phone-control commands are easy for the user or agent to invoke from the shell.

Why it was flagged

The installation instructions place many included scripts directly into the user's command path. This is expected for a local tool skill, but it increases the importance of trusting and reviewing the package.

Skill content
for f in ~/.openclaw/workspace/skills/paired/bin/*.py; do ln -sf "$f" ~/bin/"$(basename "$f" .py)"; done ... chmod +x ~/.openclaw/workspace/skills/paired/bin/*.py
Recommendation

Review the installed scripts before symlinking them into ~/bin, keep the skill updated from a trusted source, and remove the symlinks if you uninstall or stop using it.