cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2606:4700:20::681a:854:443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=xm28tuO4%2BJ0pIfy2eG2XFfiw6gVPOrsoSAMNNMvYARR5tguIdl2pCudm%2BSGeElKGrlo1PR1D%2F22KwNJJprNEPYbAdW3onSmO07qFkLime4823SAGdjW5AGAH"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 22:07:14 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: a113ca0009f1289488beb058d7dc40bf1923542b
x-github-request-id: 9B92:302D2C:3F027:47E84:69656E36
x-proxy-cache: MISS
x-served-by: cache-bom-vanm7210061-BOM
x-timer: S1768255037.678166,VS0,VE1
CF-RAY: 9bcfe89aa8626cd6-BLR
alt-svc: h3=":443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 2606:4700:20::681a:854:80 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 21:57:15 GMT
Content-Length: 0
Connection: close
Location: https://wechaty.js.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=9q1xAdQJrYR7VV5RfxnfXRe%2Bjby0O5ZkXYLFfPgTj1XRIXfADoYIBYlWyWOB7e3x0aJlYW0lzZtz525cb2CVsXtLxLUrVUgCnTvyh9W%2FbhT0o%2B%2FFvnel2zo%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bcfe8966e98b9d7-BLR
Open service 2606:4700:20::681a:954:443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=t6VZ8FDPm%2BD7yO7%2Fxhax%2BqClijRYvm559tJ0eTsnIRx7VpagUXZ7%2BJYDa%2F%2BuGxbnFIaghaqQPPEpkERGfDOk6wBNbYpe%2BYFYVzbUzkhH2ZiFAKvQhXorzFDx"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 4
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 20:42:22 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: d34b2700435d192cc5765fd3a3bac5d12b5d059e
x-github-request-id: 19D6:2146DF:24125D:24DB72:69655A50
x-proxy-cache: MISS
x-served-by: cache-sjc10028-SJC
x-timer: S1768255036.089224,VS0,VE1
CF-RAY: 9bcfe8973c67ad84-SJC
alt-svc: h3=":443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 2606:4700:20::ac43:4940:8443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=XlQ5rnGOHfMHH1ieu1HOQXTnPn1E9uReZYXCBxDGZo28RMU3LEtVFd0%2FDX19JPlB8nfFs8pHxs8Phps4cm%2BC44sDWh%2BiAvsXg9yN%2BTealyO6U6b7cF7NvA%3D%3D"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 19:52:45 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: 292e2bb0aada89f34a3008ff7841c87835278f35
x-github-request-id: B924:39FCD5:B2822:B7286:69654EB5
x-proxy-cache: MISS
x-served-by: cache-sin-wsat1880045-SIN
x-timer: S1768255036.239978,VS0,VE1
CF-RAY: 9bcfe8984e0bef74-SIN
alt-svc: h3=":8443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 104.26.8.84:443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=l6DOlS31cpyM6gYJM6Ef7294DR01DZ1QWtvbfh5wMmE2hP4WbuMj1V0hSR%2FEpWrW3E3Td7%2FtV2zqDeM%2F70mzoD13Fg9hBXvXbM4mnLh9"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 4
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 20:42:22 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: 2799658f1a10b6ac561b9e7ab14f3e2f33172a6b
x-github-request-id: 19D6:2146DF:24125D:24DB72:69655A50
x-proxy-cache: MISS
x-served-by: cache-sjc10056-SJC
x-timer: S1768255036.105657,VS0,VE2
CF-RAY: 9bcfe8972f9912a1-SJC
alt-svc: h3=":443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 2606:4700:20::ac43:4940:443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=CvrPliCoOj7SgybPBrI%2FxIY2J6swK3nvgWkebEGFQT%2BMxT%2FF8WZb4a3BSyH53J1UVhCj6TN9NBOYfA5pYU2sDHJPlPFIWqIwmCijHUBkKkOvYExW8ddING8Q"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 4
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 20:42:22 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: bf73a977a0e5dc43e1827b5793c4bb117f426616
x-github-request-id: 19D6:2146DF:24125D:24DB72:69655A50
x-proxy-cache: MISS
x-served-by: cache-sjc1000120-SJC
x-timer: S1768255036.073113,VS0,VE2
CF-RAY: 9bcfe8972cdc4b96-SJC
alt-svc: h3=":443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 2606:4700:20::681a:954:80 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 21:57:15 GMT
Content-Length: 0
Connection: close
Location: https://wechaty.js.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=8tOt6XRMnfuERvvSB1RdefHPjceB0ox9HKCO3Hn5HbiDY4mCO89cj4O5Nobvo%2FjY47%2FGKGEXGHTIHZOGvVdJiLGqeIDAaFUEUCTH5OYau%2BbMqTrtcY0gV08%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bcfe8968d944f77-EWR
Open service 2606:4700:20::681a:854:8443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=9hp25o%2FqSMtXM1%2BNR5cHWV6%2FkkiyuFUC1mLshjG3MVanPwbRBCnG%2F8eltcVmuxNhI9okrUAIkb2kBJUCF0JYQ%2B9uC%2B1%2F3HYkQHu42pjqx%2BKuqwq2tfk26a%2Bn"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 19:52:45 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: 72e1a6b4931cd5e8049ae15fbac0c22c530ea380
x-github-request-id: B924:39FCD5:B2822:B7286:69654EB5
x-proxy-cache: MISS
x-served-by: cache-sin-wsat1880047-SIN
x-timer: S1768255036.268201,VS0,VE1
CF-RAY: 9bcfe8984a879f6b-SIN
alt-svc: h3=":8443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 172.67.73.64:8443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=yyiy3DpdA8Z5AxtfBWpDyZaX5gjkPiN9OrhfAUpVBWoFhO9H8BJjey5U5cfWUrR2A2fXHI0%2FQyo%2BuvDj92FsDDhZXhmddgfIAh6UDYFM"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 20:42:22 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: 54a4489035d1fc889366aa2481f1a07db6a5444b
x-github-request-id: D5B2:107E41:450969:4A1E6B:69655A56
x-proxy-cache: MISS
x-served-by: cache-lga21959-LGA
x-timer: S1768255036.132475,VS0,VE2
CF-RAY: 9bcfe8976a91281b-EWR
alt-svc: h3=":8443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 2606:4700:20::681a:954:8443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=p7QydKmxmGLqV%2B2znINgvBoxaIErKW5oMbd1R%2F5UwKJHQQfcywKdcKLgUGUudbQTttDIPkix%2F%2FkzZht6E%2FASFzSFcB2F%2BuYeAA0DT41l1fg7zmNc5sPlvJB%2F"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 19:52:45 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: f07ca604219799ba65729bcdae76e6321edca8f1
x-github-request-id: B924:39FCD5:B2822:B7286:69654EB5
x-proxy-cache: MISS
x-served-by: cache-sin-wsat1880077-SIN
x-timer: S1768255036.252581,VS0,VE1
CF-RAY: 9bcfe8984ff39af4-SIN
alt-svc: h3=":8443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 2606:4700:20::ac43:4940:80 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 21:57:15 GMT
Content-Length: 0
Connection: close
Location: https://wechaty.js.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=TvcSZgbS43WYa3mW4lUApsx5jTkDWfPLOgpqNoDTb%2BqRrQZSroZfTvSUd3Mk1X%2BOx%2BoxoxhzBdnJmwcE0%2FMrRbEFQGhlTgEtOfuRjMwx%2FPl3OeyM2ZItCbg%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bcfe8963a6ef473-BLR
Open service 172.67.73.64:80 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 21:57:15 GMT
Content-Length: 0
Connection: close
Location: https://wechaty.js.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=WevvkTPVID8MZcuV%2FBXL07iuUdMngAARtM3lOi8WM%2BQDjHNdu0Bs%2FFKFQ4yWkZhJYYHvhUIW8Y7gjmTCy6TkV5XjqpN1GRSLkYPW314%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bcfe8968db7ebbd-YYZ
Open service 172.67.73.64:443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=KVMTT6VVsz20kKrE4SWIlU5mDGKj61C6gtshecRmsXBkh%2FXisjYKZw%2Bzznj13q7gPPLS7ApuMsG89T6omQ3J67oOXmVt53uJPvgVOuoK"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 20:42:22 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: 8bd90ad8dfa58334f2c0cf02ab2d87d32cd9fea2
x-github-request-id: D5B2:107E41:450969:4A1E6B:69655A56
x-proxy-cache: MISS
x-served-by: cache-lga21945-LGA
x-timer: S1768255036.143293,VS0,VE2
CF-RAY: 9bcfe8978e74de98-EWR
alt-svc: h3=":443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 104.26.8.84:8443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=tlY%2FTYPlonTKjxhBATG30f0dP0Ncp2odyzUSNcxOJxe4DaWL%2BxHjgGfT5pUM%2FZl44gApa3gXD9y54gi44lOSXf0T%2FDtunMiSaladp4HQ"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 19:52:45 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: 867d15b4d6a65a67a626deb1854f90431fa4cca5
x-github-request-id: B924:39FCD5:B2822:B7286:69654EB5
x-proxy-cache: MISS
x-served-by: cache-sin-wsat1880040-SIN
x-timer: S1768255036.240192,VS0,VE1
CF-RAY: 9bcfe8984e3c9daa-SIN
alt-svc: h3=":8443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 104.26.8.84:80 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 21:57:15 GMT
Content-Length: 0
Connection: close
Location: https://wechaty.js.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=C3OTg1nWjNyxYSfpcCJGiLOD1QQjqvfPwJFZqswMLtgFa%2FKyoL8xLK%2B6R5FCvydu4BfqVev4skaRbsCZ58yJH%2FcfqFpjDfHLJStw"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bcfe896ddfc0b11-EWR
Open service 104.26.9.84:443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=D4YzsEvQ8YlaydtU3xJLSFeHQFqRTswvTlU2vTTulo15g1lT05rC22fSAsecFSPv%2BelFXG3TE%2Bpm0Hwd54br7Mjv6Dd2NldhqA%2F5Ibjx"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 20:42:22 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: 2465735c484013fa59dc1e4b9418d862d75b3a13
x-github-request-id: D5B2:107E41:450969:4A1E6B:69655A56
x-proxy-cache: MISS
x-served-by: cache-lga21967-LGA
x-timer: S1768255036.097740,VS0,VE1
CF-RAY: 9bcfe89758e15ed0-EWR
alt-svc: h3=":443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 104.26.9.84:8443 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 21:57:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=EkLIW162SQ8xDLhwc%2FJvAunpnp6Leessq3A4GeNQk%2FcjvlB38mgvTiJ00cqKv%2BBs0yKxIZ0TW%2Fc%2FsotqLd14E17OmqJADHh1xqDsImN%2F"}]}
cf-cache-status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Expires: Mon, 12 Jan 2026 22:07:14 GMT
Last-Modified: Mon, 22 Dec 2025 00:44:59 GMT
Server: cloudflare
Strict-Transport-Security: max-age=31556952
Vary: Accept-Encoding
Via: 1.1 varnish
x-cache: HIT
x-cache-hits: 1
x-fastly-request-id: a0eaeaa16ff884b73169b32c3884af42805a5370
x-github-request-id: 2ACC:2B8A26:526DB0:571B25:69656E38
x-proxy-cache: MISS
x-served-by: cache-yyz4524-YYZ
x-timer: S1768255036.112710,VS0,VE2
CF-RAY: 9bcfe8975f3b964a-YYZ
alt-svc: h3=":8443"; ma=86400
Page title: Wechaty
<!doctype html>
<html lang="en-US" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Wechaty</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" name="twitter:image" content="https://wechaty.js.org/img/wechaty-logo.svg"><meta data-rh="true" property="og:url" content="https://wechaty.js.org/"><meta data-rh="true" property="og:locale" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Wechaty"><meta data-rh="true" name="description" content="RPA SDK for Chatbot Makers."><meta data-rh="true" property="og:description" content="RPA SDK for Chatbot Makers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wechaty.js.org/"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/zh/" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://wechaty.js.org/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Wechaty RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Wechaty Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Wechaty" href="/opensearch.xml">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-PD2PL84",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script>
<link rel="icon" href="/img/icon.png">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="rgb(8, 168, 56)">
<link rel="stylesheet" href="/css/gitter-sidecar.css">
<script src="/js/gitter-sidecar.js"></script>
<script src="/js/baidu-statistics.js"></script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async></script><link rel="stylesheet" href="/assets/css/styles.d6b5b0b9.css">
<script src="/assets/js/runtime~main.0de4e5d1.js" defer="defer"></script>
<script src="/assets/js/main.909ba3e8.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display:
Open service 104.26.9.84:80 · wechaty.js.org
2026-01-12 21:57
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 21:57:15 GMT
Content-Length: 0
Connection: close
Location: https://wechaty.js.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=AEJ2hE2xc9b48EnS2k61pnKdxklKnoSR5m6BTosHDJ%2FLQghY%2FXqeT6dl9e69PC4TMtEEu040eCYRJA6NO%2FsxFg3D2v13ycZ%2BhLkPrSw%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bcfe8965f06aadf-YYZ