# Square Post

Use when the user wants to publish new content to Binance Square, short text...

- Repository: https://github.com/binance/binance-skills-hub (1115 stars)
- Category: Writing
- License: see repository
- Last updated: 2026-10-26
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add binance/binance-skills-hub --skill square-post -g -a claude-code -y`
Codex: `npx skills add binance/binance-skills-hub --skill square-post -g -a codex -y`
Cursor: `npx skills add binance/binance-skills-hub --skill square-post -g -a cursor -y`
Gemini CLI: `npx skills add binance/binance-skills-hub --skill square-post -g -a gemini-cli -y`

## Description

Use when the user wants to publish new content to Binance Square, short text, multi-image posts (up to 4), long-form articles with an optional cover, or videos with an auto-generated cover frame. Trigger on direct phrasings like "post to Square", "publish to Binance Square", "发广场", "发布到广场", and on near-miss intents where the user clearly wants to share or publish content on Square even without naming the skill: "share this analysis on Square", "把这篇文章发出去", "发个动态", "把这个视频上传到广场", "publish my chart to Square as an article". Also use when the user provides media (images, video) plus a caption and asks to push it to Square, or asks to turn a draft into a Square article. Do not use for reading, searching, commenting, liking, editing, deleting, scheduling, or managing existing Square posts, this skill only creates new posts.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Square Post Skill

## Purpose

Publish new content to Binance Square by running the local scripts in `scripts/`.

Supported post types:
- Text-only short posts
- Image posts with up to 4 images
- Long articles with a title and optional cover image
- Video posts with an auto-generated cover image

Do not hand-code API requests for normal posting. The scripts own upload, polling, cover generation, and publish behavior.

## Runtime Dependencies

- Node.js 18 or newer. The scripts use native ES modules and the built-in `fetch` API.
- `ffmpeg` is required for video posts because `post-video.mjs` extracts the first frame as the cover image.
- `ffprobe` is required when a video duration is not provided by the user.
- Network access is required for Binance Square OpenAPI requests and presigned media uploads.

## Authentication

Posting requires a Binance Square OpenAPI key.

Before posting:
- Prefer `BINANCE_SQUARE_OPENAPI_KEY` from the user's environment if present.
- If it is not present, the scripts automatically check `~/.config/binance-square/openapi-key`.
- If no valid key is found, ask the user to provide an API key first.
- If the user wants to reuse the key in future requests, save it with `BINANCE_SQUARE_OPENAPI_KEY=<apiKey> node scripts/save-key.mjs`; otherwise use it only for the current command environment.
- Tell the user they can create an API key at: https://www.binance.com/square/creator-center/home

Pass the key only via `BINANCE_SQUARE_OPENAPI_KEY` (env or saved file). Never write it into command arguments or print the full key, CLI args appear in `ps` output and shell history. When mentioning a key, show only the first 5 and last 4 characters, such as `abc12...xyz9`.

## Scripts

All commands should be run from this skill directory.

### Text Or Article Post

Use for text-only short posts or long articles without images.

```bash
node scripts/post-text.mjs --text "Hello #crypto $BTC"
```

Long article with title and no cover:

The rest: https://github.com/binance/binance-skills-hub/blob/HEAD/skills/binance/square-post/SKILL.md
