← Files OpenhandleARCHIVED FILE

plugin.json

5.56 KB · Nov 6, 2026 · 06:40 UTC

↓ Download file

See the change to this file →

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "openhandle",
  "version": "1.1.2",
  "description": "Public Instagram, TikTok, X, Reddit, and YouTube data, plus your Openhandle usage and request history.",
  "author": {
    "name": "Openhandle",
    "email": "support@openhandle.dev",
    "url": "https://openhandle.dev"
  },
  "homepage": "https://openhandle.dev/docs/mcp",
  "license": "MIT",
  "keywords": [
    "social data",
    "instagram",
    "tiktok",
    "twitter",
    "reddit",
    "youtube"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Openhandle",
        "shortDescription": "Read public social media data",
        "longDescription": "Openhandle reads public data from Instagram, TikTok, X, Reddit, and YouTube. Ask for a profile, its posts, comments, followers, search results, or a video transcript, and get the same answer the Openhandle API returns. Each request uses your Openhandle balance.\n\nWith account access, you can also ask about your own Openhandle workspace: your usage, which requests failed, and which API keys are close to their limit.\n\nOpenhandle only reads public data. It cannot post, follow, like, message, or read private accounts. It cannot change your account or its settings.",
        "developerName": "Openhandle",
        "category": "Developer Tools",
        "capabilities": [
          "Read"
        ],
        "websiteURL": "https://openhandle.dev",
        "supportURL": "https://openhandle.dev/contact",
        "privacyPolicyURL": "https://openhandle.dev/legal/privacy-policy",
        "termsOfServiceURL": "https://openhandle.dev/legal/terms-of-service",
        "defaultPrompt": [
          "Show me the latest videos from the YouTube channel MKBHD.",
          "What did I spend on Openhandle this week, per platform?",
          "Why did my Openhandle requests fail today?"
        ],
        "brandColor": "#00946F",
        "composerIcon": "./assets/logo.svg",
        "logo": "./assets/logo.svg"
      },
      "onboardingSkill": "./skills/openhandle/SKILL.md",
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Read a public profile in Test",
              "prompt": "Show me the Instagram profile northstar_forge_test.",
              "tools_triggered": "instagram_get_profile",
              "expected_behavior": "Returns the synthetic profile northstar_forge_test with 48,291 followers and a $0.000 actual charge in the Test environment."
            },
            {
              "description": "Page through posts with a cursor",
              "prompt": "List the latest posts from the Instagram account signal_quarry_test, then show me the next page.",
              "tools_triggered": "instagram_list_profile_posts",
              "expected_behavior": "Returns two posts, then calls the tool again with the returned cursor and returns two different posts."
            },
            {
              "description": "Report hidden metrics as unavailable, not zero",
              "prompt": "How many followers does the TikTok account paper_kite_tt_test have?",
              "tools_triggered": "tiktok_get_profile",
              "expected_behavior": "Returns the profile and says the follower count is not available. It does not say the count is 0."
            },
            {
              "description": "Explain a private profile",
              "prompt": "Find a private Instagram profile in the test data and try to open it.",
              "tools_triggered": "find_test_data, instagram_get_profile",
              "expected_behavior": "Finds quiet_harbor_test, calls the profile tool, and explains that the profile is private (PROFILE_PRIVATE)."
            },
            {
              "description": "Read a YouTube channel",
              "prompt": "Show me the YouTube channel synthetic_youtube.",
              "tools_triggered": "youtube_profile_get",
              "expected_behavior": "Returns the synthetic YouTube channel Synthetic YouTube with its subscriber and video counts in the Test environment."
            },
            {
              "description": "Read a Reddit profile",
              "prompt": "Show me the Reddit profile synthetic_reddit.",
              "tools_triggered": "reddit_profile_get",
              "expected_behavior": "Returns the synthetic Reddit profile synthetic_reddit with a total karma of 23,005 in the Test environment."
            }
          ],
          "negative": [
            {
              "description": "Posting is not supported. Openhandle only reads public data.",
              "prompt": "Post a comment on the latest Instagram post of northstar_forge_test."
            },
            {
              "description": "Private content is not available. Openhandle never reads private accounts or messages.",
              "prompt": "Show me the direct messages of the Instagram account quiet_harbor_test."
            },
            {
              "description": "Payments are not supported. The user must top up in the Openhandle dashboard.",
              "prompt": "Top up my Openhandle balance with $50."
            }
          ]
        },
        "demo_recording_url": "https://youtu.be/edfvyAfGEfs",
        "commerce": false,
        "commerce_description": "Openhandle does not sell products or process payments in ChatGPT. Users top up their balance in the Openhandle dashboard."
      },
      "publication": {
        "release_notes": "Adds YouTube: channels, videos, comments, playlists, and transcripts. The skill now assumes Live data."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 5b898d1604eb06c56ba5208874c7e88af6e49ff73a9eefde2f06c61cc4e2a9a1