/install bnbot
BNBot - Control Twitter/X via AI
BNBot operates through a real browser session via Chrome Extension. 40+ CLI tools for posting, engagement, scraping, user profiles, content fetching, articles, and job searching.
First-time setup (run once after install)
After bnbot-cli is installed, start the WebSocket daemon:
nohup bnbot serve > /tmp/bnbot.log 2>&1 &
sleep 1
lsof -i :18900 -P 2>/dev/null | grep LISTEN
Confirm port 18900 is LISTEN before proceeding.
Before using any bnbot tool
Check if the daemon is still running:
lsof -i :18900 -P 2>/dev/null | grep LISTEN
If empty, restart it:
nohup bnbot serve > /tmp/bnbot.log 2>&1 &
How to use tools
All tools are executed via the bnbot CLI:
bnbot get-extension-status
bnbot post-tweet --text "Hello world!"
bnbot scrape-timeline --limit 10
Output is JSON.
Auto-thread for multiple images: When post-tweet receives more than 4 images (Twitter's limit), it automatically splits into a thread — first tweet gets the text + first 4 images, subsequent tweets get remaining images in batches of 4. You don't need to manually use post-thread for this.
Media support: Parameters like --media, --image, --headerImage, --bodyImages accept both local file paths (~/Downloads/image.png) and URLs (https://example.com/image.jpg). Files are auto-converted to base64 before sending.
If extension is not connected
If bnbot get-extension-status shows connected: false, tell the user:
Chrome Extension is not connected. Please:
- Install extension: https://chromewebstore.google.com/detail/bnbot-your-ai-growth-agen/haammgigdkckogcgnbkigfleejpaiiln
- Open https://x.com in Chrome
- Open BNBot sidebar → Settings → turn on OpenClaw
Available CLI commands
Status
bnbot get-extension-status— Check if extension is connectedbnbot get-current-page-info— Get current Twitter/X page info
Navigation
bnbot navigate-to-tweet --tweetUrl \x3Curl>bnbot navigate-to-search [--query "..."] [--sort top|latest|people|media]bnbot navigate-to-bookmarksbnbot navigate-to-notificationsbnbot navigate-to-followingbnbot return-to-timeline
Posting
bnbot post-tweet --text "..." [--media file1.png file2.jpg] [--draftOnly]bnbot post-thread --tweets '[{"text":"..."},{"text":"..."}]'bnbot submit-reply --text "..." [--tweetUrl \x3Curl>] [--image \x3Cpath>]bnbot quote-tweet --tweetUrl \x3Curl> --text "..." [--media ...] [--draftOnly]
Engagement
bnbot like-tweet [--tweetUrl \x3Curl>]bnbot unlike-tweet [--tweetUrl \x3Curl>]bnbot retweet [--tweetUrl \x3Curl>]bnbot unretweet [--tweetUrl \x3Curl>]bnbot follow-user [--username \x3Chandle>]bnbot unfollow-user [--username \x3Chandle>]bnbot bookmark-tweet [--tweetUrl \x3Curl>]bnbot unbookmark-tweet [--tweetUrl \x3Curl>]bnbot delete-tweet [--tweetUrl \x3Curl>]
Scraping
bnbot scrape-timeline [--limit \x3Cn>] [--scrollAttempts \x3Cn>]bnbot scrape-bookmarks [--limit \x3Cn>]bnbot scrape-search-results --query "..." [--tab top|latest|people|media|lists] [--limit \x3Cn>] [--from \x3Cusername>] [--since YYYY-MM-DD] [--until YYYY-MM-DD] [--lang en] [--has images|videos|links|media] [--minLikes \x3Cn>] [--minRetweets \x3Cn>] [--minReplies \x3Cn>] [--excludeReplies] [--excludeRetweets]bnbot scrape-current-viewbnbot scrape-thread [--tweetUrl \x3Curl>] [--maxScrolls \x3Cn>]bnbot account-analytics [--startDate YYYY-MM-DD] [--endDate YYYY-MM-DD] [--granularity Daily|Weekly|Monthly]
User Profiles
bnbot scrape-user-profile --username \x3Chandle>bnbot scrape-user-tweets --username \x3Chandle> [--limit \x3Cn>] [--scrollAttempts \x3Cn>]
Content Fetching
bnbot fetch-wechat-article --url \x3Curl>bnbot fetch-tiktok-video --url \x3Curl> [--savePath \x3Cpath>]bnbot fetch-xiaohongshu-note --url \x3Curl>
Articles
bnbot open-article-editorbnbot fill-article-title --title "..."bnbot fill-article-body --content "..." [--format plain|markdown|html] [--bodyImages img1 img2]bnbot upload-article-header-image --headerImage \x3Cpath>bnbot publish-article [--publish] [--asDraft]bnbot create-article --title "..." --content "..." [--format plain|markdown|html] [--headerImage \x3Cpath>] [--bodyImages img1 img2] [--publish]
Authentication
bnbot login [--email \x3Cemail>]— Login to BNBot via email verification
Jobs
bnbot search-jobs [--type boost|hire|all] [--status active|completed|expired] [--sort created_at|reward|deadline] [--limit \x3Cn>] [--keyword "..."] [--endingSoon] [--token ETH|USDC|USDT]
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install bnbot - 安装完成后,直接呼叫该 Skill 的名称或使用
/bnbot触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
BNBot 是什么?
The safest and most efficient way to automate Twitter/X — BNBot operates through a real browser session with 40+ AI-powered CLI tools. Grow your Twitter with... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 530 次。
如何安装 BNBot?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install bnbot」即可一键安装,无需额外配置。
BNBot 是免费的吗?
是的,BNBot 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
BNBot 支持哪些平台?
BNBot 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(darwin, linux, windows)。
谁开发了 BNBot?
由 Jack Lee(@jackleeio)开发并维护,当前版本 v1.5.0。