← Files CrowdinARCHIVED FILE
plugin.json
5.2 KB · Nov 3, 2026 · 19:19 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "crowdin",
"version": "1.8.0",
"description": "Crowdin connects ChatGPT and Codex to your own Crowdin localization projects. Everything runs inside your account, in projects you already have access to.",
"author": {
"name": "Crowdin O\u00dc",
"url": "https://crowdin.com"
},
"homepage": "https://crowdin.com",
"keywords": [
"crowdin",
"localization",
"i18n",
"translation"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Crowdin",
"shortDescription": "Localize products with Crowdin",
"longDescription": "Crowdin connects ChatGPT and Codex to your own Crowdin localization projects. Everything runs inside your account, in projects you already have access to.\n\nWhat you can do:\n- Check translation progress by language\n- Find source strings and their translations\n- Look up glossary terms and translation memory\n- Review tasks, reports, labels, and comments\n- Make bounded changes: add labels, upload source files, start a translation build \u2013 the agent confirms before writing\n\nWith the bundled Codex skills, you can also set up localization in a code repository, keep files in sync through the Crowdin CLI and GitHub Action, and write translator context and glossaries.\n\nWho it's for:\nLocalization managers, product managers, and developers who already use Crowdin and want answers without switching tabs \u2013 how far along a language is, where a source string is used, whether a term is in the glossary, what a report says \u2013 or who want Codex to set up localization in a repo and keep it in sync.",
"developerName": "Crowdin O\u00dc",
"category": "Business & Operations",
"websiteURL": "https://crowdin.com",
"supportURL": "https://support.crowdin.com",
"privacyPolicyURL": "https://support.crowdin.com/privacy-policy/",
"termsOfServiceURL": "https://support.crowdin.com/terms/",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"review": {
"demo_recording_url": "https://www.youtube.com/watch?v=1Kie7g7ythM",
"test_cases": {
"positive": [
{
"description": "List the projects the signed-in user can access.",
"prompt": "Show me my Crowdin projects.",
"tools_triggered": "list_projects",
"expected_behavior": "A list of the user\u2019s Crowdin projects with names and identifiers, enough to pick one for follow-up questions."
},
{
"description": "Report translation progress per language and single out the laggards.",
"prompt": "Which languages in Crowdin project 123456 are below 80% translated?",
"tools_triggered": "get_language_progress",
"expected_behavior": "Per-language translation and approval percentages for the project, with the languages under 80% called out."
},
{
"description": "Find source strings by text.",
"prompt": "Find the source strings in project 123456 that mention \"checkout\".",
"tools_triggered": "search_strings",
"expected_behavior": "Matching source strings with identifiers, text and context; no strings are modified."
},
{
"description": "Read glossary terminology without changing it.",
"prompt": "What glossaries does project 123456 use, and what terms are in them?",
"tools_triggered": "list_glossaries",
"expected_behavior": "The glossaries attached to the project and their terms, read-only."
},
{
"description": "A bounded, non-destructive write confirmed with the user.",
"prompt": "Add a label called \"checkout\" to project 123456.",
"tools_triggered": "add_label",
"expected_behavior": "The assistant confirms the project and label name, creates the label, and reports its identifier; nothing else in the project changes."
}
],
"negative": [
{
"description": "Ad-hoc translation of pasted text is not a Crowdin project operation.",
"prompt": "Translate \"Your order has shipped\" into German and French for me.",
"expected_behavior": "The assistant translates the sentence itself; no Crowdin tool is invoked because no project, file or string in Crowdin is involved."
},
{
"description": "Requests about other issue trackers or tools stay out of scope.",
"prompt": "Show me my open Jira tickets for this sprint.",
"expected_behavior": "The app is not invoked; Crowdin tools do not access Jira or other third-party systems."
},
{
"description": "Unrelated everyday questions must not trigger the app.",
"prompt": "What is the weather in Kyiv tomorrow?",
"expected_behavior": "The assistant answers without calling any Crowdin tool."
}
]
},
"commerce": false
},
"apps": "./.app.json"
}
}
}
SHA-256: c840e5326a679509c7eb0ac16167909ab27da638199fee749610d862f1f65c6e