- Add three-level isolation model (shared session, same agent, separate agent) with agent-shared session mode for cross-channel shared sessions - Create /manage-channels skill for wiring channels to agent groups - Refactor all 12 v2 channel skills: lean SKILL.md + VERIFY.md + REMOVE.md with structured Channel Info section for platform-specific metadata - Create /add-discord-v2 skill (was missing) - Add step 5a to setup SKILL.md invoking /manage-channels after channel install - Update setup/verify.ts to check all 12 channel token types - Add docs/v2-isolation-model.md explaining the isolation model - Update v2-checklist.md and v2-setup-wiring.md to reflect completed work Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.0 KiB
2.0 KiB
name, description
| name | description |
|---|---|
| add-resend-v2 | Add Resend (email) channel integration to NanoClaw v2 via Chat SDK. |
Add Resend Email Channel
Connect NanoClaw to email via Resend for async email conversations.
Pre-flight
Check if src/channels/resend.ts exists and the import is uncommented in src/channels/index.ts. If both are in place, skip to Credentials.
Install
npm install @resend/chat-sdk-adapter
Uncomment the Resend import in src/channels/index.ts:
import './resend.js';
Build:
npm run build
Credentials
- Go to resend.com and create an account.
- Add and verify your sending domain.
- Go to API Keys and create a new key.
- Set up a webhook:
- Go to Webhooks > Add webhook.
- URL:
https://your-domain/webhook/resend. - Events: select email.received.
- Copy the signing secret.
Configure environment
Add to .env:
RESEND_API_KEY=re_...
RESEND_FROM_ADDRESS=bot@yourdomain.com
RESEND_FROM_NAME=NanoClaw
RESEND_WEBHOOK_SECRET=your-webhook-secret
Sync to container: mkdir -p data/env && cp .env data/env/env
Next Steps
If you're in the middle of /setup, return to the setup flow now.
Otherwise, run /manage-channels to wire this channel to an agent group.
Channel Info
- type:
resend - terminology: Resend handles email. Each email thread (identified by subject/In-Reply-To headers) is a separate conversation. The "from address" is the bot's identity.
- how-to-find-id: The platform ID is the from email address (e.g.
bot@yourdomain.com). Each sender's email thread becomes its own conversation. - supports-threads: yes (via email threading headers -- replies to the same thread stay together)
- typical-use: Async communication -- email conversations with longer response expectations
- default-isolation: Same agent group if you want your agent to handle email alongside other channels. Separate agent group if email contains sensitive correspondence that shouldn't be accessible from other channels.