Slack Browser Automation
vercel-labs/agent-browser
Drives the Slack web app with the agent-browser CLI to check unread channels, search, read channel details and extract information, with screenshots as evidence.
Wires up an additional phone number onto an already-installed Dial channel, so one NanoClaw install answers SMS and AI voice calls on more than one line.
$ npx skills add nanocoai/nanoclaw --skill add-dial-number -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nanocoai/nanoclaw add-dial-number --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-dial-number .claude/skills/add-dial-number && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "add-dial-number" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dial-number into .claude/skills/add-dial-number/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dial-number", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dial-numberType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nanocoai/nanoclaw --skill add-dial-number -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nanocoai/nanoclaw add-dial-number --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/add-dial-number .agents/skills/add-dial-number && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-dial-number" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dial-number into .agents/skills/add-dial-number/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dial-number", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nanocoai/nanoclaw --skill add-dial-number -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nanocoai/nanoclaw add-dial-number --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/add-dial-number .cursor/skills/add-dial-number && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-dial-number" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dial-number into .cursor/skills/add-dial-number/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dial-number", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nanocoai/nanoclaw.git --path .claude/skills/add-dial-number--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nanocoai/nanoclaw --skill add-dial-number -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nanocoai/nanoclaw add-dial-number --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/add-dial-number .gemini/skills/add-dial-number && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-dial-number" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dial-number into .gemini/skills/add-dial-number/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dial-number", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nanocoai/nanoclaw add-dial-numberInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nanocoai/nanoclaw --skill add-dial-number -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/add-dial-number .github/skills/add-dial-number && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-dial-number" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dial-number into .github/skills/add-dial-number/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dial-number", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nanocoai/nanoclaw --skill add-dial-number -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nanocoai/nanoclaw add-dial-number --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/add-dial-number .opencode/skills/add-dial-number && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-dial-number" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dial-number into .opencode/skills/add-dial-number/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dial-number", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-dial-numberWires up an additional phone number onto an already-installed Dial channel, so one NanoClaw install answers SMS and AI voice calls on more than one line.
This skill adds a number to a Dial channel that is already installed, using a sequence of validated, idempotent steps meant to run identically whether a human or the deterministic skill engine performs them. Each number becomes its own public, threaded messaging group - its platform id is the Dial number itself - with every remote correspondent appearing as a thread inside it, and the agent replies from whichever number a person actually texted.
Before touching anything it confirms Dial is installed and that the multi-number adapter - which routes incoming events by which line they arrived on - is present, directing the operator to reinstall or update skills first if either check fails. It then lists the account's current numbers, tells the operator that purchasing a new number spends account funds, and asks for the chosen number in E.164 format, verifying afterward that the number actually belongs to the signed-in account before wiring it in.
Its steps are written as structured directives with capture, validation and effect annotations, meant to be executed the same way by a human operator or the skill engine rather than freeform instructions.
Read from SKILL.md and the folder at commit af699e7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are ncrun, ncprompt and ncoperator).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Add A Second Dial Phone Number loads about 1.5k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 445 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from nanocoai/nanoclaw at commit af699e7, republished under its MIT licence (© nanocoai). 445 words, ~1,534 tokens.
.claude/skills/add-dial-number/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.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.
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.tsAdding 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.tsResolve the Dial CLI and the install's user-agent token once for every account request below:
command -v dialnode -p "'nanoclaw/'+(require('./package.json').version||'unknown')" 2>/dev/null || echo nanoclaw/unknownList 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.
Dial numbers on this account: {{dial_numbers}}. Choose one that is not already wired to NanoClaw. If you need a new number, purchase it first; this may charge the Dial account.Which Dial number should be added? Enter its E.164 value, for example +14155550123.Verify that the chosen number belongs to the signed-in account:
DIAL_USER_AGENT={{dial_ua}} "{{dial_path}}" number list --json | jq -e --arg number '{{platform_id}}' '.numbers[] | select(.number==$number)' >/dev/nullList the agent groups:
ncl groups list --json | jq -r 'if (.data|length)==0 then "no agent groups yet" else [.data[] | "\(.id) (\(.name))"] | join(", ") end'Agent groups on this install: {{agent_groups}}.Which agent group should answer this number? Enter its ag-… id.Reject a typo before creating anything:
ncl groups list --json | jq -e --arg id '{{agent_group_id}}' '.data[] | select(.id==$id)' >/dev/nullChoose a safe display name and who may start conversations on this line.
strict admits only known users; public lets anyone who knows the number reach
the agent. The choice belongs to this number and does not change existing lines:
What should this line be called? Use letters, numbers, spaces, dots, dashes, or underscores.Who may text this line: strict or public?Create the threaded Dial messaging group. This is idempotent on the number, so a re-run returns an existing row without resetting later policy changes:
ncl messaging-groups create --channel-type dial --platform-id {{platform_id}} --is-group 1 --name "{{line_name}}" --unknown-sender-policy {{inbound_access}}Wire it to the selected agent group. The adapter's declaration supplies the thread and engagement defaults:
ncl wirings create --channel-type dial --platform-id {{platform_id}} --agent-group-id {{agent_group_id}}Restart the service so the new line is picked up consistently:
bash setup/lib/restart.shVerify the exact messaging-group and wiring pair exists:
mg=$(ncl messaging-groups list --json | jq -er --arg number '{{platform_id}}' '.data[] | select(.channel_type=="dial" and .platform_id==$number) | .id') && ncl wirings list --json | jq -e --arg mg "$mg" --arg ag '{{agent_group_id}}' '.data[] | select(.messaging_group_id==$mg and .agent_group_id==$ag)' >/dev/nullThe new number now reaches the selected agent as a separate threaded line, and replies leave from the number that received the message. Existing lines are unchanged.
/update-skills, rebuild, and retry.dial listen daemon covers the
whole account; confirm dial doctor --json reports listen.running: true and
dial local-target list --json contains NanoClaw's command target.ncl errors → the host service must be running; ncl connects over a
Unix socket.© nanocoai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .claude/skills/add-dial-number of nanocoai/nanoclaw.
Open the folder on GitHubat commit af699e7
Add A Second Dial Phone Number next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Add A Second Dial Phone Number this skillnanocoai/nanoclaw | 31k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Slack Browser Automationvercel-labs/agent-browser | 44k | 1 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Feishu Docopenclaw/openclaw | 392k | — | ~516 | Automated safety check: Pass | MIT | |
| She Love Me863401402/she-love-me | 931 | 1 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Claude To Imop7418/Claude-to-IM-skill | 2.9k | — | ~3.4k | Automated safety check: Notes | MIT | |
| Last30days CnJesseovo/last30days-skill-cn | 1.9k | — | ~2.4k | Automated safety check: Notes | MIT |
vercel-labs/agent-browser
Drives the Slack web app with the agent-browser CLI to check unread channels, search, read channel details and extract information, with screenshots as evidence.
openclaw/openclaw
Feishu document read/write workflows. An agent skill from openclaw/openclaw.
863401402/she-love-me
Acquire, import, and analyze WeChat or QQ chat histories, including installing supported exporters, guiding required login or contact selection, converting exports, assessing relationship dynamics…
op7418/Claude-to-IM-skill
Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.
Jesseovo/last30days-skill-cn
Research what Chinese internet users actually said in the last 30 days across Weibo, Xiaohongshu (RED), Bilibili, Zhihu, Douyin, WeChat public accounts, Baidu and Toutiao: engagement-weighted…
supreme-gg-gg/instagram-cli
How to use Instagram CLI to interact with Instagram from the command line on behalf of a user.
nanocoai/nanoclaw
Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.
nanocoai/nanoclaw
Installs or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.
nanocoai/nanoclaw
Drives a web browser from the shell with the agent-browser CLI: open pages, read an element snapshot, click and fill by reference, grab text and screenshots.
nanocoai/nanoclaw
Installs the `dial` CLI and a credential in NanoClaw agent containers so chosen agents can send SMS, place AI voice calls and receive verification codes.
nanocoai/nanoclaw
Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.
nanocoai/nanoclaw
Connects NanoClaw to iMessage through one channel with either a local Mac backend or a hosted backend via photon.codes, copying in the adapter and installing its package.
Categories
Wires up an additional phone number onto an already-installed Dial channel, so one NanoClaw install answers SMS and AI voice calls on more than one line. This skill adds a number to a Dial channel that is already installed, using a sequence of validated, idempotent steps meant to run identically whether a human or the deterministic skill engine performs them. Each number becomes its own public, threaded messaging group - its platform id is the Dial number itself - with every remote correspondent appearing as a thread inside it, and the agent replies from whichever number a person actually texted.
Add A Second Dial Phone Number fits situations like: adding a second phone line to an existing Dial-based agent install; giving a NanoClaw install a separate support line alongside a personal one; wiring a newly purchased number into an already-installed Dial channel.
Run `npx skills add nanocoai/nanoclaw --skill add-dial-number -a claude-code`. Or copy the skill folder (.claude/skills/add-dial-number in nanocoai/nanoclaw) into .claude/skills/add-dial-number in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nanocoai/nanoclaw --skill add-dial-number -a codex`. Or copy the skill folder (.claude/skills/add-dial-number in nanocoai/nanoclaw) into .agents/skills/add-dial-number in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nanocoai/nanoclaw --skill add-dial-number -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-dial-number, .gemini/skills/add-dial-number, .github/skills/add-dial-number and .opencode/skills/add-dial-number in your project.
SKILL.md names no scripts, command-line tools or credentials: Add A Second Dial Phone Number is instructions for the agent only. Our summary lists: Dial channel already installed; The Dial CLI.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Add A Second Dial Phone Number is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Add A Second Dial Phone Number: Slack Browser Automation (vercel-labs/agent-browser, 44k stars), Feishu Doc (openclaw/openclaw, 392k stars), She Love Me (863401402/she-love-me, 931 stars) and Claude To Im (op7418/Claude-to-IM-skill, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nanocoai (a GitHub organization) maintains it in nanocoai/nanoclaw, which has 30,906 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on October 9, 2026.
Source: nanocoai/nanoclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.