
Add Resend
Add Resend (email) channel integration via Chat SDK.
Install
npx skills add nanocoai/nanoclaw --skill add-resend -g -a claude-code -y- Repository
- nanocoai/nanoclaw31.1k
- Category
- Engineering
- Updated
- 5d ago
- License
- MIT
- Context cost
- Mediumabout 2,023 tokens
- Runs scripts
- No, instructions only
What it does
Add Resend (email) channel integration via Chat SDK.
Add Resend Email Channel
Connect NanoClaw to email via Resend for async email conversations. NanoClaw
doesn't ship channels in trunk, this skill copies the Resend adapter in from the
channels branch.
The mechanical steps under Apply carry nc: directive fences: an agent reads
the prose and applies them, and a parser can apply them deterministically from
the same document. Every directive is idempotent, so the whole skill is safe to
re-run; anything a parser can't apply falls back to the prose beside it.
Apply
1. Copy the adapter
Fetch the channels branch and copy the Resend adapter into src/channels/
(overwrite, the branch is canonical):
src/channels/resend.ts
src/channels/resend-registration.test.ts
2. Register the adapter
Append the self-registration import to the channel barrel (skipped if the line is already present). This one line is the skill's only reach-in into core:
import './resend.js';
3. Install the adapter package
Pinned to an exact version, the supply-chain policy rejects ranges and latest:
@resend/chat-sdk-adapter@0.3.0
4. Build and validate
Build guards the typed createChatSdkBridge(...) core call and proves the
dependency is installed (the adapter imports @resend/chat-sdk-adapter; if it
isn't installed the barrel throws). End-to-end email delivery against a real
domain is verified manually once the service runs.
pnpm run build
pnpm exec vitest run src/channels/resend-registration.test.ts
resend-registration.test.ts imports the real channel barrel and asserts the
registry contains resend. It goes red if the import line is deleted or drifts,
if the barrel fails to evaluate, or if @resend/chat-sdk-adapter isn't installed
(the import throws), so it also covers the dependency from step 3.
