Skip to content

Guide · Agent skill

How to use the Add Signal Channel agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The add-signal skill is a packaged set of instructions and scripts that teaches a NanoClaw assistant to talk over Signal. It links NanoClaw to your existing Signal account as a secondary device, so you can message the assistant from your own chats and groups without creating a new number or bot account. This guide explains what the skill does, how to install it, how to trigger it, and what it needs before you start.

Add Signal Channelnanocoai/nanoclaw · MIT

Quick start

  1. 1Download and unzip the skill. Download the add-signal ZIP from this page and unzip it into ~/.claude/skills/ or into .claude/skills/ in your project. Alternatively, upload the ZIP under Settings → Capabilities → Skills in the Claude apps.
  2. 2Make sure you meet the requirements. Confirm you have signal-cli, Node.js with pnpm, the NanoClaw build and vitest setup, and a Signal account on a phone that can scan a QR code. The NanoClaw service must be running for the wiring steps.
  3. 3Ask the agent to add Signal. Request something like "Add Signal to my NanoClaw assistant" so the agent loads the skill and runs the apply steps.
  4. 4Link your account. On your phone, open Settings → Linked Devices → Link New Device and scan the QR code shown by the setup step. Complete it within about three minutes.
  5. 5Restart and send a test message. Let the skill restart the service, then message the Signal number from your personal Signal app so a messaging_groups row is created.
  6. 6Wire the chat and grant access. Find the messaging_groups id, wire it to an agent group with ncl or /manage-channels, then grant the users you want access.

What the add-signal skill does

Agent skills are folders of instructions and supporting files that an agent (here, Claude) can load when a task matches them. The add-signal skill adds Signal as a channel for the NanoClaw assistant. It installs signal-cli, a third-party command-line Signal client, copies a native Signal adapter into the NanoClaw source, and walks through linking the assistant to your account.

Once linked, the assistant sends and receives as the phone number that scans the link, much like adding a desktop app. Your assistant reaches you through Signal's Note to Self, and you can also wire Signal chats and groups to an agent and grant users access.

  • Installs signal-cli on macOS (Homebrew) or Linux (release binary); the source says neither needs Java
  • Copies the Signal adapter and its registration test into src/channels/
  • Adds the Signal import to src/channels/index.ts and installs the qrcode packages used for setup
  • Links your account by device-link QR code, with no new number registered
  • Documents how to wire DMs and groups to an agent and grant users access

Install the add-signal skill

Download the ZIP for the add-signal skill from this page. The skill is a folder containing SKILL.md, REMOVE.md and apply-fixtures.json, so you can install it in either of two ways.

For a personal install, unzip it into your user skills folder. For a single project, unzip it into that project's .claude/skills/ folder. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.

  • Personal: unzip into ~/.claude/skills/
  • Project only: unzip into .claude/skills/ inside your NanoClaw project
  • Claude apps: Settings → Capabilities → Skills, then upload the ZIP
~/.claude/skills/add-signal/

Trigger the skill with a natural request

You don't need a special command. Describe what you want in plain language and the agent will load the skill when the request matches its description, which is about adding Signal channel integration via signal-cli device-link.

Ask in ordinary terms. Requests such as the examples below are clear enough to match the skill.

  • "Add Signal to my NanoClaw assistant."
  • "Link my NanoClaw assistant to my Signal account."
  • "Wire my Signal group to an agent."
  • "Give a Signal user access to my assistant."

Work through the apply steps

The skill's SKILL.md lays out the apply process in order. The agent runs the steps and reports back. The steps install signal-cli if it is missing, copy the adapter, register it, install the qrcode and @types/qrcode packages at pinned versions, then run the build and one integration test.

The test checks that the channel registers. It fails if the registration import is removed or the channel barrel fails to load. The source notes that end-to-end delivery against a real Signal account is checked manually once the service runs.

  • Install signal-cli if it is not already on PATH
  • Copy src/channels/signal.ts and src/channels/signal-registration.test.ts from the channels branch
  • Run pnpm run build, then pnpm exec vitest run src/channels/signal-registration.test.ts
pnpm exec vitest run src/channels/signal-registration.test.ts

This is the only credential step. signal-cli opens a device-link handshake and prints a sgnl://linkdevice link, shown as a QR code. On the phone that already runs Signal, open Settings → Linked Devices → Link New Device, then scan the code or open the link on that phone. The linking URL expires after about three minutes, so re-run the step if it times out.

After linking, the setup step reports your phone number, which becomes both your owner handle and the address the wiring step uses. The skill stores it as SIGNAL_ACCOUNT, then restarts the service so it loads the adapter.

  • signal-cli must be on PATH or set in $SIGNAL_CLI_PATH before linking
  • Scan the QR from the phone that runs Signal, not from a new device
pnpm exec tsx setup/index.ts --step signal-auth

Wire chats, groups and users to an agent

After the service starts, send a message to the Signal number from your personal Signal app. The router creates a messaging_groups row for that chat. Query the database to find its id, then pass that id to /init-first-agent or /manage-channels to connect it to an agent group.

For groups, add the Signal number to the group from your phone, send a message, and wire the resulting row. Creating the wiring with ncl requires the host service to be running, since ncl connects to it over a Unix socket. New Signal users are silently dropped with a not_member reason until you grant them access, including the owner's own Signal identity.

  • DMs: find the messaging_groups id with the query below, then wire it
  • Groups: each group gets its own session under the default shared mode
  • Users: create the user, grant the owner role, and add them to the agent group with ncl
pnpm exec tsx scripts/q.ts data/v2.db "SELECT id, platform_id FROM messaging_groups WHERE channel_type='signal' ORDER BY created_at DESC LIMIT 5"

Safety notes: scripts and network access

This skill runs scripts and uses the network. It installs signal-cli, runs build and test commands, and performs the device-link with Signal's servers. The assistant will read and reply to messages sent to the account it is linked to, and it acts as that number.

Because the assistant uses your personal account, anyone who can message that account may reach the assistant once access is granted. Grant user access deliberately. To remove the integration later, REMOVE.md deletes the adapter and SIGNAL_* lines from .env, rebuilds and restarts, and can optionally unlink the device with signal-cli.

  • Runs scripts: yes. Uses network: yes
  • Linking the account gives the assistant the ability to send and receive as your number
  • Use REMOVE.md to take the integration out; it is safe to re-run

What people use it for

  • Message your personal NanoClaw assistant from your own Signal chats while away from your computer
  • Add the assistant to a small Signal group that you run, with each group getting its own session
  • Keep a single assistant reachable from your existing Signal number instead of a new bot account

Frequently asked questions

How do I install the add-signal skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use, or into .claude/skills/ inside a project. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.

What do I need before using add-signal?

You need signal-cli (installed via Homebrew on macOS or a release binary on Linux), Node.js with pnpm, the NanoClaw build and vitest setup, and a Signal account on a phone that can scan a device-link QR code. The NanoClaw service must be running for the wiring steps.

Does add-signal need a new phone number or bot account?

No. The skill links NanoClaw to your existing Signal account as a secondary device, so no new number is registered and no bot API is used.

Is the add-signal skill free?

The source lists the skill as MIT licensed. It does not state any price, so check the licence text on the repository for the terms.

Why are my Signal messages being ignored?

The source says new Signal users are silently dropped with a not_member reason until granted access. Create the user, grant a role and add them to the agent group with ncl, as described in the wiring section.

How does add-signal compare with other ways to connect Signal?

The source describes an alternative of registering a dedicated number instead of linking, but it does not compare features or performance in detail. Linking uses your existing number and acts as that number, so choose a dedicated number if you want the assistant kept separate from your personal account.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use add-signal if you run NanoClaw and want to reach your assistant from your existing Signal number, and you are comfortable with it acting as that account. Skip it if you cannot install signal-cli or run the Node.js and pnpm build steps, or if you would rather keep the assistant off your personal Signal account entirely.

Download the skill