Skip to content

feat: add Upload-Post integration for social media publishing#7

Open
mutonby wants to merge 1 commit intocalesthio:mainfrom
mutonby:feat/uploadpost-social-publishing
Open

feat: add Upload-Post integration for social media publishing#7
mutonby wants to merge 1 commit intocalesthio:mainfrom
mutonby:feat/uploadpost-social-publishing

Conversation

@mutonby
Copy link
Copy Markdown

@mutonby mutonby commented Apr 5, 2026

Summary

Adds an uploadpost_publisher tool that lets OpenMontage publish finished videos, photos, documents, and text posts directly to 11 social platforms from the publish pipeline stage — no extra code, no per-platform OAuth setup.

Supported platforms: Instagram, TikTok, YouTube, LinkedIn, Facebook, X (Twitter), Threads, Pinterest, Bluesky, Reddit, Google Business Profile.

How it works

  1. Users create a free account at upload-post.com — no credit card required.
  2. Connect social accounts in the dashboard with two clicks — no need to create developer apps, generate tokens, or configure OAuth per platform.
  3. Set UPLOADPOST_API_KEY in .env.
  4. The uploadpost_publisher tool is auto-discovered by the registry and becomes available in every pipeline's publish stage.

Free tier: 10 uploads/month across all platforms.

What's included

  • tools/publishers/uploadpost_publisher.py — Full BaseTool implementation with:

    • Video upload (POST /api/upload)
    • Photo/carousel upload (POST /api/upload_photos)
    • Document upload for LinkedIn (POST /api/upload_document)
    • Text-only posts (POST /api/upload_text)
    • Async upload with status polling
    • Scheduling (scheduled_date) and queue support (add_to_queue)
    • dry_run() preflight checks
    • Platform-specific params (Facebook pages, Pinterest boards, LinkedIn pages, Instagram stories, first comment)
  • skills/core/social-publishing.md — Layer 2 skill doc for agents

  • All 10 pipeline publish stages updated with uploadpost_publisher in tools_available

  • All 10 publish-director skills updated with "Direct Publishing" section

  • .env.example updated with UPLOADPOST_API_KEY

  • skills/INDEX.md updated with social_publishing capability family

Integration architecture

Pipeline publish stage
  → uploadpost_publisher.execute()
    → POST /api/upload (video) or /upload_photos or /upload_text or /upload_document
    → Poll GET /api/uploadposts/status until FINISHED
    → Return ToolResult with post URLs per platform
      → Maps to publish_log schema entries

The tool follows the same patterns as existing API tools (e.g., veo_video): env-based API key, get_status() check, estimate_cost(), dry_run(), retry policy, and idempotency keys.

Test plan

  • Tool imports and instantiates correctly
  • Auto-discovered by registry.discover() (appears in 67-tool list)
  • Shows in capability_catalog() under social_publishing
  • Shows in provider_menu() with install instructions
  • dry_run() correctly reports missing API key and missing files
  • Status is unavailable without API key, available with it
  • End-to-end publish with a real API key (requires Upload-Post account)

API docs: https://docs.upload-post.com

🤖 Generated with Claude Code

Add uploadpost_publisher tool that publishes finished videos, photos,
documents, and text to 11 social platforms (Instagram, TikTok, YouTube,
LinkedIn, Facebook, X, Threads, Pinterest, Bluesky, Reddit, Google
Business) via a single API call through Upload-Post.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@mutonby mutonby requested a review from calesthio as a code owner April 5, 2026 23:13
@mutonby
Copy link
Copy Markdown
Author

mutonby commented Apr 9, 2026

@calesthio I think it's the missing piece to complete the picture. Let me know if you have any questions.

@PacemakerX
Copy link
Copy Markdown

This is a good initiative @mutonby.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants