← Files X Posts by Content MillARCHIVED FILE

plugin.json

9.93 KB · Nov 13, 2026 · 06:10 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "content-mill-x",
  "version": "1.0.0",
  "description": "X Posts by Content Mill helps you draft short updates, add photos, GIFs or video, schedule or publish to your own connected X accounts, and check post status.",
  "author": {
    "name": "Content Mill"
  },
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "X Posts by Content Mill",
        "shortDescription": "Draft and schedule X posts",
        "longDescription": "X Posts by Content Mill is an X post scheduler for connected X accounts in ChatGPT. Plan short updates for X, formerly Twitter, write post copy, save drafts, prepare photos, GIFs or video, preview the exact result, and schedule or publish only after approval. The plugin connects to Content Mill and works only with X accounts you have linked to your Content Mill account.\n\nPlan and draft X posts: Turn a launch, event, announcement, product update, community message, or behind-the-scenes idea into concise copy for your X account. Ask ChatGPT to list your connected X accounts and check their connection status before choosing a destination. Save a text-only draft or add supported media to review later. Saving a draft never sends anything to X. You can inspect a draft and update its text, media, or target X account while it is still a draft.\n\nWrite within X posting limits: Content Mill can return the current text, image, GIF, and video requirements before you compose. The server limits X posts to 280 characters and validates the copy before creating a draft or preview. Text-only posts are supported, so media is optional. If a proposed post is too long or its media is unsupported, revise it based on the returned reason. Check the server's current limits rather than assuming every file or format will work.\n\nPrepare images, GIFs, and video: Add supported media from a public HTTPS link, or upload a file from the conversation to Content Mill. The service checks file type, size, image dimensions, and video properties before a post uses the file. An X post can include up to four images, one GIF, or one video; these media types cannot be mixed in a single post. JPEG, PNG, and WebP images are supported by the server's X rules. Ask for the platform limits before writing media-heavy content, then use the hosted media URL returned by the upload workflow in your draft or preview.\n\nSchedule X posts with approval: Choose a connected X account and a future date and time with a clear time zone, or prepare a post for immediate publication after approval. Content Mill validates the destination, copy, media, and schedule, then creates a preview showing exactly what would go out and when. ChatGPT must show you that preview and wait for explicit approval. If you change the words, account, image, GIF, video, or time, it must create a new preview. The preview token is single-use. A draft or preview alone does not publish anything.\n\nTrack your X posting schedule: Ask which posts are drafts, scheduled, publishing, published, or failed. List recent posts, open one to see its text, target account, media, and scheduled time, and check the live X link when the service returns it. Publishing is asynchronous, so a newly approved post may first appear as Scheduled or Publishing before its final result is available. You can remove a draft or cancel a scheduled post before it goes out. Published posts cannot be edited or removed through this plugin.\n\nTry prompts such as: \u2018Which X accounts are connected?\u2019 \u2018Write a short launch post and save it as a draft.\u2019 \u2018What are the X character, photo, GIF, and video limits?\u2019 \u2018Schedule this image and post for tomorrow at 09:00 UTC; show me the preview and wait for my approval.\u2019 \u2018What X posts are scheduled this week?\u2019 \u2018Did my latest X post publish?\u2019 These requests cover X post writing, media preparation, scheduling, approval before publication, and post-status review using connected accounts and actual tool results.\n\nBuilt for creators, social media managers, small businesses, agencies, and teams who want an X posting workflow in conversation. The plugin handles post creation and status for connected X accounts. It does not read or send direct messages, manage replies or comments, create ads, provide audience analytics, or access accounts on other social platforms. A Content Mill account and connected X account are needed for account-specific actions. Content Mill is independent and is not affiliated with or endorsed by X.",
        "developerName": "Content Mill",
        "category": "Business & Operations",
        "defaultPrompt": [
          "Which of my X accounts are connected?",
          "Help me draft a short X post for my latest announcement.",
          "Show me my scheduled X posts."
        ],
        "websiteURL": "https://contentmill.dev/x-plugin",
        "supportURL": "https://contentmill.dev/support",
        "privacyPolicyURL": "https://contentmill.dev/privacy",
        "termsOfServiceURL": "https://contentmill.dev/terms",
        "logo": "./assets/icon-512.png",
        "composerIcon": "./assets/icon-512.png"
      },
      "review": {
        "demo_recording_url": "https://drive.google.com/file/d/1A_v5aVYdHFffv7vCRRAC_7A82VwSx9Lr/view?usp=sharing",
        "prompts": [
          "Help me prepare an X post and show me a preview before publishing.",
          "What X posts do I have scheduled?"
        ],
        "test_cases": {
          "positive": [
            {
              "description": "Requires a reviewer account with one connected X account. Check that only X accounts and their live connection status are returned.",
              "prompt": "Which of my X accounts are connected and ready to post?",
              "tools_triggered": "list_social_accounts",
              "expected_behavior": "Call list_social_accounts. Name each returned X account and its connection status. If none is connected, say so and explain that one must be connected in Content Mill. Do not report accounts on other platforms."
            },
            {
              "description": "Check X text and media constraints before writing. Text-only posts are allowed; image, GIF, and video rules come from the tool.",
              "prompt": "How long can my X post be, and can I post without an image or video?",
              "tools_triggered": "get_platform_limits",
              "expected_behavior": "Call get_platform_limits and summarize the returned X requirements, including the text limit and whether media is required. Report image, GIF, and video constraints only as supported by the tool response. Do not create a post."
            },
            {
              "description": "Requires one connected reviewer X account. Save a text-only draft without sending it to X.",
              "prompt": "Save an X draft that says 'A small update from our team.' Do not publish it.",
              "tools_triggered": "list_social_accounts, create_draft",
              "expected_behavior": "Find the connected X account with list_social_accounts, then call create_draft with its account_id, the exact text, and no media URLs. Confirm the returned Draft status and post_id. Do not call preview_post or publish_post."
            },
            {
              "description": "Requires a reviewer account with at least one scheduled X post, or a truthful empty-state result if none exists.",
              "prompt": "Show me my scheduled X posts and when they are due.",
              "tools_triggered": "list_posts",
              "expected_behavior": "Call list_posts with status Scheduled. Report only returned X post targets and scheduled_at values. If none are returned, say that no scheduled X posts were found without inventing one."
            },
            {
              "description": "Requires a connected reviewer X account and the public square PNG at https://contentmill.dev/icon-512.png. The reviewer approves only after seeing the preview in a follow-up message.",
              "prompt": "Schedule an X post for tomorrow at 09:00 UTC with the text 'A look behind the scenes' and this image: https://contentmill.dev/icon-512.png. Show me the preview and wait for my approval.",
              "tools_triggered": "list_social_accounts, get_platform_limits, upload_media_from_url, preview_post, publish_post, get_post",
              "expected_behavior": "Select only a connected X account. Call upload_media_from_url for the PNG without JPEG conversion, then preview_post with the returned hosted media URL and a future scheduled_at value for 09:00 UTC tomorrow. Show the exact text, account, image, and time; do not call publish_post before the reviewer explicitly approves in a follow-up message. After approval, call publish_post with the preview_token and confirmed=true, then get_post with the returned post_id and report its actual status."
            }
          ],
          "negative": [
            {
              "description": "The X-only server cannot post to LinkedIn. Explain the scope without invoking an X publishing tool or claiming a LinkedIn post was created.",
              "prompt": "Publish this announcement to my LinkedIn account."
            },
            {
              "description": "The server has no direct-message tools. Explain that limit without calling a Content Mill tool or claiming any X message was sent.",
              "prompt": "Read my new X direct messages and reply to each one."
            },
            {
              "description": "The server has no advertising tools. Explain that limit without calling a Content Mill tool or claiming a campaign was created.",
              "prompt": "Launch an X ad campaign for my latest post."
            }
          ]
        }
      },
      "publication": {
        "countries": [],
        "release_notes": "Initial X-only release. Draft and preview posts, add supported images, GIFs, or video, schedule or publish after approval, and check post status for connected X accounts."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: e8a2216054165817ac1d8aeb4599dbfef128c1afa0f7104dae74681166caecfa