npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@luv20100918/channel-talk

v1.0.9

Published

Channel Talk (채널톡) integration for OpenClaw - Connect your AI assistant to Channel Talk team chats and customer conversations

Readme

OpenClaw Channel Talk Extension

npm version License: MIT

Channel Talk (채널톡) integration for OpenClaw - Connect your AI assistant to Channel Talk team chats and customer conversations.

Features

  • ✅ Receive and respond to Channel Talk messages
  • ✅ Support for both team chat (group) and customer chat (userChat)
  • ✅ Keyword-based bot triggering in group chats
  • ✅ Built-in pairing system for access control
  • ✅ Function (Command) endpoint support
  • ✅ Webhook endpoint support
  • ✅ Full TypeScript support

Installation

cd ~/.openclaw/extensions
git clone https://github.com/luv20100918/openclaw-channel-talk channel-talk
cd channel-talk
npm install

Or install via npm:

npm install @luv20100918/channel-talk

Configuration

1. Get Channel Talk API Credentials

  1. Go to Channel Talk Settings → API
  2. Create a new API Key
  3. Copy your Access Key and Access Secret

2. Configure OpenClaw

Add to ~/.openclaw/openclaw.json:

{
  "channels": {
    "channel-talk": {
      "enabled": true,
      "accounts": {
        "default": {
          "enabled": true,
          "accessKey": "YOUR_ACCESS_KEY",
          "accessSecret": "YOUR_ACCESS_SECRET",
          "botName": "Your Bot Name",
          "dmPolicy": "pairing",
          "allowFrom": [],
          "triggerKeywords": ["봇", "AI"]
        }
      }
    }
  }
}

Or use the CLI:

openclaw config set channels.channel-talk.enabled true
openclaw config set channels.channel-talk.accounts.default.accessKey "YOUR_KEY"
openclaw config set channels.channel-talk.accounts.default.accessSecret "YOUR_SECRET"
openclaw config set channels.channel-talk.accounts.default.botName "Your Bot Name"

3. Set up Channel Talk Webhooks

Webhook Endpoint (for messages)

  • URL: http://YOUR_SERVER:18789/webhooks/channel-talk/default
  • Method: POST

⚠️ Note: The Channel Talk Webhook method may not work reliably in many cases. It appears to be primarily designed for customer support scenarios. For team internal chat bot usage, we recommend using the Function (Command) method below.

Function Endpoint (for commands) - Recommended

  1. Go to Channel Talk → App Store → Custom Function
  2. Create a new function
  3. Function URL: http://YOUR_SERVER:18789/functions/channel-talk/default
  4. Method: PUT

For production: Use Tailscale or ngrok to expose your local OpenClaw gateway securely.

Usage

Pairing System

The extension uses OpenClaw's built-in pairing system for access control:

  1. User sends a message → Receives pairing code
  2. Bot owner approves: openclaw pairing approve channel-talk <code>
  3. User can now interact with the bot
# List pending pairing requests
openclaw pairing list channel-talk

# Approve a request
openclaw pairing approve channel-talk ABC123XY

Group Chat (Team Chat)

By default, the bot only responds in group chats when triggered by keywords:

{
  "triggerKeywords": ["봇", "AI", "@assistant"]
}

To respond to all messages in specific groups:

{
  "groupAllowFrom": ["540639", "123456"]
}

Sending Messages

From OpenClaw CLI or skills:

# Send to group chat
openclaw message channel-talk:@GroupName "Hello team!"
openclaw message channel-talk:540639 "Hello team!"

# Send to user chat
openclaw message channel-talk:userChatId "Hello!"

Configuration Options

| Option | Type | Default | Description | |--------|------|---------|-------------| | enabled | boolean | false | Enable/disable the extension | | accessKey | string | - | Channel Talk API access key | | accessSecret | string | - | Channel Talk API access secret | | botName | string | - | Bot display name in Channel Talk | | dmPolicy | string | "pairing" | Access control: "open", "pairing", "allowlist", "disabled" | | allowFrom | string[] | [] | List of allowed user IDs (for allowlist mode) | | groupAllowFrom | string[] | [] | Group IDs where bot can respond to all messages | | triggerKeywords | string[] | [botName] | Keywords that trigger bot in group chats |

Development

# Clone the repository
git clone https://github.com/luv20100918/openclaw-channel-talk
cd openclaw-channel-talk

# Install dependencies
npm install

# The extension will be automatically loaded by OpenClaw
# Restart OpenClaw gateway to reload changes
pkill openclaw-gateway

Architecture

channel-talk/
├── src/
│   ├── api.ts          # Channel Talk REST API client
│   ├── channel.ts      # OpenClaw ChannelPlugin implementation
│   ├── webhook.ts      # Webhook handler for incoming messages
│   ├── function.ts     # Function/Command handler
│   ├── runtime.ts      # Runtime context management
│   └── pairing.ts      # (deprecated, using OpenClaw SDK)
├── index.ts            # Entry point
└── package.json

Troubleshooting

Messages not received

  1. Check webhook URL is accessible from Channel Talk servers
  2. Verify API credentials are correct
  3. Check OpenClaw gateway logs: tail -f /tmp/openclaw/openclaw-*.log

Pairing not working

  1. Ensure dmPolicy is set to "pairing"
  2. Check pairing requests: openclaw pairing list channel-talk
  3. Approve requests: openclaw pairing approve channel-talk <code>

Bot not responding in group chat

  1. Check triggerKeywords configuration
  2. Verify user is approved (pairing system still applies to group chats)
  3. Check if group ID is in groupAllowFrom (if specified)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License - see LICENSE file for details

Links

Author

Created by luv20100918


Made with 🦞 for OpenClaw