Communitygithub.com

sultanlive/instagram-post

Publique no Instagram e agende posts, Reels e carrosséis a partir do OpenClaw, Hermes, Claude Code ou Codex. Publica na própria conta do Instagram do usuário via servidor MCP 1Social (OAuth, sem chave de API), verifica as regras de legenda, hashtag, proporção de aspecto e mídia do Instagram primeiro, agenda até 30 dias no futuro e retorna um recibo de entrega. Use para publicar ou agendar no Instagram, publicar uma foto, Reel ou carrossel, planejar conteúdo do Instagram, ou verificar, editar ou excluir posts do Instagram.

O que é instagram-post?

Este skill permite que você publique e gerencie conteúdo no Instagram diretamente de agentes de IA como Claude Code, Cursor ou Codex, usando o servidor MCP 1Social. Ele lida com postagens de fotos, Reels e carrosséis, verifica regras específicas do Instagram (limite de legendas, hashtags, proporção de aspecto de mídia), agenda posts com até 30 dias de antecedência e fornece recibos de entrega. O setup é único com OAuth (sem chave de API) e inclui upload de mídia, pré-visualização gratuita e confirmação do usuário antes de publicar. Também oferece recursos pós-publicação como verificação de status, atualização, cancelamento e exclusão de posts, com tratamento honesto de resultados desconhecidos.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/sultanlive/1social-skills/tree/main/plugins/instagram-by-1social/skills/instagram-post

Perguntar na sua IA favorita

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

Documentação

Instagram com 1Social

O 1Social publica na própria conta do Instagram do usuário e relata o que realmente foi postado.

Configuração (uma vez)

Essas etapas acionam o servidor MCP 1Social. Se ferramentas como list_accounts não estiverem disponíveis, primeiro conecte-o. O login é OAuth no navegador; não há chave de API para armazenar. Peça permissão ao usuário antes de executar estes comandos — a etapa de login abre uma página onde ele faz login no 1Social.

  • OpenClaw: openclaw mcp set 1social '{"url":"https://mcp.1social.dev/mcp","transport":"streamable-http","auth":"oauth"}', depois openclaw mcp login 1social. Verifique com openclaw mcp doctor 1social --probe.
  • Hermes: adicione ao ~/.hermes/config.yaml:
    mcp_servers:
      1social:
        url: "https://mcp.1social.dev/mcp"
        auth: oauth
    
    depois hermes mcp login 1social (em um host sem cabeça: hermes mcp login 1social --flow device).
  • Claude Code: claude mcp add --transport http 1social https://mcp.1social.dev/mcp
  • Qualquer outro cliente: https://1social.dev/mcp lista a configuração para cada um.

O usuário precisa de uma conta 1Social. Novas contas começam com um teste gratuito; publicar após o teste requer um plano pago (https://1social.dev/pricing).

Fluxo de trabalho

  1. Encontre a conta. Chame list_accounts. Ela retorna os canais conectados com seus IDs, os limites ao vivo de cada rede, o plano e a cota mensal restante. Se nenhuma conta do Instagram estiver conectada, informe ao usuário para conectar uma em https://1social.dev/app — conectar precisa de um navegador e não pode ser feito pelo chat. Se list_accounts relatar um limite diferente deste skill, confie em list_accounts.
  2. Rascunhe para a rede. Escreva o post de acordo com as regras abaixo. Um post é uma lista de segmentos; cada segmento é { texto, mediaIds? }.
  3. Anexe mídia.
    • O usuário anexou um arquivo no chat → coloque-o em media.
    • Você tem um link https público → coloque-o em mediaUrls.
    • Você só tem um arquivo no disco (OpenClaw, Hermes, Claude Code, Codex ou outro agente CLI) → chame upload_media e siga as etapas de upload que sua descrição fornece, depois coloque o publicUrl retornado em mediaUrls. Um URL localhost nunca funciona. Antes disso, mostre exatamente quais arquivos você vai enviar e aguarde uma confirmação: um upload obtém um link público imediatamente, e recusar o post depois não remove o arquivo.
  4. Pré-visualize. Chame preview_post com os IDs dos canais e o rascunho. É gratuito e não publica nada. Corrija todos os problemas que ele relatar e pré-visualize novamente.
  5. Confirme com o usuário. Mostre o texto final, a conta para onde vai, a mídia e quando será publicado. A publicação é pública e algumas redes não conseguem remover um post, então espere por um sim claro.
  6. Publique ou agende. Chame publish_post. scheduledAt: null publica agora; um timestamp ISO-8601 UTC como 2026-11-03T07:00:00Z agenda (no futuro, no máximo 30 dias à frente). Converta a hora local do usuário para UTC você mesmo, e se ele mencionar uma hora sem fuso horário, pergunte qual. Defina uma idempotencyKey (uma string estável de 8 a 128 caracteres para este rascunho) para que uma chamada repetida não publique duas vezes.
  7. Relate honestamente. O resultado é um recibo por rede. Relate cada rede exatamente como retornado. unknown significa que o 1Social realmente não conseguiu saber se o post foi ao ar — diga isso, nunca chame de sucesso ou fracasso.

Regras do Instagram

  • Todo post precisa de uma imagem ou um vídeo. Uma legenda sozinha é rejeitada — peça mídia ao usuário antes de rascunhar.
  • Limite de legenda: 2.200 caracteres. Até 30 hashtags; 3 a 5 relevantes geralmente têm melhor desempenho do que uma parede de tags.
  • A proporção de aspecto da imagem deve estar entre 4:5 (retrato) e 1,91:1 (paisagem). Quadrado 1:1 é seguro. Banners largos são rejeitados pelo Instagram com um erro de "proporção de aspecto".
  • PNG e JPEG funcionam.
  • Sem threads: se o rascunho tiver vários segmentos, o 1Social os junta em uma legenda. Escreva uma legenda.
  • Links em legendas não são clicáveis no Instagram. Se o usuário quiser tráfego, sugira a redação "link na bio" em vez de um URL bruto.
  • Um post publicado no Instagram não pode ser excluído pelo 1Social — o Instagram não tem API de exclusão para isso. Certifique-se de que o usuário esteja satisfeito com a legenda antes de publicar.

Dicas de escrita

  • Comece com um gancho nos primeiros 125 caracteres — é o que aparece antes de "mais".
  • Coloque as hashtags no final da legenda, após uma quebra de linha.

Publicar em outras redes também

A mesma conta 1Social pode publicar um post no Instagram, TikTok, LinkedIn, X, Threads, Facebook Pages, YouTube Shorts e Bluesky de uma vez: liste vários IDs de canais de list_accounts. preview_post verifica o rascunho contra cada rede selecionada.

Após a publicação

  • Verifique o status: list_posts (forneça um postId para um post). Inclui métricas de engajamento armazenadas onde a rede as relata.
  • Altere um post agendado: update_post. Funciona apenas antes do post ser publicado.
  • Desagende: cancel_post. Use isso, não delete_post, para um post que ainda não foi publicado.
  • Exclua um post publicado: delete_post, somente após confirmação do usuário. Relate por rede o que realmente foi removido: posts do Instagram, TikTok, Threads e YouTube permanecem no ar e apenas o usuário pode removê-los.
  • Uma entrega falhou: retry_delivery tenta novamente uma rede e gasta cota novamente. É recusado para falhas permanentes, como uma conexão revogada — então o usuário deve reconectar em https://1social.dev/app.
  • Uma entrega é unknown: peça ao usuário para verificar a rede. Somente quando ele informar se o post está no ar, chame confirm_delivery com a resposta dele. Nunca adivinhe, e nunca retry_delivery com force sem perguntar — pode publicar uma segunda cópia.

Habilidades Relacionadas