Communitygithub.com

Orshot-HQ/orshot-openclaw

AI 에이전트용 소셜 미디어 스케줄러 및 자동화 도구입니다. 템플릿에서 이미지, 캐러셀, 비디오를 렌더링하여 Instagram, LinkedIn, X(Twitter), TikTok, Facebook, Pinterest, Threads, Bluesky, Reddit, YouTube, Telegram, Snapchat, Google Business에 포스팅하고, 주간 콘텐츠 캘린더를 운영하며, 분석 데이터를 읽고 최적의 게시 시간을 찾아 학습하는 에이전트를 구축할 수 있습니다.

orshot-openclaw란 무엇인가요?

Orshot은 AI 에이전트가 하나의 요청으로 템플릿에서 이미지, 캐러셀, 비디오를 렌더링하고 13개 이상의 플랫폼(X(Twitter), Instagram, Facebook, LinkedIn(프로필/페이지), TikTok, YouTube, Pinterest, Reddit, Bluesky, Threads, Telegram, Snapchat, Google Business)에 포스팅할 수 있게 해주는 호스티드 MCP 서버 기반 소셜 미디어 스케줄러입니다. 또한 초안 저장, 스케줄링, 편집, 분석 보고까지 지원하여 단일 도구로 전체 콘텐츠 캘린더를 운영할 수 있습니다. MCP 서버는 OAuth 인증을 사용하며 별도의 API 키가 필요 없고, 모든 포스트를 시각적 카드로 표시해 에이전트가 쉽게 확인할 수 있습니다. Headless 작업(크론, n8n, 서버 스크립트)의 경우 REST API를 통해 API 키를 사용할 수 있습니다. 설계 원칙으로 명시적인 승인 없이는 절대 포스팅을 진행하지 않으며, 항상 초안 상태를 우선으로 합니다. 주요 기능으로는 계정 연결 상태 확인, 템플릿 수정(modifications)을 통한 렌더링 및 게시, 미디어 URL 업로드 게시, 포스트 관리(조회, 수정, 발행, 폐기), 플랫폼별 분석(노출, 참여율, 클릭수 등) 및 최적 게시 시간 추천, 캐러셀/비디오 포맷 지원 등이 있습니다.

지원 대상✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Orshot-HQ/orshot-openclaw/tree/HEAD/skills/orshot-social-media-scheduler

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Orshot 소셜 미디어 스케줄러: 렌더링, 포스팅, 스케줄링, 학습

Orshot은 템플릿에서 이미지, 캐러셀, 비디오를 렌더링하고 13개 이상의 플랫폼에 하나의 요청으로 포스팅합니다. 또한 초안, 스케줄, 편집, 분석 보고를 지원하므로 에이전트가 두 번째 도구 없이 전체 콘텐츠 캘린더를 운영할 수 있습니다. 다른 곳에서 만든 이미지와 함께 모든 공개 미디어 URL을 첨부할 수도 있습니다.

지원 플랫폼: X (Twitter), Instagram, Facebook, LinkedIn (프로필 및 페이지), TikTok, YouTube, Pinterest, Reddit, Bluesky, Threads, Telegram, Snapchat, Google Business.

1단계: Orshot MCP 서버 연결

이 단계가 선행되어야 모든 작업이 가능합니다. MCP 경로는 붙여넣을 키가 없고, 모든 포스트를 시각적 카드로 표시하며, 에이전트에서 사용할 경로입니다.

openclaw mcp add orshot --url https://mcp.orshot.com/mcp --transport streamable-http --auth oauth
openclaw mcp login orshot

Claude Code: claude mcp add --transport http orshot https://mcp.orshot.com/mcp. 다른 MCP 클라이언트도 동일한 URL을 사용합니다.

Headless 작업 전용 (cron, n8n, 서버 스크립트): export ORSHOT_API_KEY=... 설정 후 Authorization: Bearer $ORSHOT_API_KEY 헤더로 REST API 호출.

2단계: 연결된 계정 확인

orshot_list_social_accounts            # MCP
GET /v1/social/accounts?include_health=true   # REST
# [{ "id": 1, "platform": "linkedin", "account_name": "Acme", "account_username": "acme", "health": { "status": "ok" } }]

계정 목록이 표시되면 포스팅할 수 있습니다. 각 계정의 숫자 id와 재연결이 필요한지 알려주는 health 플래그를 기록하세요.

목록이 비어 있다면 사람이 수동으로 계정을 연결해야 합니다. API로는 계정을 연결할 수 없습니다. 사용자에게 Orshot 대시보드(Workspace > Socials > Accounts, https://orshot.com/dashboard, 워크스페이스의 Socials 섹션)로 안내하세요. 각 플랫폼은 자체 OAuth 로그인으로 연결됩니다. 소셜 게시는 유료 플랜의 애드온으로, 연결된 계정당 월 $12이며 포스트당 추가 크레딧은 없습니다. 무료 플랜은 계정을 연결할 수 없습니다. 플랜 및 애드온 정보는 https://orshot.com/pricing 에서 확인하세요. 이 내용을 한 번 명확하게 설명하고 사용자가 다시 연락할 때까지 기다리세요. 이후 orshot_list_social_accounts를 호출하면 새 계정이 표시됩니다.

핵심 워크플로우

  1. 연결 및 계정 목록 확인 (위 참조).
  2. 미디어 결정. 템플릿에서 렌더링 (templateId + modifications) 또는 기존 media_url 사용.
  3. 먼저 초안 작성. 사용자가 지금 게시하겠다고 명확히 말하지 않는 한 status: "draft"로 포스트를 생성합니다.
  4. 사용자에게 미리보기, 캡션, 계정 및 시간을 보여줍니다. MCP에서 orshot_get_social_post는 시각적 카드를 렌더링합니다.
  5. 사용자가 변경한 사항을 편집하고 (orshot_update_social_post), 발행 (orshot_publish_social_draft) 또는 스케줄링 (status: "scheduled" + scheduled_for)합니다.
  6. 비동기 플랫폼(Instagram, TikTok) 완료 후 상태 확인: processing이 published 또는 failed로 변경됩니다.
  7. 하루 후 분석 데이터 읽기, 다음 스케줄 전 최적 시간 인사이트 확인.

MCP 도구 맵

작업도구
계정 목록orshot_list_social_accounts
렌더링 + 포스팅 원스텝orshot_render_template with publish
미디어 URL 포스팅orshot_publish_social_post
포스트 목록 / 읽기orshot_list_social_posts, orshot_get_social_post (시각적 카드)
편집 / 발행 / 폐기orshot_update_social_post, orshot_publish_social_draft, orshot_discard_social_post
분석orshot_get_social_analytics, orshot_get_social_analytics_daily, orshot_get_social_followers, orshot_get_social_post_analytics
최적 게시 시간orshot_get_best_time_to_post

MCP 서버는 명시적인 승인이 없으면 기본적으로 status: "draft"를 사용합니다. 이 방식을 유지하세요.

필수 호출

한 번의 호출로 렌더링 및 포스팅 (또는 초안, 스케줄)

MCP에서는 동일한 publish 객체와 함께 orshot_render_template을 사용합니다.

await fetch("https://api.orshot.com/v1/studio/render", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: `Bearer ${apiKey}` },
  body: JSON.stringify({
    templateId: 123,
    modifications: { headline: "Ship day", stat: "2,000 renders" },
    response: { type: "url", format: "png" },
    publish: {
      accounts: [1, 3],
      content: "Caption up to 5000 chars",
      status: "scheduled",               // published | draft | scheduled
      scheduled_for: "2026-11-01T14:00:00Z",
      timezone: "America/New_York",
      platformOptions: {
        "3": { firstComment: "https://orshot.com", disableLinkPreview: true }, // LinkedIn
      },
    },
  }),
});

여러 페이지 템플릿은 지원되는 플랫폼에서 캐러셀로 게시됩니다. 응답에는 data.content (렌더 결과)와 계정당 하나의 항목이 있는 publish[]가 포함됩니다.

이미 보유한 미디어 포스팅

orshot_publish_social_post 또는 다음 명령어 사용:

curl -s -X POST https://api.orshot.com/v1/social/publish \
  -H "Authorization: Bearer $ORSHOT_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "accounts": [2],
    "content": "Six things nobody tells you",
    "media_urls": ["https://.../1.png", "https://.../2.png", "https://.../3.png"],
    "status": "draft",
    "tiktokSettings": { "autoAddMusic": true }
  }'
필드참고
accounts필수, 숫자 ID
content캡션, 최대 5000자
media_url / media_urls하나 또는 여러 개의 공개 URL; 여러 개 = 캐러셀
statuspublished (REST 기본값), draft, scheduled
scheduled_forISO 8601, 최소 60초 이후, scheduled 상태에서만 사용
timezoneIANA 시간대 이름
platformOptions계정 ID별 옵션: LinkedIn firstComment, disableLinkPreview; Pinterest title, link
tiktokSettings.autoAddMusic최상위 레벨, TikTok 사진 캐러셀

응답: { post_id, status, platforms: [{ account_id, platform, status, url, error, action }] }. status는 published, scheduled, drafted, partial, processing, failed 중 하나입니다. action: "reconnect"는 사용자가 대시보드에서 해당 계정을 다시 연결해야 함을 의미합니다.

보류 포스트 관리

GET    /v1/social/posts?status=draft&limit=25        # also scheduled | published | processing | partial | failed, platform=, account_id=, cursor=
GET    /v1/social/posts/:id
PATCH  /v1/social/posts/:id                          # content, media_urls, accounts, status (draft|scheduled), scheduled_for, timezone, platformOptions
POST   /v1/social/posts/:id/publish                  # send a held post now
POST   /v1/social/posts/:id/sync                     # refresh provider status
DELETE /v1/social/posts/:id                          # discard; refused once any account went live

각 포스트의 is_editable 및 is_discardable 필드는 현재 허용되는 작업을 알려줍니다. 편집은 다시 렌더링하지 않으며 비용이 들지 않습니다.

분석

GET /v1/social/analytics?platform=linkedin&source=orshot      # per post: impressions, engagement, clicks, rate; followers per account
GET /v1/social/analytics/daily?from=2026-10-01&to=2026-10-21  # day by day
GET /v1/social/analytics/accounts?from=2026-09-01             # follower history and growth per account
GET /v1/social/analytics/insights?platform=instagram          # best day-and-hour slots (UTC), frequency vs engagement, decay

source는 all, orshot 또는 external (플랫폼에서 동기화된 포스트, 첫날부터 내역 존재)입니다. refresh=1은 캐시를 무시합니다. 분당 분석 요청 한도: 10개. 인사이트는 게시 기록이 필요하므로 새 계정은 빈 슬롯을 반환합니다.

일반적인 패턴

패턴 1: 주간 콘텐츠 캘린더를 초안으로 작성

하나의 템플릿에서 다른 modifications로 일곱 개의 포스트를 렌더링하고, 각각 status: "draft"로 생성한 후, orshot_list_social_posts로 사용자에게 목록을 보여주고 승인된 포스트를 발행 또는 스케줄링합니다. 캡션이나 시간이 변경될 때마다 업데이트합니다.

패턴 2: 최적 게시 시간에 스케줄링

해당 플랫폼에 대해 orshot_get_best_time_to_post를 호출하고, 최상위 슬롯(UTC)을 가져와 사용자의 시간대로 변환한 후 scheduled_for로 전달합니다. 슬롯이 비어 있으면 임의의 시간을 생성하지 말고 사용자에게 시간을 요청합니다.

패턴 3: 모든 플랫폼에 크로스포스트, 플랫폼별 추가 기능 활용

모든 ID를 포함한 accounts 배열을 사용합니다. 링크는 platformOptions[<linkedin id>].firstComment에, Pinterest용 title과 link, TikTok 사진 포스트용 tiktokSettings.autoAddMusic을 설정합니다. content는 대상 플랫폼 중 가장 짧은 제한 길이를 유지하세요 (X가 가장 짧습니다).

패턴 4: 여러 페이지 템플릿에서 캐러셀 생성

pageN@ 키와 함께 5~10 페이지 템플릿을 렌더링하고 publish를 추가합니다. Orshot은 각 페이지를 업로드하고 Instagram, LinkedIn, TikTok (사진 모드), Threads 및 Bluesky에 캐러셀로 게시합니다. orshot-carousel 스킬에 6슬라이드 공식이 있습니다.

패턴 5: 결과에서 학습

매일: source: "orshot"로 orshot_get_social_analytics 호출, 참여율로 정렬 후 상위 25%의 훅 스타일 유지, 하위 25% 폐기, 다음 주 초안 작성. 변경 사항을 기록하여 사용자가 로그를 읽을 수 있도록 합니다.

패턴 6: 실패 복구

partial 또는 failed와 함께 action: "reconnect" 발생 시: 사용자에게 대시보드(Workspace > Socials > Accounts)에서 어떤 계정을 다시 연결해야 하는지 알리고, 포스트를 초안으로 유지한 후 사용자가 확인하면 orshot_publish_social_draft로 재시도합니다. 다른 error: 그대로 표시하고, 무턱대고 재시도하지 마세요.

안전 규칙

  • 해당 포스트에 대한 명시적인 승인 없이 절대 게시하지 마세요. "준비", "초안", "보여줘"는 status: "draft"를 의미합니다.
  • 보내기 전에 정확한 계정(플랫폼 및 사용자 이름), 캡션 및 시간을 다시 말해주세요.
  • 사용자가 요청하지 않은 포스트는 폐기하지 마세요.
  • 사용자에게 더 많은 계정을 연결하라고 제안하기 전에 월 $12 계정당 애드온에 대해 한 번 언급하세요.
  • REST를 사용할 때는 API 키를 환경 변수에 유지하고 절대 출력하지 마세요.

자주 발생하는 실수

  1. 계정 ID는 숫자이며 계정별로 고유합니다. 두 개의 LinkedIn 계정은 두 개의 ID를 갖습니다. 플랫폼 이름이 아닌 ID로 게시하세요.
  2. PDF는 어디에도 게시할 수 없습니다. png, jpg 또는 webp(또는 비디오 플랫폼의 경우 mp4)로 렌더링하세요.
  3. TikTok과 YouTube는 비디오를 필요로 하며 단일 이미지를 허용하지 않습니다. TikTok은 사진 캐러셀(여러 이미지)을 허용합니다. Google Business는 이미지만 허용합니다.
  4. scheduled_for이 60초 미만이면 거부되며, draft 또는 published 상태와 함께 사용할 수 없습니다.
  5. Instagram과 TikTok은 비동기식으로 게시됩니다. processing은 실패가 아닙니다. 보고 전에 포스트를 동기화하거나 다시 읽으세요.
  6. 게시 실패가 렌더링 실패를 의미하지는 않습니다. 렌더링이 성공했더라도 publish[]를 읽으세요.
  7. 미디어 URL은 공개되어야 합니다. Orshot 렌더 URL은 공개입니다. 서명된 URL이나 localhost URL은 사용할 수 없습니다.
  8. 5000자를 초과하는 캡션은 거부됩니다. 플랫폼 제한은 더 낮습니다. X가 가장 짧습니다.
  9. 분석은 모든 분석 엔드포인트에서 분당 10개 요청으로 제한됩니다.
  10. 무료 플랜 워크스페이스는 계정을 연결할 수 없습니다. /social/*에서 403과 함께 플랜 메시지가 표시되면 인증 버그가 아닌 결제 상태 문제입니다. https://orshot.com/pricing을 안내하세요.

빠른 참조

openclaw mcp add orshot --url https://mcp.orshot.com/mcp --transport streamable-http --auth oauth && openclaw mcp login orshot

GET    /v1/social/accounts?include_health=true   # orshot_list_social_accounts
POST   /v1/studio/render            # + publish: { accounts, content, status, scheduled_for, timezone, platformOptions, tiktokSettings }   orshot_render_template
POST   /v1/social/publish           # { accounts, content, media_url | media_urls, status, scheduled_for, timezone, platformOptions, tiktokSettings }   orshot_publish_social_post
GET    /v1/social/posts?status=draft             # orshot_list_social_posts
GET    /v1/social/posts/:id                      # orshot_get_social_post
PATCH  /v1/social/posts/:id                      # orshot_update_social_post
POST   /v1/social/posts/:id/publish              # orshot_publish_social_draft
POST   /v1/social/posts/:id/sync
DELETE /v1/social/posts/:id                      # orshot_discard_social_post
GET    /v1/social/analytics                      # orshot_get_social_analytics
GET    /v1/social/analytics/daily?from=&to=      # orshot_get_social_analytics_daily
GET    /v1/social/analytics/accounts?from=       # orshot_get_social_followers
GET    /v1/social/analytics/insights?platform=   # orshot_get_best_time_to_post

문서: https://orshot.com/docs/publish/introduction.md, https://orshot.com/docs/api-reference/social-publish.md, https://orshot.com/docs/api-reference/social-posts-list.md. 렌더링 세부 사항은 orshot 스킬에 있습니다.

Individual skills in this repo

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

Orshot-HQ/orshot-openclaw

Automate video, PDF and image generation from templates and social media posting. Image generation, PDF generation and video generation from your templates with the Orshot API, over the hosted Orshot MCP server (OAuth, no key) or REST. Use to generate images, OG images, social media posts, carousels, thumbnails, ad creatives, banners, certificates, invoices and PDF documents from a template, render video with animations and audio, resize one design to every social format, batch render personalized images, take tweet screenshots and website screenshots, and schedule and post renders to Instagram, LinkedIn, X, TikTok, Facebook, Pinterest, Threads, Bluesky, Reddit, YouTube, Telegram, Snapchat and Google Business. Load for any Orshot task; it carries the gotchas (parameterId keys, page1@ prefixes, async video) that otherwise break renders.

Orshot-HQ/orshot-openclaw

Social media content generator and social media design for AI agents. Create on-brand Instagram post, LinkedIn post, TikTok, Reels, story, ad, banner, thumbnail and carousel templates with Orshot, then render them with new copy on every post. Use for content creation for Instagram, LinkedIn, TikTok, X, Facebook, YouTube and Pinterest, for a content creator or marketing team that wants designed templates instead of one-off AI images, as a Canva alternative an agent can drive, and when refining a template that looks generic. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color, restrained motion), consults the brand kit first, varies layouts so designs never repeat, and runs a render-and-critique loop over the hosted Orshot MCP server.

관련 스킬