Detection happens on the agent
Relay inspects the uploaded repo snapshot on the server. Plugins are applied there, so every deploy for that agent sees the same framework support.
Relay buildpack plugins are JSON definitions stored on the agent. They participate in framework detection before the built-in buildpacks, then render a Dockerfile template when they match.
relay plugin install ./plugins/astro-static.json \
--url http://127.0.0.1:8080 \
--token YOUR_TOKEN
relay plugin list --url http://127.0.0.1:8080 --token YOUR_TOKENThis is deliberately smaller than a generic code plugin system. The agent needs enough information to decide whether the plugin matches a repo and how to build and run that repo if it does.
Relay inspects the uploaded repo snapshot on the server. Plugins are applied there, so every deploy for that agent sees the same framework support.
Plugins are prepended ahead of built-ins. Higher priority wins, so a plugin can override the default behavior for a specific framework shape.
A plugin does not bypass the rest of Relay. It still resolves to a build image, run image, service port, and rendered Dockerfile.
A plugin install is an authenticated API write to the agent. In production, leave plugin mutation off unless you are actively curating framework support.
Set `RELAY_ENABLE_PLUGIN_MUTATIONS=true` only while administering plugins.
Use `relay plugin install <file>` against the agent that should own the plugin.
Use `relay plugin list` or `GET /api/plugins/buildpacks` to inspect the live set.
Once the plugin is installed, the agent still loads it even after you disable further mutations.
GET /api/plugins/buildpacks
POST /api/plugins/buildpacks
DELETE /api/plugins/buildpacks/:name