signal-cli

Pass

Send Signal messages and look up Signal recipients via the local signal-cli installation on macOS. Use when the user asks to message someone on Signal, send a Signal text/attachment, list Signal contacts, or resolve a recipient by name/nickname/phone number.

@openclaw
MIT2/22/2026
(0)
1.0k
5
10

Install Skill

Skills are third-party code from public GitHub repositories. SkillHub scans for known malicious patterns but cannot guarantee safety. Review the source code before installing.

Install globally (user-level):

npx skillhub install openclaw/skills/signal-cli

Install in current project:

npx skillhub install openclaw/skills/signal-cli --project

Suggested path: ~/.claude/skills/signal-cli/

SKILL.md Content

---
name: signal-cli
description: Send Signal messages and look up Signal recipients via the local signal-cli installation on macOS. Use when the user asks to message someone on Signal, send a Signal text/attachment, list Signal contacts, or resolve a recipient by name/nickname/phone number.
---

# signal-cli (Signal Messaging)

Use the local `signal-cli` binary.

## Preconditions

- `signal-cli` is installed and already linked/registered.
- For safety: confirm recipient + final message text with the user before sending.

## Quick patterns

### Discover available accounts

```bash
signal-cli listAccounts
```

### List contacts (JSON)

```bash
signal-cli -o json -u "+386..." listContacts
```

### Find a contact by name/nickname/number

Prefer the bundled script (handles fuzzy-ish matching + multiple matches):

```bash
python3 scripts/find_contact.py --account "+386..." --query "Name"
```

### Send a message

Prefer the bundled script (resolves contact names to numbers):

```bash
python3 scripts/send_message.py --account "+386..." --to "Name" --text "Heyo ..."
```

If `--to` is already a phone number in E.164 (e.g. `+386...`), it sends directly.

## Safety checklist (always)

- If resolving by name returns multiple matches, present options and ask the user which one.
- If message contains sensitive info, ask explicitly before sending via Signal.
- Default to `--service-environment live` (signal-cli default) and normal trust behavior.