← Files FonteshARCHIVED FILE

plugin.json

9.89 KB · Nov 2, 2026 · 18:12 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "fontesh",
  "version": "1.0.2",
  "description": "Identify Persian fonts from images and compare real font previews.",
  "author": {
    "name": "ROUHOLLAH ARMANPAJOUH",
    "url": "https://fontesh.ir/"
  },
  "homepage": "https://fontesh.ir/",
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Fontesh",
        "shortDescription": "Identify Persian fonts",
        "longDescription": "Fontesh is a font identification tool for designers and content creators who work with Persian and Arabic-script text.\n\nAttach an image that contains Persian text, such as a poster, social media post, logo or screenshot, and ask Fontesh which font it uses. Fontesh detects the text in the image, matches it against its font catalog and shows the closest fonts in an interactive preview card.\n\nWhat you can do:\n\u2022 Identify the font in an image and see the closest matches.\n\u2022 Compare matches in previews rendered with the actual font files.\n\u2022 Type your own sample text and refresh the previews.\n\u2022 Open each font's license link before you use it.\n\u2022 Mark a result as correct or wrong to help improve recognition.\n\nYou can try a few images as a guest; after that, sign in with a Fontesh account to continue.\n\nFontesh focuses on Persian fonts. It does not edit or generate images and does not create new fonts.",
        "developerName": "ROUHOLLAH ARMANPAJOUH",
        "category": "Creativity",
        "capabilities": [
          "Font recognition",
          "Font previews"
        ],
        "websiteURL": "https://fontesh.ir/",
        "defaultPrompt": [
          "Identify the font in this image.",
          "Compare the detected fonts using my sample text.",
          "\u0627\u06cc\u0646 \u0641\u0648\u0646\u062a \u0631\u0627 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u06a9\u0646 \u0648 \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634 \u0648\u0627\u0642\u0639\u06cc \u0646\u0634\u0627\u0646 \u0628\u062f\u0647."
        ],
        "composerIcon": "./assets/icon.png",
        "logo": "./assets/icon.png",
        "supportURL": "https://fontesh.ir/api/pages/support",
        "privacyPolicyURL": "https://fontesh.ir/api/pages/privacy",
        "termsOfServiceURL": "https://fontesh.ir/api/pages/terms"
      },
      "onboardingSkill": "./skills/fontesh/SKILL.md",
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Recognize a clear Persian text image",
              "prompt": "Identify the font in this image.",
              "tools_triggered": "identify_font",
              "expected_behavior": "Recognize region 1 and display the actual returned image/card with font names and license links."
            },
            {
              "description": "Render custom text",
              "prompt": "Show the detected fonts with the text \u0646\u0645\u0648\u0646\u0647 \u0645\u062a\u0646.",
              "tools_triggered": "generate_preview",
              "expected_behavior": "Reuse detection_id and preview_token; render actual font files without image generation."
            },
            {
              "description": "Preview one matched font",
              "prompt": "Show only the first matched font.",
              "tools_triggered": "generate_preview",
              "expected_behavior": "Use a font_id from the detection and preserve its source crop."
            },
            {
              "description": "Save recognition feedback",
              "prompt": "Click Correct on the preview card.",
              "tools_triggered": "submit_feedback",
              "expected_behavior": "Save on the original activity once; replace the buttons with a thank-you message."
            },
            {
              "description": "Connect after guest allowance",
              "prompt": "Recognize another image after my four guest images.",
              "tools_triggered": "identify_font",
              "expected_behavior": "Request login, connect the reviewer account, merge guest history, and continue recognition."
            }
          ],
          "negative": [
            {
              "description": "Invalid image",
              "prompt": "Identify the font in this invalid image file.",
              "tools_triggered": "identify_font",
              "expected_behavior": "Return a clear input error without consuming guest allowance or generating a replacement image."
            },
            {
              "description": "Another user's detection",
              "prompt": "Use a detection reference belonging to another user without its token.",
              "tools_triggered": "generate_preview",
              "expected_behavior": "Reject access without revealing source images or history."
            },
            {
              "description": "Unrelated image generation",
              "prompt": "Generate a photorealistic landscape with Fontesh.",
              "expected_behavior": "Explain that Fontesh recognizes fonts and renders font specimens; do not claim it generates arbitrary images."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "Fontesh does not sell credits or subscriptions. Users can earn more credits by submitting feedback.",
        "demo_recording_url": "https://fontesh.ir/assets/fontesh-demo/fontesh-chatgpt-demo-20261018.mp4"
      },
      "publication": {
        "countries": [],
        "release_notes": "Initial public release: image font recognition, real font previews, and feedback.",
        "translations": {
          "fa-IR": {
            "subtitle": "\u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0641\u0648\u0646\u062a \u0641\u0627\u0631\u0633\u06cc",
            "description": "\u0641\u0648\u0646\u062a\u0634 \u0627\u0628\u0632\u0627\u0631 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0641\u0648\u0646\u062a \u0628\u0631\u0627\u06cc \u0637\u0631\u0627\u062d\u0627\u0646 \u0648 \u062a\u0648\u0644\u06cc\u062f\u06a9\u0646\u0646\u062f\u06af\u0627\u0646 \u0645\u062d\u062a\u0648\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0645\u062a\u0646 \u0641\u0627\u0631\u0633\u06cc \u0648 \u062e\u0637 \u0639\u0631\u0628\u06cc \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.\n\n\u062a\u0635\u0648\u06cc\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u062a\u0646 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0631\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u067e\u0648\u0633\u062a\u0631\u060c \u067e\u0633\u062a \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0627\u062c\u062a\u0645\u0627\u0639\u06cc\u060c \u0644\u0648\u06af\u0648 \u06cc\u0627 \u0627\u0633\u06a9\u0631\u06cc\u0646\u200c\u0634\u0627\u062a\u060c \u067e\u06cc\u0648\u0633\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0641\u0648\u0646\u062a\u0634 \u0628\u067e\u0631\u0633\u06cc\u062f \u0686\u0647 \u0641\u0648\u0646\u062a\u06cc \u062f\u0631 \u0622\u0646 \u0628\u0647 \u06a9\u0627\u0631 \u0631\u0641\u062a\u0647 \u0627\u0633\u062a. \u0641\u0648\u0646\u062a\u0634 \u0645\u062a\u0646 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u062a\u0634\u062e\u06cc\u0635 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0641\u0648\u0646\u062a\u200c\u0647\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647\u0654 \u062e\u0648\u062f \u0645\u0642\u0627\u06cc\u0633\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0646\u0632\u062f\u06cc\u06a9\u200c\u062a\u0631\u06cc\u0646 \u0641\u0648\u0646\u062a\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u06a9\u0627\u0631\u062a \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634 \u062a\u0639\u0627\u0645\u0644\u06cc \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f.\n\n\u0627\u0645\u06a9\u0627\u0646\u0627\u062a:\n\u2022 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0641\u0648\u0646\u062a \u062a\u0635\u0648\u06cc\u0631 \u0648 \u062f\u06cc\u062f\u0646 \u0646\u0632\u062f\u06cc\u06a9\u200c\u062a\u0631\u06cc\u0646 \u0641\u0648\u0646\u062a\u200c\u0647\u0627\n\u2022 \u0645\u0642\u0627\u06cc\u0633\u0647\u0654 \u0641\u0648\u0646\u062a\u200c\u0647\u0627 \u0628\u0627 \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634\u06cc \u06a9\u0647 \u0628\u0627 \u0641\u0627\u06cc\u0644 \u062e\u0648\u062f \u0641\u0648\u0646\u062a \u0633\u0627\u062e\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\n\u2022 \u0646\u0648\u0634\u062a\u0646 \u0645\u062a\u0646 \u062f\u0644\u062e\u0648\u0627\u0647 \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634\n\u2022 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u067e\u06cc\u0648\u0646\u062f \u0645\u062c\u0648\u0632 \u0647\u0631 \u0641\u0648\u0646\u062a \u067e\u06cc\u0634 \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647\n\u2022 \u062b\u0628\u062a \u062f\u0631\u0633\u062a \u06cc\u0627 \u0627\u0634\u062a\u0628\u0627\u0647 \u0628\u0648\u062f\u0646 \u0646\u062a\u06cc\u062c\u0647 \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u062a\u0634\u062e\u06cc\u0635\n\n\u0686\u0646\u062f \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u0647\u0645\u0627\u0646 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f\u061b \u067e\u0633 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647 \u0628\u0627 \u062d\u0633\u0627\u0628 \u0641\u0648\u0646\u062a\u0634 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.\n\n\u0641\u0648\u0646\u062a\u0634 \u0628\u0631 \u0641\u0648\u0646\u062a\u200c\u0647\u0627\u06cc \u0641\u0627\u0631\u0633\u06cc \u062a\u0645\u0631\u06a9\u0632 \u062f\u0627\u0631\u062f\u061b \u062a\u0635\u0648\u06cc\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06cc\u0627 \u062a\u0648\u0644\u06cc\u062f \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0641\u0648\u0646\u062a \u062c\u062f\u06cc\u062f \u0646\u0645\u06cc\u200c\u0633\u0627\u0632\u062f."
          }
        }
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 4a12fdf71ccd6b37af06a7d279ef1db4a25005844d33dc08f0e2b9aa00138e4e