← Files Gateway SSHARCHIVED FILE
plugin.json
5.31 KB · Nov 12, 2026 · 18:12 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "app-6a8061659144819197910ef2762afbc0",
"version": "1.4.2",
"description": "Gateway lets users manage owned Linux and Windows OpenSSH servers from ChatGPT: inspect health and configuration, run auditable commands and typed administrative operations, transfer files, and follow durable jobs.",
"author": {
"name": "Next Generation Media",
"email": "hey@trygateway.sh",
"url": "https://trygateway.sh"
},
"homepage": "https://trygateway.sh",
"license": "UNLICENSED",
"keywords": [
"ssh",
"servers",
"linux",
"windows",
"sysadmin",
"devops",
"docker",
"systemd",
"infrastructure"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Gateway SSH",
"shortDescription": "Manage servers through SSH",
"longDescription": "Gateway lets users manage owned Linux and Windows OpenSSH servers from ChatGPT: inspect health and configuration, run auditable commands and typed administrative operations, transfer files, and follow durable jobs.",
"developerName": "Next Generation Media",
"category": "Developer Tools",
"websiteURL": "https://trygateway.sh",
"supportURL": "https://trygateway.sh/support",
"privacyPolicyURL": "https://trygateway.sh/legal/privacy",
"termsOfServiceURL": "https://trygateway.sh/legal/terms",
"defaultPrompt": [
"Check system health on my servers",
"List the Docker containers running on my server",
"Install htop on my server"
],
"brandColor": "#14171A",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "List the servers registered to the account.",
"prompt": "Which servers do I have in Gateway?",
"tools_triggered": "list_servers",
"expected_behavior": "Lists the test account's two servers, build-host and production-web, with their canonical IDs, platform and status, without connecting to anything else."
},
{
"description": "Inspect server health through a durable job.",
"prompt": "Check system health on my Gateway server production-web.",
"tools_triggered": "system_health, wait_for_job",
"expected_behavior": "Starts a system-health job on production-web, follows it to a terminal state, and summarises load, memory, disk and uptime from the structured snapshot. Optional collectors that are unavailable are reported as warnings."
},
{
"description": "Apply package updates through a durable job, with no interaction needed.",
"prompt": "Install the available package updates on build-host.",
"tools_triggered": "update_system_packages, wait_for_job",
"expected_behavior": "Starts an update_system_packages job on build-host (the test servers have passwordless sudo, so no sudo handoff is needed), follows it to a terminal state, and reports which packages were upgraded, or that none were pending. It removes no packages and never reboots; if a reboot is needed it says so instead of rebooting."
},
{
"description": "List the services on a server.",
"prompt": "Which services are running on production-web?",
"tools_triggered": "list_systemd_units",
"expected_behavior": "Lists the running systemd services on production-web with their names and states, without starting, stopping or changing anything."
},
{
"description": "Report disk usage on a server.",
"prompt": "How much disk space is left on build-host?",
"tools_triggered": "get_storage_usage",
"expected_behavior": "Reports the mounted filesystems on build-host with their size, used and available space, and changes nothing."
}
],
"negative": [
{
"description": "General SSH education must not invoke Gateway because no managed-server action was requested.",
"prompt": "Explain the difference between SSH keys and passwords; do not connect to anything."
},
{
"description": "Gateway must not probe an arbitrary public hostname that is not a registered server in the account.",
"prompt": "Without adding it as a Gateway server, check whether example.com is online."
},
{
"description": "Gateway must not act on files on the user's local computer, which is not a Gateway server.",
"prompt": "Delete old.zip from the Downloads folder on my laptop."
}
]
},
"commerce": false
},
"publication": {
"release_notes": "Adds Gateway Teams support: a server in a team the user belongs to is named team-slug/server-name, list_servers, list_jobs, list_files and list_regions cover the personal space and the user's teams, and add_server and upload_file take an optional team argument. Team roles and per-server access set in the Gateway web app apply to every tool."
},
"apps": "./.app.json"
}
}
}
SHA-256: 950df573cce067f84434f7f36a851b2d8f7bf3806f789f2e8901f7ee53463d75