{"id":48849,"library":"openclaw-channel-dmwork","title":"openclaw-channel-dmwork","description":"DMWork channel plugin for OpenClaw v0.6.4 (stable, weekly releases). This plugin connects OpenClaw bots to DMWork servers via DMWORK WebSocket for real-time messaging. It supports multi-account configuration, auto-reconnection, streaming responses, typing indicators, and group chat history. Ships TypeScript types. Requires Node.js >= 18 and OpenClaw >=2026.5.4. Key differentiators: seamless integration with OpenClaw's plugin system, one-command install via npx, CLI tools for health checks and configuration, and automatic WebSocket URL detection.","status":"active","version":"0.6.4","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","typescript"],"install":[{"cmd":"npm install openclaw-channel-dmwork","lang":"bash","label":"npm"},{"cmd":"yarn add openclaw-channel-dmwork","lang":"bash","label":"yarn"},{"cmd":"pnpm add openclaw-channel-dmwork","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; provides the plugin API and runtime environment.","package":"openclaw","optional":false}],"imports":[{"note":"Package ships as ESM only (type: module). CommonJS require will error.","wrong":"const plugin = require('openclaw-channel-dmwork')","symbol":"default","correct":"import plugin from 'openclaw-channel-dmwork'"},{"note":"ChannelPlugin is exported by OpenClaw, not this plugin.","wrong":"import { ChannelPlugin } from 'openclaw-channel-dmwork'","symbol":"ChannelPlugin","correct":"import { ChannelPlugin } from 'openclaw'"},{"note":"Plugin object exported as default; register method is on that object.","wrong":"import { register } from 'openclaw-channel-dmwork'","symbol":"register","correct":"import plugin from 'openclaw-channel-dmwork'"}],"quickstart":{"code":"import plugin from 'openclaw-channel-dmwork';\nimport { createAPI } from 'openclaw';\n\nconst api = createAPI();\nplugin.register(api);\napi.runtime.log('Plugin registered');\n\n// Example: start a bot account manually\nimport { startBot } from 'openclaw-channel-dmwork';\nawait startBot({\n  botToken: process.env.DMWORK_BOT_TOKEN ?? '',\n  apiUrl: process.env.DMWORK_API_URL ?? 'http://localhost:8090',\n});","lang":"typescript","description":"Shows how to import and register the plugin with OpenClaw API, and manually start a bot account using environment variables."},"warnings":[{"fix":"Use npx -y openclaw-channel-dmwork install with --flags.","message":"v0.5.0 changed install command from npx openclaw-channel-dmwork install to npx -y openclaw-channel-dmwork install. The old command no longer works.","severity":"breaking","affected_versions":"<0.5.0"},{"fix":"Ensure token obtained from BotFather in DMWork (send /newbot).","message":"Bot tokens must start with bf_ prefix. Tokens from other sources will be rejected silently.","severity":"gotcha","affected_versions":">=0.0.1"},{"fix":"Simply run npx -y openclaw-channel-dmwork install without flags.","message":"The --interactive flag for install is deprecated. Install without arguments defaults to prompting, so --interactive is no longer needed.","severity":"deprecated","affected_versions":">=0.4.0"},{"fix":"Restart the OpenClaw gateway after modifying account configurations.","message":"Configuration changes under channels.dmwork.accounts require gateway restart to take effect; hot-reload only works for top-level changes.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Move apiUrl under each account object in channels.dmwork.accounts.","message":"In v0.3.0, the configuration format changed: apiUrl moved from channel-level to account-level. Old configs cause validation errors.","severity":"breaking","affected_versions":"<0.3.0"},{"fix":"Set historyLimit to a reasonable value (e.g., 20).","message":"Group chat history limit default is 20; setting it too high may cause performance issues on large groups.","severity":"gotcha","affected_versions":">=0.2.0"}],"env_vars":null,"search_vec":"'18':52 '2026.5.4':55 'account':34 'auto':37 'auto-reconnect':36 'automat':79 'bot':18 'channel':3,6 'chat':45 'check':75 'cli':71 'command':67 'configur':35,77 'connect':16 'detect':82 'differenti':57 'dmwork':4,5,20,23 'group':44 'health':74 'histori':46 'indic':42 'instal':68 'integr':59 'javascript':83 'key':56 'messag':29 'multi':33 'multi-account':32 'node.js':51 'npx':70 'one':66 'one-command':65 'openclaw':2,9,17,54,61 'openclaw-channel-dmwork':1 'plugin':7,15,63 'real':27 'real-tim':26 'reconnect':38 'releas':13 'requir':50 'respons':40 'seamless':58 'server':21 'ship':47 'stabl':11 'stream':39 'support':31 'system':64 'time':28 'tool':72 'type':41,49 'typescript':48,84 'url':81 'v0.6.4':10 'via':22,69 'websocket':24,80 'week':12","created_at":"2026-06-07T16:58:47.182500+00:00","updated_at":"2026-06-07T16:58:47.182500+00:00","problems":[{"fix":"Ensure package is installed (npm i openclaw-channel-dmwork) and that your project uses ESM (type: module in package.json).","cause":"Package not installed or running in a non-ESM context.","error":"Error: Cannot find module 'openclaw-channel-dmwork'"},{"fix":"Use: import plugin from 'openclaw-channel-dmwork'; then plugin.register(api);","cause":"Using named import { register } instead of default import.","error":"Error: Plugin register is not a function"},{"fix":"Create a bot via /newbot in DMWork BotFather and use the token starting with 'bf_'.","cause":"Provided token from a source other than DMWork BotFather.","error":"Error: Bot token must be a string starting with 'bf_'"},{"fix":"Add apiUrl under each account in channels.dmwork.accounts (e.g., \"my_bot\": {\"botToken\": \"...\", \"apiUrl\": \"http://...\"}).","cause":"Missing apiUrl in account configuration after upgrade from v0.2.x.","error":"Error: Configuration validation failed: 'apiUrl' is required"},{"fix":"Check wsUrl or ensure DMWork server is running and accessible.","cause":"Invalid WebSocket URL or server unreachable.","error":"Error: WebSocket connection failed (code 1006)"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":"openclaw-channel-dmwork","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","messaging"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}