← Back to Skills Marketplace
jackleeio

BNBot

by Jack Lee · GitHub ↗ · v1.5.0 · MIT-0
darwinlinuxwindows ✓ Security Clean
530
Downloads
1
Stars
1
Active Installs
24
Versions
Install in OpenClaw
/install bnbot
Description
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...
README (SKILL.md)

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:

  1. Install extension: https://chromewebstore.google.com/detail/bnbot-your-ai-growth-agen/haammgigdkckogcgnbkigfleejpaiiln
  2. Open https://x.com in Chrome
  3. Open BNBot sidebar → Settings → turn on OpenClaw

Available CLI commands

Status

  • bnbot get-extension-status — Check if extension is connected
  • bnbot 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-bookmarks
  • bnbot navigate-to-notifications
  • bnbot navigate-to-following
  • bnbot 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-view
  • bnbot 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-editor
  • bnbot 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]
Usage Guidance
This skill appears coherent with its purpose, but take these precautions before installing or running it: 1) Inspect the npm package (bnbot-cli) source or the linked GitHub repo and check the package publisher and recent release history; run 'npm audit' and review install scripts for unexpected actions. 2) Review the Chrome extension's permissions and privacy policy before installation — extensions may access cookies and page contents needed to operate on your logged-in X account. 3) When starting the daemon, verify it binds to localhost (127.0.0.1) rather than 0.0.0.0 and consider firewall rules to restrict access to port 18900. 4) Avoid running it on machines containing sensitive data or using your primary browser profile; use a dedicated browser profile or isolated environment. 5) Be cautious when allowing the tool to upload local files or download external content; check logs (/tmp/bnbot.log) for unexpected network targets. If you want a stronger assurance, either review the package's source code or run the CLI in a controlled VM/container first.
Capability Analysis
Type: OpenClaw Skill Name: bnbot Version: 1.5.0 The bnbot skill bundle provides a comprehensive CLI interface (bnbot-cli) for automating Twitter/X actions through a Chrome extension. The instructions guide the agent to manage a local WebSocket daemon on port 18900 and execute various social media tasks like posting, scraping, and engagement. No evidence of data exfiltration, malicious execution, or harmful prompt injection was found; the tool's behavior and requirements are consistent with its stated purpose of browser-based social media automation.
Capability Assessment
Purpose & Capability
Name/description (BNBot automates Twitter/X via a browser session) matches the requirements: an npm package that installs a bnbot-cli binary and instructions to start a local WebSocket daemon and use a Chrome extension. Nothing requested (env vars, unrelated binaries) is inconsistent with that purpose.
Instruction Scope
SKILL.md stays on-topic: it instructs installing the CLI, starting a background 'bnbot serve' daemon listening on port 18900, using the CLI commands, and installing/enabling a Chrome extension. It permits reading local files (images) to base64-encode and send them and offers commands that download external content (WeChat, TikTok, Xiaohongshu). Those behaviors are expected for this tool but expand the data surface (local files, browser session, and network transfers).
Install Mechanism
Install is via npm (package: bnbot-cli) which is a standard, expected mechanism for a CLI distributed on npm. This is traceable but still worth inspecting (npm packages can contain arbitrary code).
Credentials
The skill requests no environment variables or credentials in the SKILL.md metadata. The Chrome extension and CLI will implicitly rely on your browser session/cookies (to control X) and local files (images), which is consistent with the stated functionality. No unrelated secrets are requested.
Persistence & Privilege
The skill instructs you to run a persistent daemon (nohup bnbot serve) that listens on TCP port 18900. That is normal for this type of tool but increases the local attack surface (network-accessible service, logs, running background process). The skill does not request elevated platform privileges or 'always: true'.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install bnbot
  3. After installation, invoke the skill by name or use /bnbot
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.5.0
Add 12 missing CLI commands, full search params, media support docs
v0.7.0
Replace MCP with CLI mode, rename MCP toggle to OpenClaw, update bnbot-mcp-server to bnbot-cli
v1.4.0
Document auto-thread for >4 images
v1.3.0
Start daemon on install, check before each tool use
v1.2.0
Use macOS LaunchAgent for auto-start daemon, no more pre-flight checks
v1.1.0
CLI-first skill rewrite: always check daemon, all tools as CLI commands
v1.0.2
Remove unnecessary config warning
v1.0.1
Fix: forbid agent from modifying openclaw.json
v1.0.0
Renamed to bnbot-cli, added CLI and daemon modes
v0.6.1
Fix: remove invalid mcpServers config, auto-start WebSocket daemon instead
v0.6.0
Auto-setup MCP server and WebSocket on skill install
v0.5.3
Add search_jobs tool — browse available tweet engagement jobs with crypto rewards
v0.5.2
Rewrite README to remove auto-config/auto-install language, align with SKILL.md user-consent policy
v0.5.1
Emphasize safety (undetectable, no ban risk) and efficiency (28 tools, most comprehensive toolkit)
v0.5.0
Rewrite description — emphasize safety (real browser, no API ban risk) and AI growth agent positioning
v0.4.4
Remove automatic config editing — require explicit user approval before modifying any config files
v0.4.3
Add Chrome Extension, npm, and GitHub links
v0.4.2
Fix display name to BNBot
v0.4.1
Fix display name
v0.4.0
Add 15 new tools (engagement, articles, content fetching), make client-agnostic
Metadata
Slug bnbot
Version 1.5.0
License MIT-0
All-time Installs 1
Active Installs 1
Total Versions 24
Frequently Asked Questions

What is 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... It is an AI Agent Skill for Claude Code / OpenClaw, with 530 downloads so far.

How do I install BNBot?

Run "/install bnbot" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is BNBot free?

Yes, BNBot is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does BNBot support?

BNBot is cross-platform and runs anywhere OpenClaw / Claude Code is available (darwin, linux, windows).

Who created BNBot?

It is built and maintained by Jack Lee (@jackleeio); the current version is v1.5.0.

💬 Comments