# Add Dial Number

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

- Repository: https://github.com/nanocoai/nanoclaw (31069 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add nanocoai/nanoclaw --skill add-dial-number -g -a claude-code -y`
Codex: `npx skills add nanocoai/nanoclaw --skill add-dial-number -g -a codex -y`
Cursor: `npx skills add nanocoai/nanoclaw --skill add-dial-number -g -a cursor -y`
Gemini CLI: `npx skills add nanocoai/nanoclaw --skill add-dial-number -g -a gemini-cli -y`

## Description

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).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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:

```nc:run effect:check
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:

```nc:run effect:check
grep -q "eventLine" src/channels/dial.ts
```

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

```nc:run capture:dial_path validate:^/.+ effect:fetch
command -v dial
```

```nc:run capture:dial_ua validate:^nanoclaw/\S+$ effect:fetch
node -p "'nanoclaw/'+(require('./package.json').version||'unknown')" 2>/dev/null || echo nanoclaw/unknown
```

## Choose the number

List the account's current numbers:

```nc:run capture:dial_numbers effect:fetch
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.

The rest: https://github.com/nanocoai/nanoclaw/blob/HEAD/.claude/skills/add-dial-number/SKILL.md
