{"id":49518,"library":"timbot-ws","title":"timbot-ws","description":"OpenClaw Tencent Cloud IM intelligent bot channel plugin via WebSocket SDK, version 2026.5.20. This plugin enables real-time chatbot functionality without requiring a public IP address, using WebSocket long connections instead of webhooks. It supports Multi-Agent mode via Worker threads and streaming messages with text_modify and custom_modify modes (but not TIMStreamElem). The package ships TypeScript types and is actively maintained by Tencent RTC. Key differentiators: zero-config deployment, private network support, and dm policies (open/allowlist/pairing/disabled).","status":"active","version":"2026.5.20","language":"javascript","source_language":"en","source_url":"https://github.com/Tencent-RTC/TIMBot-WS","tags":["javascript","openclaw","openclaw-plugin","tencent-im","timbot","timbot-ws","chatbot","websocket","typescript"],"install":[{"cmd":"npm install timbot-ws","lang":"bash","label":"npm"},{"cmd":"yarn add timbot-ws","lang":"bash","label":"yarn"},{"cmd":"pnpm add timbot-ws","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency; timbot-ws is an OpenClaw plugin","package":"openclaw","optional":false}],"imports":[{"note":"ESM-only package; CommonJS require() is not supported.","wrong":"const TimbotWs = require('timbot-ws')","symbol":"default","correct":"import TimbotWs from 'timbot-ws'"},{"note":"Use 'import type' for type-only imports to avoid runtime errors in TypeScript.","wrong":"import { TimbotWsOptions } from 'timbot-ws'","symbol":"type TimbotWsOptions","correct":"import type { TimbotWsOptions } from 'timbot-ws'"},{"note":"TimbotWsConfig is a runtime class, not a type; import as value.","wrong":"import type { TimbotWsConfig } from 'timbot-ws'","symbol":"TimbotWsConfig","correct":"import { TimbotWsConfig } from 'timbot-ws'"}],"quickstart":{"code":"import { getOpenClaw } from 'openclaw';\nimport TimbotWs from 'timbot-ws';\n\nconst app = getOpenClaw();\napp.useChannel('timbot-ws', {\n  sdkAppId: 123456789,\n  userId: 'bot_001',\n  userSig: process.env.USER_SIG ?? 'your_user_sig_here',\n  enabled: true,\n  welcomeText: 'Hello! I am your bot.',\n  typingText: 'Thinking...',\n  streamingMode: 'text_modify',\n  fallbackPolicy: 'strict',\n});\n\napp.start();","lang":"typescript","description":"Installs and configures timbot-ws with basic options including streaming mode and welcome text."},"warnings":[{"fix":"Use 'off', 'text_modify', or 'custom_modify' instead.","message":"streamingMode 'tim_stream' is not supported","severity":"breaking","affected_versions":">=2026.5.20"},{"fix":"Migrate to accounts object with account-level config.","message":"Top-level sdkAppId is deprecated; use accounts map for multi-account setups","severity":"deprecated","affected_versions":">=2026.5.20"},{"fix":"Generate a long-lived UserSig (e.g., 10 years) via Tencent Cloud console.","message":"UserSig must be pre-generated and set; expires after configured duration","severity":"gotcha","affected_versions":">=2026.5.20"},{"fix":"Set to 0 if responses are expected within the same second.","message":"typingDelayMs default 1000 may cause message ordering issues with very fast responses","severity":"gotcha","affected_versions":">=2026.5.20"},{"fix":"Use 'open' or 'allowlist' for simple bot-user interactions.","message":"dm.policy 'pairing' requires both parties to initiate; single-user interactions may fail","severity":"gotcha","affected_versions":">=2026.5.20"}],"env_vars":null,"search_vec":"'2026.5.20':16 'activ':67 'address':30 'agent':42 'bot':9 'channel':10 'chatbot':23,97 'cloud':6 'config':76 'connect':34 'custom':54 'deploy':77 'differenti':73 'dm':82 'enabl':19 'function':24 'im':7,92 'instead':35 'intellig':8 'ip':29 'javascript':85 'key':72 'long':33 'maintain':68 'messag':49 'mode':43,56 'modifi':52,55 'multi':41 'multi-ag':40 'network':79 'open/allowlist/pairing/disabled':84 'openclaw':4,86,88 'openclaw-plugin':87 'packag':61 'plugin':11,18,89 'polici':83 'privat':78 'public':28 'real':21 'real-tim':20 'requir':26 'rtc':71 'sdk':14 'ship':62 'stream':48 'support':39,80 'tencent':5,70,91 'tencent-im':90 'text':51 'thread':46 'timbot':2,93,95 'timbot-w':1,94 'time':22 'timstreamelem':59 'type':64 'typescript':63,99 'use':31 'version':15 'via':12,44 'webhook':37 'websocket':13,32,98 'without':25 'worker':45 'ws':3,96 'zero':75 'zero-config':74","created_at":"2026-06-07T17:02:10.949498+00:00","updated_at":"2026-06-07T17:02:10.949498+00:00","problems":[{"fix":"Run `openclaw plugins install timbot-ws` in your project root.","cause":"Package not installed via openclaw plugins install","error":"Error: Cannot find module 'timbot-ws'"},{"fix":"Switch to ES module syntax: import TimbotWs from 'timbot-ws';","cause":"Using CommonJS require on an ESM-only module","error":"TypeError: TimbotWs is not a constructor"},{"fix":"Ensure sdkAppId is a positive integer (e.g., 123456789).","cause":"sdkAppId is not a number or missing","error":"Error: Invalid sdkAppId"},{"fix":"Generate a new UserSig with a longer validity (e.g., 315360000 seconds).","cause":"UserSig token has expired","error":"Error: UserSig expired"}],"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":"https://github.com/Tencent-RTC/TIMBot-WS#readme","github":"https://github.com/Tencent-RTC/TIMBot-WS","docs":null,"changelog":null,"pypi":null,"npm":"timbot-ws","openapi_spec":null,"status_page":null,"smithery":null,"categories":["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}}