← Back to Plugins
Channels

Replycast

DevvGwardo By DevvGwardo 👁 1 views ▲ 0 votes

OpenClaw extension that recasts a draft reply into channel-native variants for Slack, WhatsApp, Telegram, iMessage, and Discord

GitHub

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

Loading comments...