Channels
Replycast
OpenClaw extension that recasts a draft reply into channel-native variants for Slack, WhatsApp, Telegram, iMessage, and Discord
Install
npm install
npm
Configuration Example
{
"draft": "Thanks for the update. I can get this done by tomorrow afternoon.",
"targets": ["slack", "whatsapp", "imessage"],
"tone": "natural",
"length": "short",
"audience": "coworker",
"preserveFormatting": false,
"includeRationale": false
}
README
# ReplyCast
Rewrite one draft into platform-native replies for Slack, WhatsApp, Telegram, iMessage, and Discord.
An [OpenClaw](https://openclaw.world) extension that adapts your message's tone, formatting, and markup to match each platform — so it looks right everywhere.
## Platforms
| Platform | Char Limit | Markup | Style |
| --- | ---: | --- | --- |
| Slack | 4000 | `*bold*` `_italic_` `~strike~` (mrkdwn) | Direct, work-friendly |
| WhatsApp | 4000 | `*bold*` `_italic_` `~strike~` (no headings/links) | Warm, conversational |
| Telegram | 4000 | MarkdownV2 (escape special chars) | Concise, practical |
| iMessage | 4000 | Plain text only | Natural, human |
| Discord | 2000 | `**bold**` `*italic*` `~~strike~~` (Markdown) | Casual, community |
## Quick Start
```bash
cd extensions/channel-reply-polisher
npm install
npm test
```
## Usage
```json
{
"draft": "Thanks for the update. I can get this done by tomorrow afternoon.",
"targets": ["slack", "whatsapp", "imessage"],
"tone": "natural",
"length": "short",
"audience": "coworker",
"preserveFormatting": false,
"includeRationale": false
}
```
Returns a variant per platform:
```json
{
"variants": [
{
"channel": "slack",
"text": "Thanks for the update — I'll have this done by tomorrow afternoon.",
"toneApplied": "natural",
"lengthApplied": "short"
},
{
"channel": "imessage",
"text": "Thanks for the update. I can get this done by tomorrow afternoon.",
"toneApplied": "natural",
"lengthApplied": "short"
}
]
}
```
## Install in OpenClaw
Copy the extension into your OpenClaw `extensions/` directory:
```bash
cp -r extensions/channel-reply-polisher ~/openclaw/extensions/
cd ~/openclaw && pnpm install
```
OpenClaw auto-discovers it from the `openclaw.plugin.json` manifest.
> **Note:** The internal plugin ID and package name use `channel-reply-polisher` — "ReplyCast" is the user-facing name for the same extension.
## Configuration
```json
{
"defaults": { "tone": "natural", "length": "short" },
"channels": {
"slack": { "enabled": true },
"whatsapp": { "enabled": true },
"telegram": { "enabled": true },
"imessage": { "enabled": true },
"discord": { "enabled": true }
},
"limits": { "maxDraftChars": 8000, "maxTargets": 8 }
}
```
## Options
| Option | Values | Default |
| --- | --- | --- |
| `tone` | `natural` `warm` `professional` `direct` `casual` | `natural` |
| `length` | `short` `medium` `long` | `short` |
| `audience` | free text (max 120 chars) | — |
| `preserveFormatting` | `true` / `false` | `false` |
| `includeRationale` | `true` / `false` | `false` |
## How It Works
```
draft → validate → build prompt per channel → model call → structured JSON output
```
The host provides a model via the `RewriteModel` interface. ReplyCast handles prompt construction, per-platform markup rules, and output validation with Zod.
## License
MIT
channels
Comments
Sign in to leave a comment