CommunityEscrita e Ediçãogithub.com

publora/bluesky-post

Use quando o usuário quiser publicar ou agendar posts no Bluesky através do Publora. Lida com o limite de 300 caracteres, hashtags e links detectados automaticamente, até 4 imagens e vídeos. O texto alternativo não pode ser definido pela API. Necessita de uma senha de aplicativo do Bluesky, nunca a senha principal. Não é para o Mastodon (use social-post).

O que é bluesky-post?

Este skill permite criar e agendar posts para o Bluesky usando o servidor MCP Publora. Ele gerencia automaticamente a detecção de hashtags e links, suporta até 4 imagens por post e vídeos de até 3 minutos, tudo respeitando o limite de 300 caracteres do Bluesky. O usuário deve primeiro configurar uma conta gratuita no Publora, gerar uma senha de aplicativo no Bluesky (nunca a senha principal), conectar a conta e obter uma chave de API. O skill oferece ferramentas como `create_post`, `get_upload_url`, `complete_media`, `list_connections`, `post_stats`, `profile_stats`, e gerenciamento de rascunhos/posts agendados. Também inclui uma documentação detalhada de fallback via REST API. É importante notar que o texto alternativo de imagens não pode ser definido pela API e deve ser adicionado manualmente no aplicativo do Bluesky após a postagem. O skill funciona em várias plataformas de agente (Claude Code, Cursor, Codex, OpenClaw, claude.ai).

Funciona com✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/publora/skills/tree/main/skills/bluesky-post

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Bluesky Post

Crie e agende posts para o Bluesky usando o servidor MCP Publora. Suporta posts de texto com hashtags e URLs detectados automaticamente, imagens e vídeos.

Pré-requisitos

Planos: Funciona no plano gratuito Starter. Limites e preços atuais: publora.com/pricing

Primeiros Passos

  1. Criar conta em publora.com/register (gratuita)
  2. Gerar senha de aplicativo nas Configurações do Bluesky > Senhas de Aplicativo (NÃO sua senha principal)
  3. Conectar o Bluesky no Painel Publora usando seu identificador + senha de aplicativo
  4. Obter chave de API em app.publora.com/dashboard/api
  5. Conectar seu agente ao servidor MCP em https://mcp.publora.com, autenticando com Authorization: Bearer sk_SUA_CHAVE_DE_API. No Claude Code:
claude mcp add publora --transport http https://mcp.publora.com \
  --header "Authorization: Bearer sk_SUA_CHAVE_DE_API"

Claude Desktop, Cursor, Codex, OpenClaw e o conector claude.ai precisam de um arquivo de configuração ou fluxo diferente: veja configuração do cliente para o caminho e trecho exatos.

Fallback da API REST

Se o servidor MCP estiver indisponível ou retornar erros, use a API REST diretamente:

URL Base: https://api.publora.com/api/v1

Autenticação: Use o cabeçalho x-publora-key (NÃO Authorization: Bearer):

# Obter suas plataformas conectadas
curl -X GET "https://api.publora.com/api/v1/platform-connections" \
  -H "x-publora-key: sk_sua_chave_de_api"

# Criar um post
curl -X POST "https://api.publora.com/api/v1/create-post" \
  -H "x-publora-key: sk_sua_chave_de_api" \
  -H "Content-Type: application/json" \
  -d '{
    "platforms": ["bluesky-did:plc:abc123xyz"],
    "content": "Conteúdo do seu post aqui",
    "scheduledTime": "2026-03-25T10:00:00Z"
  }'

Formato do ID da Plataforma: bluesky-{did} onde {did} vem da resposta de /platform-connections.

Exemplos de IDs: bluesky-did:plc:abc123xyz, bluesky-did:plc:def456uvw

📖 Documentação completa da API: docs.publora.com

Limites da Plataforma

RecursoLimite
Caracteres300
ImagensAté 4 por post
Tamanho da imagemexatamente 2.000.000 bytes (decimal, não 2 MiB)
Duração do vídeo3 minutos
Tamanho do vídeo50-100 MB (baseado na duração)
Vídeos por dia25
Texto alternativo2.000 caracteres no próprio Bluesky, mas não configurável através desta API (veja abaixo)

Faixas de Tamanho de Vídeo

DuraçãoTamanho Máximo
Abaixo de 60s50 MB
60s - 3min100 MB

Facetas de Rich Text

O Bluesky usa um sistema único de rich text. O Publora lida com a complexidade automaticamente:

  • Hashtags: #hashtag detectada automaticamente e tornada clicável
  • URLs: Qualquer URL detectada automaticamente e tornada clicável
  • Deslocamentos de bytes: Calculados corretamente para caracteres multibyte (emojis, CJK)

Nenhuma formatação especial necessária - basta escrever naturalmente.

Ferramentas Disponíveis

create_post

Criar um novo post no Bluesky.

Parâmetros:

  • platforms: Array com seu ID de conexão do Bluesky (ex.: ["bluesky-did:plc:abc123xyz"])
  • content: Texto do post (até 300 caracteres)
  • scheduledTime: Data/hora ISO 8601 UTC. Opcional: omita e o post é criado como rascunho. Envie uma data futura para agendar. Uma data com cinco minutos ou mais no passado é rejeitada com SCHEDULED_TIME_IN_PAST, então para postagem imediata use a hora atual mais um minuto.
  • mediaUrls: até 10 URLs https públicas de imagem ou vídeo. O Publora as baixa no servidor e as anexa antes da validação, então mídia e agendamento acontecem em uma única chamada. Esta é a alternativa de uma só vez ao fluxo de rascunho, depois get_upload_url e depois complete_media. A ingestão é limitada a 60 URLs por hora.

get_upload_url

Obter URL pré-assinada para upload de mídia.

Parâmetros:

  • postGroupId: ID do post ao qual anexar a mídia
  • fileName: Nome do arquivo (ex.: "photo.jpg")
  • contentType: image/jpeg, image/png, video/mp4
  • type: "image" ou "video"

complete_media

Finalizar um arquivo carregado através de get_upload_url, após o PUT pré-assinado ter sucesso. Opcional, porque o agendamento também finaliza mídias pendentes, mas chamá-lo cedo expõe erros de formato e de sonda antes da publicação. Não necessário para mídia anexada com mediaUrls.

Parâmetros:

  • mediaId: o id retornado por get_upload_url

list_connections

Listar suas contas conectadas com seus IDs de plataforma. Chame esta função primeiro e copie os IDs exatamente como estão; eles nunca são adivinháveis.

post_stats

Contadores de engajamento para um post publicado no Bluesky: reações, comentários, compartilhamentos, citações e favoritos. Ao vivo no momento da requisição, armazenados em cache por aproximadamente duas horas.

Parâmetros:

  • platform: bluesky
  • platformId: seu ID de conexão do Bluesky
  • postedIds: os ids dos posts publicados a serem consultados

profile_stats

Seguidores, seguindo e contagem de posts para a conta conectada.

Parâmetros:

  • platform: bluesky
  • platformId: seu ID de conexão do Bluesky

list_posts / get_post / update_post / delete_post

Gerenciar posts agendados e rascunhos. update_post também altera content e platforms em um rascunho ou post agendado, então corrigir um erro de digitação ou redirecionar não significa mais excluir e recriar. delete_media e prune_media_reference limpam arquivos carregados.

Exemplos

Post Simples com Hashtags

Publique isto no Bluesky:
"Acabamos de lançar nossa nova documentação da API! Confira em https://docs.exemplo.com #ferramentasdev #api"

Hashtags e URLs são automaticamente tornadas clicáveis.

Post com Imagem

Publique isto no Bluesky com um print do painel:
"Nossa nova visualização de análises está no ar! #buildinpublic"

Múltiplas Imagens

Crie um post no Bluesky com imagens de antes/depois:
"Reforma do escritório concluída! Que transformação."

Nota: Até 4 imagens permitidas por post.

Post de Vídeo

Publique este vídeo de 60 segundos de demonstração no Bluesky:
"Tour rápido pelos novos recursos do nosso aplicativo móvel"

Post Agendado

Agende isto para amanhã às 10h:
"Bom dia! Aqui vai sua dica de produtividade diária..."

Restrições Importantes

  1. O texto alternativo não pode ser definido através da API. O editor do Bluesky lê uma propriedade alt na mídia, mas nada a persiste: nem o fluxo de upload pré-assinado nem mediaUrls a armazenam, e um valor altTexts enviado para create-post é silenciosamente ignorado. platformSettings também não ajuda, já que o Bluesky é rejeitado lá com 400 PLATFORM_SETTING_UNKNOWN. Publique a imagem e, em seguida, adicione texto alternativo no aplicativo do Bluesky. Não diga ao usuário que o texto alternativo foi publicado.

  2. Senha de aplicativo necessária: Você deve usar uma senha de aplicativo do Bluesky, NÃO sua senha principal da conta. Gere uma em Configurações > Senhas de Aplicativo.

  3. Todas as imagens convertidas para JPEG: Independentemente do formato de entrada (PNG, WebP, GIF), todas as imagens são convertidas para JPEG antes do upload.

  4. Limite rígido de 2.000.000 bytes para imagens: o AT Protocol impõe um teto exato em bytes decimais, não 2 MiB arredondados. Comprima para 80-85% de qualidade JPEG e verifique a contagem de bytes.

  5. ID de plataforma baseado em DID: Diferente de outras plataformas que usam IDs numéricos, o Bluesky usa o formato did:plc:xxx.

  6. Verificação de e-mail para vídeo: Você deve verificar seu e-mail no Bluesky antes de enviar vídeos.

  7. Limite diário de 25 vídeos: Máximo de 25 vídeos OU 10 GB por dia.

Melhores Práticas

Conteúdo

  1. Posts concisos: 300 caracteres é mais curto que Twitter - seja direto
  2. Hashtags naturais: 1-2 hashtags relevantes funcionam bem
  3. Texto alternativo: vale a pena adicionar, mas você tem que fazê-lo no aplicativo do Bluesky após a postagem; a API não pode transportá-lo
  4. URLs funcionam: Links são clicáveis (ao contrário de algumas plataformas)

Timing

  • Plataforma em crescimento: Menos concorrida que o X, mais fácil de ser notado
  • Público com conhecimento técnico: Pesado em desenvolvedores e early adopters
  • Frequência: 1-3 posts por dia

Engajamento

  • O Bluesky favorece conversas autênticas
  • Responda a comentários para construir comunidade
  • Siga usuários relevantes para expandir sua rede

Solução de Problemas

ErroCausaSolução
"Credenciais inválidas"Tipo de senha erradoUse senha de aplicativo, não senha principal
"Imagem muito grande"Acima de 2.000.000 bytesComprima para 80-85% de qualidade JPEG
"Conteúdo muito longo"Acima de 300 caracteresEncurte o conteúdo (sem threading automático)
"Limite diário de vídeos"25 vídeos atingidosAguarde 24 horas
"E-mail não verificado"Tentativa de upload de vídeoVerifique o e-mail nas configurações do Bluesky

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

publora/instagram-post

Use when the user wants to post or schedule to Instagram through Publora: a single image, a 2-10 image carousel, a Reel or a Story. Requires a Business account and an image or video; text-only posts are rejected by the API. Not for Threads (use threads-post).

publora/linkedin-analytics

Analyze LinkedIn performance and manage engagement through Publora. Use when the user asks how a LinkedIn post or account performed (impressions, reach, reactions, comments, reshares, follower growth) or wants to react, comment, reshare or resolve an @mention. Statistics run over the REST API, engagement over MCP tools. Not for creating posts (use linkedin-post).

publora/linkedin-post

Use when the user wants to publish or schedule a LinkedIn post through Publora: text, a multi-image grid, a video, a PDF document, or @mentions. Not for analytics, reactions, comments or reshares (use linkedin-analytics), and not for other platforms.

publora/social-post

Use when the user wants to post or schedule to YouTube, a Facebook Page or Mastodon through Publora. YouTube needs a video on every post, Facebook publishes to Pages only, Mastodon caps at 500 characters. Not for the platforms that have their own skill.

publora/telegram-post

Use when the user wants to post or schedule to a Telegram channel or group through Publora, using a bot. Covers Telegram markdown, silent delivery, link previews and forward protection. Bot API caps media captions at 1,024 characters and videos at 50 MB. Not for other platforms (each has its own skill).

publora/threads-post

Create and schedule Threads posts with image carousels and reply control via Publora MCP. Use when the user wants to post to Meta's Threads. Multi-part threading is currently disabled by the platform, so long content stays a single post. Not for Instagram (use instagram-post) or X threads (use x-post).

publora/tiktok-post

Use when the user wants to upload or schedule a TikTok video through Publora, with privacy, comment, duet, stitch and commercial-disclosure settings. Video runs 3 seconds to 10 minutes at 23+ FPS; carousels take up to 35 images. Unaudited apps can publish private videos only. Not for Reels (use instagram-post).

publora/x-post

Use when the user wants to post or schedule to X (Twitter) through Publora, including threads auto-split past 280 characters, up to 4 images, or a video up to 140 seconds. X needs a paid Publora plan. Not for Threads or Bluesky (each has its own skill).

Habilidades Relacionadas