ข้ามไปที่เนื้อหา

Bluesky

RedPanda CLI examples for Bluesky — text, images, video, and follow-up replies with an app-password channel.

2 min read

Connect your agent today

Draft from chat, review in your calendar, and publish only what you approve.

เริ่มใช้งานฟรี

Channel quick reference

PropertyValue
Provider identifierbluesky
Max content length300 graphemes (main post and each follow-up)
Required attachmentsNone — text-only posts publish
ConnectDashboard app password — Bluesky setup
BLUESKY_ID=$(openquok integrations:list | jq -r '.[] | select(.identifier=="bluesky") | .id')

Simple text post

openquok posts:create 
  -s "2026-01-15T10:00:00Z" 
  -t schedule 
  -c "Hello from RedPanda on Bluesky." 
  -i "$BLUESKY_ID"

Post with images

Up to four images per post. Upload each file, then pass the media array:

MEDIA=$(openquok upload ./photo-a.png ./photo-b.png | jq -c '[.data | {id, path: (.path // .filePath)}]')

openquok posts:create 
  -s "2026-01-15T10:00:00Z" 
  -t schedule 
  -c "Two photos in one post." 
  -i "$BLUESKY_ID" 
  -m "$MEDIA"

Post with video

One MP4 per post — do not attach images in the same post. Bluesky rejects files over 300 MB or longer than 10 minutes.

MEDIA=$(openquok upload ./clip.mp4 | jq -c '[{id: .data.id, path: (.data.path // .data.filePath)}]')

openquok posts:create 
  -s "2026-01-15T10:00:00Z" 
  -t schedule 
  -c "Short video update." 
  -i "$BLUESKY_ID" 
  -m "$MEDIA"

Set embed fields under bluesky — no -m media on the same post:

openquok posts:create 
  -s "2026-01-15T10:00:00Z" 
  -t schedule 
  -c "Read the full write-up on our site." 
  -i "$BLUESKY_ID" 
  --providerSettingsByIntegrationId "$(jq -nc --arg id "$BLUESKY_ID" '
    {
      ($id): {
        bluesky: {
          linkUrl: "https://example.com/post",
          linkTitle: "Example article",
          threadGate: "everyone"
        }
      }
    }
  ')"

Follow-up reply

bluesky.replies carries same-account replies after the main post publishes:
openquok posts:create 
  -s "2026-01-15T10:00:00Z" 
  -t schedule 
  -c "Part one of the update." 
  -i "$BLUESKY_ID" 
  --providerSettingsByIntegrationId "$(jq -nc --arg id "$BLUESKY_ID" '
    {
      ($id): {
        bluesky: {
          replies: [
            { id: "reply-1", message: "Part two — details below.", delaySeconds: 300 }
          ]
        }
      }
    }
  ')"

Follow-up with media

Upload attachments first, then nest media on the matching reply row:

REPLY_MEDIA=$(openquok upload ./reply-image.png | jq -c '[{id: .data.id, path: (.data.path // .data.filePath)}]')

openquok posts:create 
  -s "2026-01-15T10:00:00Z" 
  -t schedule 
  -c "Launch post." 
  -i "$BLUESKY_ID" 
  --providerSettingsByIntegrationId "$(jq -nc 
    --arg id "$BLUESKY_ID" 
    --argjson media "$REPLY_MEDIA" '
    {
      ($id): {
        bluesky: {
          replies: [
            { id: "reply-1", message: "Screenshot attached.", delaySeconds: 60, media: $media }
          ]
        }
      }
    }
  ')"

JSON file examples

Agent-ready payloads live in the RedPanda Core skill:

openquok posts:create --json ./examples/bluesky-text-only.json

See Bluesky Settings for the full bluesky.replies field table.

ค้นหาเอกสาร
ค้นหาหน้าเอกสาร
ศูนย์ช่วยเหลือ