/SKILL.md
Auto-mirror Twitter/X content to Binance Square, or publish a new Square post directly. Supports text posts, up to 4 images, one video, and #tags. Use for requests like "mirror tweets to Binance Square", "post this image to Square", "publish this video to Square", or "run the Binance Square MCP server".
npx skillsauth add 6551team/6551-twitter-to-binance-square twitter-to-binance-squareInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use the scripts in this skill directory. The scripts own Binance Square upload, status polling, video cover extraction, and publish behavior.
TWITTER_TOKEN.TWITTER_TOKEN must be a valid 6551 Twitter API token supplied by the user's environment.BINANCE_SQUARE_OPENAPI_KEY; SQUARE_API_KEY is accepted only for backward compatibility.| Shape | Binance body fields |
|---|---|
| Text | contentType=1, bodyTextOnly |
| Images | contentType=1, bodyTextOnly, imageList |
| Video | contentType=3, fileTicket, cover, videoTimeSeconds, isPublish=true |
| Tags | normalized #tags appended into bodyTextOnly |
Images and video are mutually exclusive. Image posts support max 4 images. Video posts support exactly 1 video.
Run from this directory:
python scripts/auto_mirror.py --mode account --accounts VitalikButerin --tags Crypto,Web3 --once --dry-run
Effective CLI parameters:
| Parameter | Effect |
|---|---|
| --config, -c | Load JSON config. |
| --mode | account, search, or hashtag. |
| --accounts | Comma-separated Twitter usernames for account mode. |
| --keywords | Search keywords for search mode. |
| --hashtag | Hashtag for hashtag mode, without #. |
| --interval | Poll interval in seconds. |
| --min-likes | Minimum likes threshold. |
| --min-retweets | Minimum retweets threshold. |
| --max-posts | Max posts per cycle. |
| --include-replies | Include replies in account mode. |
| --include-retweets | Include retweets in account mode. |
| --tags | Comma-separated tags appended as #tags. |
| --image | Image path or URL to attach; repeat or comma-separate, max 4. |
| --video | One video path or URL to attach. |
| --video-duration | Video duration in seconds; if omitted, ffprobe is used. |
| --video-cover | Image path or URL used as video cover; if omitted, ffmpeg extracts the first frame. |
| --no-tweet-images | Ignore images found on source tweets. |
| --no-tweet-videos | Ignore videos found on source tweets. |
| --dry-run | Preview request body without posting or uploading. |
| --once | Run one cycle and exit. |
| --state-file | State file for posted tweet IDs and post log. |
The JSON config uses mirror_config.example.json as the source of truth.
Run:
python scripts/mcp_server.py
MCP tool: publish_square_post
| Parameter | Effect |
|---|---|
| text | Required post text. |
| tags | Optional list of tags. Items may include or omit #. |
| images | Optional list of local image paths or image URLs, max 4. |
| video | Optional local video path or video URL. |
| video_duration_seconds | Optional positive duration; if omitted, ffprobe is used. |
| video_cover | Optional local image path or URL for video cover; if omitted, ffmpeg extracts the first frame. |
| dry_run | Return request body without upload or publish. |
Do not pass both images and video.
dry_run before first live publishing when practical.#tags and $symbols; append configured tags only once.220009 as the daily Square OpenAPI limit.Local dry-run verifies parameter wiring and request-body construction. Live Square publishing was verified on 2026-05-23 with a temporary OpenAPI key for image+tags and video+tags posts. Live Twitter account fetching was verified with a valid 6551 TWITTER_TOKEN. Twitter image URL publishing was also verified end to end: a direct pbs.twimg.com/media/... source image was uploaded and published as a Square-hosted public.bnbstatic.com image. Tweet image extraction must prefer direct pbs.twimg.com/media/... image URLs over x.com/.../photo/... page URLs.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.