Paired — Bluetooth Phone Bridge
Analysis
This skill is mostly transparent about powerful phone access, but it is suspicious because a shipped ADB SMS sender can bypass the stated trust/confirmation safety and Gemini network use is under-described.
Findings (10)
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.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
`~/.config/paired/inbox.key` ... `HMAC secret for paired-inbox-hook command dispatch` ... `telegram (optional, for command vocabulary and incoming-call/SMS alerts)`
The skill can receive command-like input through inbound hooks/Telegram. The HMAC design is a mitigating control, but these channels can redirect the agent's work if exposed or misconfigured.
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) else: r = bt_adb.sms_send(args.number, args.text, serial=args.serial)This low-level SMS tool accepts arbitrary destination/text and a silent-send path, then calls ADB SMS send functions directly. No trusted-numbers allowlist or explicit `--confirm` gate is shown in this file, contradicting the stated SMS safety model.
Source: unknown; Homepage: none; No install spec — this is an instruction-only skill.
The package has a provenance gap and relies on user-run installation instructions, although the provided artifacts do not show remote download scripts or hidden install sources.
bt_adb.push(tmp, "/sdcard/Download/.paired-probe.txt"); bt_adb.shell("rm /sdcard/Download/.paired-probe.txt"); bt_adb.shell("dumpsys notification | head -1", timeout=5)The skill runs ADB shell/file operations on the connected phone. This is central to an ADB phone bridge and is not hidden, but it is still code execution against a real device.
Optional: enable the inbox hook (HMAC-signed command dispatcher) ... `systemctl --user enable --now paired-inbox-hook.service`
A persistent inbox command dispatcher can propagate inbound events into phone actions across sessions. HMAC signing is a mitigation, but the service extends impact beyond one interactive request.
`network_access: bluetooth-LAN-only-plus-user-own-telegram`; `external_services: telegram (optional...)`; `gemini-keys.conf` ... `Gemini API key(s) for paired-respond`
The network/privacy framing can lead users to believe only Bluetooth/LAN/Telegram are involved, while Gemini is also supported for SMS LLM auto-reply.
`persistent-systemd-services` ... `Optional: enable systemd user services. Strip the .txt suffix on copy.`
The skill supports background services that continue after the immediate chat task. The persistence is disclosed and optional, with no evidence of self-propagation.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
`controls-mobile-device-via-adb`, `unlocks-mobile-device-with-stored-pin`, `executes-sudo-commands`; `~/.config/paired/pin` purpose: `phone unlock PIN (mode 0600 enforced) — OPTIONAL`
The skill requests sensitive authority over the user's phone and host. These permissions are disclosed and mostly purpose-aligned, but they cross important account/device boundaries.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
Configuration lives in `~/.config/paired/paired.conf` (phone MAC, adapter, trusted numbers list). Always read the config before acting; never hardcode phone identifiers.
Persistent configuration and allowlists determine which phone and numbers the agent will trust across tasks. If these files are changed, future actions can be redirected.
`network_access: bluetooth-LAN-only-plus-user-own-telegram` ... `~/.config/paired/gemini-keys.conf` purpose: `Gemini API key(s) for paired-respond — OPTIONAL, only if SMS LLM auto-reply is enabled`
The safety network boundary lists Bluetooth/LAN/Telegram, but the same artifact declares Gemini API keys for SMS LLM auto-reply. That external provider/data boundary is not clearly listed under external services or network access.
