Social Ops for Bluesky

Post one SandBase Lab experiment to Bluesky per run with its cover video, never the same one twice, and get a daily metrics report.

Social Ops for Bluesky

Bring a Bluesky account and its App Password, set in your own environment. The Skill returns one post per run and a daily report (JSON + HTML in English and Chinese).

How it works

  1. Pick and draft

    Takes the next live Lab experiment with a cover video from /lab/api/catalog, skipping any the account has already linked, and drafts an English post with a SandBase model or from the template text.

  2. Post once

    Logs in with the App Password, re-reads the account's own records on its PDS, uploads the cover video (falling back to the image, then a link card) and creates the post exactly once.

  3. Report

    Reads public profile and post metrics, computes an engagement score and compares them with the previous report.

Frequently asked questions

Why did it post an image instead of the video?

Bluesky only accepts video from accounts with a confirmed email. Until the email is confirmed the Skill posts the cover image and says why in publish.json (fallbacks). Bluesky's daily video upload limit also applies.

Which password does it need?

A Bluesky App Password, never the account password. Create one in Bluesky under Settings → Privacy and security → App passwords, and set it as BSKY_APP_PASSWORD.

Can it post the same experiment twice?

No. Each run makes at most one post. After logging in it re-reads the account's records on its PDS and skips any experiment already linked, and it never retries createRecord, so a retried or overlapping run does not post twice.

Can I store BSKY_HANDLE and BSKY_APP_PASSWORD in SandBase Agents Secrets?

Not yet: Agents Secrets currently store only MCP bearer tokens. Pass both values through the environment of wherever you run the Skill (your shell, cron or a CI secret). Never paste them into a chat, a prompt or a file.

Does Lab run or schedule it for me?

No. This Skill is download-only. Lab hosts the package and this page; you run it and schedule it yourself.

Do I need SandBase to use it?

Only for drafting. With SANDBASE_API_KEY or a signed-in sandbase CLI it drafts the post with a SandBase model; without either it uses template text built from the Lab catalog copy. SANDBASE_API_KEY is only sent to api.sandbase.ai.