Skills

Add Dial Number

Add another phone number to an existing Dial channel, a second (or third) public line...

Install

npx skills add nanocoai/nanoclaw --skill add-dial-number -g -a claude-code -y
Repository
nanocoai/nanoclaw31.1k
Category
AI and agents
Updated
5d ago
License
MIT
Context cost
Lightabout 1,430 tokens
Runs scripts
No, instructions only

What it does

Add another phone number to an existing Dial channel, a second (or third) public line for the agent, so one NanoClaw install answers SMS and AI voice calls on multiple numbers. Use when Dial is already installed and the operator wants an additional number (e.g. a personal line plus a support line). Requires the Dial channel to already be installed (see /add-dial).

Add another Dial number

One NanoClaw install can serve multiple Dial numbers at once. Each number is its own public, threaded line, its own messaging group (platform_id = the Dial number), each remote correspondent a thread inside it, and the agent replies from whichever number a person texted.

This skill is for adding a number to an already-installed Dial channel. Its mechanical steps use nc: directives so an agent and the deterministic skill engine perform the same validated, idempotent workflow.

Pre-flight

Confirm Dial is installed and registered. If this fails, run /add-dial first, then retry:

test -f src/channels/dial.ts && grep -q "import './dial.js';" src/channels/index.ts

Adding another number requires the multi-number adapter, which routes on the line each event arrived on (data.to). If this fails, run /update-skills to refresh the installed adapter, rebuild, and retry:

grep -q "eventLine" src/channels/dial.ts

Resolve the Dial CLI and the install's user-agent token once for every account request below:

command -v dial
node -p "'nanoclaw/'+(require('./package.json').version||'unknown')" 2>/dev/null || echo nanoclaw/unknown

Choose the number

List the account's current numbers:

DIAL_USER_AGENT={{dial_ua}} "{{dial_path}}" number list --json | jq -r 'if (.numbers|length)==0 then "none" else [.numbers[].number] | join(", ") end'

Tell the operator what is available. Buying a number spends account funds, so leave that explicit: if they need a new one, they should purchase it with dial number purchase --inbound-instruction "…" --explicit-programmatic-consent "<account-holder consent attestation>", then enter the returned number below.

Read the whole SKILL.md on GitHub

More in AI and agents