
Init First Agent
Walk the operator through wiring the first NanoClaw agent to a DM channel, resolve the...
Install
npx skills add nanocoai/nanoclaw --skill init-first-agent -g -a claude-code -y- Repository
- nanocoai/nanoclaw31.1k
- Category
- AI and agents
- Updated
- 5d ago
- License
- MIT
- Context cost
- Mediumabout 2,386 tokens
- Runs scripts
- No, instructions only
What it does
Walk the operator through wiring the first NanoClaw agent to a DM channel, resolve the operator's channel identity, select or create the agent, and trigger a welcome DM via the normal delivery path. Use after channel credentials are configured and the service is running.
Init First Agent
Wire the first NanoClaw agent to a channel and verify end-to-end delivery by having the agent DM the operator. Everything the skill does is idempotent, rerunning is safe.
Prerequisites
- Service running. Check:
launchctl list | grep "$(. setup/lib/install-slug.sh && launchd_label)"(macOS) orsystemctl --user status "$(. setup/lib/install-slug.sh && systemd_unit)"(Linux). If stopped, tell the user to run/setupfirst. - Target channel installed. At least one
/add-<channel>skill has run, credentials are in.env, and the adapter is uncommented insrc/channels/index.ts. - Adapter connected. Tail
logs/nanoclaw.log, look for a recentchannel setup/adapter connectedline for the target channel.
1. Pick the channel
Read src/channels/index.ts to find enabled channels (uncommented imports). Cross-check .env for the relevant credentials.
AskUserQuestion: "Which channel should host the welcome DM?" with one option per enabled channel (Discord, Slack, Telegram, WhatsApp, Webex, Teams, Google Chat, Matrix, iMessage, Resend, …).
Record the choice as CHANNEL (lowercase, e.g. discord).
2. Ask for the operator's identity
Read the channel's own skill for its ## Channel Info > how-to-find-id section (e.g. .claude/skills/add-discord/SKILL.md, .claude/skills/add-telegram/SKILL.md). Show those instructions to the user in plain text.
Then ask in plain text (NOT AskUserQuestion, these are free-form):
- Your user id on this channel, e.g. a Discord user ID, Telegram user ID, Slack user ID. Record as
USER_HANDLE. - Your display name, human name, used to name the agent group (
dm-with-<normalized>) and as the welcome-message addressee. Record asDISPLAY_NAME. - Agent persona name, the assistant's display name. Default:
DISPLAY_NAME. Record asAGENT_NAME.
3. Resolve the DM platform id
This depends on whether the channel supports cold DM via adapter.openDM.

