← Files CharmingARCHIVED FILE

plugin.json

5.16 KB · Oct 8, 2026 · 06:08 UTC

↓ Download file

See the change to this file →

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "app-6a56c533cd7c8191b9a16cb7973a65e6",
  "version": "1.2.1",
  "description": "The secure cloud for apps your AI builds.",
  "author": {
    "name": "Tambo"
  },
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Charming",
        "shortDescription": "Secure cloud for AI-built apps",
        "longDescription": "Charming is a secure cloud for apps you build with AI. Ask your assistant to build an app with Charming. Charming gives your app a link you can open anywhere and use to invite people to use it with you. They can use the app from their own AI assistant or their browser.",
        "developerName": "Tambo",
        "category": "Developer Tools",
        "capabilities": [],
        "websiteURL": "https://usecharming.com",
        "supportURL": "https://www.usecharming.com/contact-us",
        "privacyPolicyURL": "https://www.usecharming.com/privacy",
        "termsOfServiceURL": "https://www.usecharming.com/terms",
        "defaultPrompt": [
          "Help me build a personal app that feels handcrafted, like a real object.",
          "Create a meal planner I can update each week.",
          "Make a shared trip planner for my friends."
        ],
        "brandColor": "#F77448",
        "composerIcon": "./assets/icon.png",
        "logo": "./assets/logo.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Connect and create a personal app from a natural-language request.",
              "prompt": "Make me a simple habit tracker that lets me add habits and mark them complete for today.",
              "tools_triggered": "create_app",
              "expected_behavior": "After OAuth connect, creates a Charming app, renders it inline as an interactive widget, and returns its app ID and hosted URL for later use across agents."
            },
            {
              "description": "Update an existing personal app and keep its data available.",
              "prompt": "Add a weekly summary section to the habit tracker you just built.",
              "tools_triggered": "update_app",
              "expected_behavior": "Updates the existing Charming app in place and shows the refreshed interactive version at the same URL, without rebuilding from scratch or losing saved data."
            },
            {
              "description": "Read app state, then change it through the app's declared operations.",
              "prompt": "Tell me whether 'drink water' is complete today, then mark it complete if it is not.",
              "tools_triggered": "query_app, mutate_app",
              "expected_behavior": "Reads the current value through query_app, uses mutate_app only if a change is needed, and returns the resulting state without editing the app's source."
            },
            {
              "description": "Submit app feedback and disclose its delivery to the Charming team.",
              "prompt": "Report that the habit tracker sometimes fails to save a completed habit.",
              "tools_triggered": "submit_feedback",
              "expected_behavior": "Records a bug report for the app and returns its feedback ID; the feedback is also delivered to the Charming team's internal support channel."
            },
            {
              "description": "Safely delete an app the user no longer needs, with fail-closed confirmation.",
              "prompt": "Delete the old budget tracker app.",
              "tools_triggered": "list_apps, delete_app",
              "expected_behavior": "Finds the target app, then asks the host to show a confirmation prompt before deleting. On hosts that cannot prompt, delete_app refuses with a confirmation_required error and only proceeds after the caller re-invokes with confirm: true; it never deletes without an obtained confirmation."
            }
          ],
          "negative": [
            {
              "description": "Do not trigger for general coding help that does not ask to create or manage a Charming app.",
              "prompt": "Explain how JavaScript promises work.",
              "expected_behavior": "The app should not be invoked because the request is general programming education."
            },
            {
              "description": "Do not trigger for unrelated calendar or scheduling requests.",
              "prompt": "What meetings do I have tomorrow?",
              "expected_behavior": "The app should not be invoked because Charming does not manage calendars."
            },
            {
              "description": "Do not trigger for requests to publish content to third-party services.",
              "prompt": "Post this announcement to my company's LinkedIn page.",
              "expected_behavior": "The app should not be invoked because Charming does not publish to external social platforms."
            }
          ]
        },
        "demo_recording_url": "https://drive.google.com/file/d/1rZoLRJhFshmjKC3hTr4yBX_TpmbnwTf_/view?usp=sharing"
      },
      "publication": {
        "release_notes": "Updates the Charming app-building skill and marks set_template and cancel_app_build as destructive."
      }
    }
  }
}

SHA-256: f22271ec26095355a4b0a82d71622f779ebeb73dcccb3732ea0cca325a91b4a6