Files
nevo-david_postiz/FEATURES.md

7.5 KiB

Postiz CLI - Feature Summary

Complete Feature Set

Posts with Comments and Media - FULLY SUPPORTED

The Postiz CLI fully supports the complete API structure including:

Posts with Comments

  • Main post content
  • Multiple comments/replies
  • Each comment can have different content
  • Configurable delays between comments

Multiple Media per Post/Comment

  • Each post can have multiple images (array of MediaDto)
  • Each comment can have its own images (separate MediaDto arrays)
  • Support for various image formats (PNG, JPG, JPEG, GIF)
  • Media can be URLs or uploaded files

Multi-Platform Posting

  • Post to multiple platforms in one request
  • Platform-specific content for each integration
  • Different media for different platforms

Advanced Features

  • Scheduled posting with precise timestamps
  • URL shortening support
  • Tags and metadata
  • Delays between comments (in minutes)
  • Draft mode for review before posting

Usage Modes

1. Simple Mode (Command Line)

For quick, simple posts:

# Single post
postiz posts:create -c "Hello!" -i "twitter-123"

# With multiple images
postiz posts:create -c "Post" --image "img1.jpg,img2.jpg,img3.jpg" -i "twitter-123"

# With comments (no custom media per comment)
postiz posts:create -c "Main" --comments "Comment 1;Comment 2" -i "twitter-123"

Limitations of Simple Mode:

  • Comments share the same media as the main post
  • Cannot specify different images for each comment
  • Cannot set custom delays between comments

2. Advanced Mode (JSON Files)

For complex posts with comments that have their own media:

postiz posts:create --json complex-post.json

Capabilities:

  • Each comment can have different media
  • Custom delays between comments
  • Multiple posts to different platforms
  • Platform-specific content and media
  • Full control over all API features

Real-World Examples

Example 1: Product Launch with Follow-up Comments

Main Post: Product announcement with 3 product images Comment 1: Feature highlight with 1 feature screenshot (posted 1 hour later) Comment 2: Special offer with 1 promotional image (posted 2 hours later)

{
  "type": "schedule",
  "date": "2024-03-15T09:00:00Z",
  "posts": [{
    "integration": { "id": "twitter-123" },
    "value": [
      {
        "content": "🚀 Launching our new product!",
        "image": [
          { "id": "p1", "path": "product-1.jpg" },
          { "id": "p2", "path": "product-2.jpg" },
          { "id": "p3", "path": "product-3.jpg" }
        ]
      },
      {
        "content": "⭐ Key features you'll love:",
        "image": [
          { "id": "f1", "path": "features-screenshot.jpg" }
        ],
        "delay": 60
      },
      {
        "content": "🎁 Limited time: 50% off!",
        "image": [
          { "id": "o1", "path": "special-offer.jpg" }
        ],
        "delay": 120
      }
    ]
  }]
}

Example 2: Tutorial Thread

Main Post: Introduction with overview image Tweets 2-5: Step-by-step with different screenshots for each step

{
  "type": "now",
  "posts": [{
    "integration": { "id": "twitter-123" },
    "value": [
      {
        "content": "🧵 How to use our CLI (1/5)",
        "image": [{ "id": "1", "path": "overview.jpg" }]
      },
      {
        "content": "Step 1: Installation (2/5)",
        "image": [{ "id": "2", "path": "step1.jpg" }],
        "delay": 2000
      },
      {
        "content": "Step 2: Configuration (3/5)",
        "image": [{ "id": "3", "path": "step2.jpg" }],
        "delay": 2000
      },
      {
        "content": "Step 3: First post (4/5)",
        "image": [{ "id": "4", "path": "step3.jpg" }],
        "delay": 2000
      },
      {
        "content": "You're all set! 🎉 (5/5)",
        "image": [{ "id": "5", "path": "done.jpg" }],
        "delay": 2000
      }
    ]
  }]
}

Example 3: Multi-Platform Campaign

Same event, different content per platform:

{
  "type": "schedule",
  "date": "2024-12-25T12:00:00Z",
  "posts": [
    {
      "integration": { "id": "twitter-123" },
      "value": [
        {
          "content": "Short, catchy Twitter post 🐦",
          "image": [{ "id": "t1", "path": "twitter-square.jpg" }]
        },
        {
          "content": "Thread continuation with details",
          "image": [{ "id": "t2", "path": "twitter-details.jpg" }],
          "delay": 5
        }
      ]
    },
    {
      "integration": { "id": "linkedin-456" },
      "value": [{
        "content": "Professional, detailed LinkedIn post with business context...",
        "image": [
          { "id": "l1", "path": "linkedin-wide.jpg" },
          { "id": "l2", "path": "linkedin-graph.jpg" }
        ]
      }]
    },
    {
      "integration": { "id": "facebook-789" },
      "value": [
        {
          "content": "Engaging Facebook post for family/friends audience",
          "image": [
            { "id": "f1", "path": "facebook-photo1.jpg" },
            { "id": "f2", "path": "facebook-photo2.jpg" },
            { "id": "f3", "path": "facebook-photo3.jpg" }
          ]
        },
        {
          "content": "More info in the comments!",
          "image": [{ "id": "f4", "path": "facebook-cta.jpg" }],
          "delay": 300000
        }
      ]
    }
  ]
}

API Structure Reference

Complete CreatePostDto

{
  type: 'now' | 'schedule' | 'draft' | 'update',
  date: string,              // ISO 8601 date
  shortLink: boolean,
  tags: Array<{
    value: string,
    label: string
  }>,
  posts: Array<{
    integration: {
      id: string             // From integrations:list
    },
    value: Array<{           // Main post + comments
      content: string,
      image: Array<{         // Multiple images per post/comment
        id: string,
        path: string,
        alt?: string,
        thumbnail?: string
      }>,
      delay?: number,        // Minutes
      id?: string
    }>,
    settings: {
      __type: 'EmptySettings'
    }
  }>
}

For AI Agents

When to Use Simple Mode

  • Quick single posts
  • No need for comment-specific media
  • Posting to 1-2 platforms
  • Same content across platforms

When to Use Advanced Mode (JSON)

  • Comments need their own media ← YOUR USE CASE
  • Multi-platform with different content
  • Threads with step-by-step images
  • Timed follow-up comments
  • Complex campaigns

AI Agent Tips

  1. Generate JSON programmatically - Don't write JSON manually
  2. Validate structure - Use TypeScript types or JSON schema
  3. Test with "draft" type - Review before posting
  4. Use unique image IDs - Generate with UUID or random strings
  5. Set appropriate delays - Twitter: 2-5s, others: 30s-1min+

Files and Documentation

  • examples/post-with-comments.json - Post with comments, each having media
  • examples/multi-platform-post.json - Multi-platform campaign
  • examples/thread-post.json - Twitter thread example
  • examples/EXAMPLES.md - Comprehensive guide with all patterns
  • SKILL.md - Full AI agent usage guide
  • README.md - Installation and basic usage

Summary

Question: Does it support posts with comments, each with media?

Answer: YES!

  • Posts can have multiple comments
  • Each comment can have its own media (multiple images)
  • Each post can have multiple images
  • Use JSON files for full control
  • See examples/ directory for working templates
  • Fully compatible with the Postiz API structure

The CLI supports the complete Postiz API including all advanced features!