Runtime host for Escalated plugins. Loads plugins built with the Plugin SDK and communicates with the host framework (Laravel, Rails, Django, AdonisJS) via JSON-RPC 2.0 over stdio.
escalated.dev — Learn more, view demos, and compare Cloud vs Self-Hosted options.
npm install @escalated-dev/plugin-runtimeThis package is installed alongside any SDK plugins you want to use. The host framework's bridge spawns it automatically — you do not need to run it manually.
The runtime is started by the framework bridge (e.g., escalated-laravel, escalated-rails, escalated-django). You typically do not invoke it directly. The bridge spawns it as:
node node_modules/@escalated-dev/plugin-runtime/dist/index.jsThe runtime is a long-lived Node.js process that:
- Discovers and loads installed plugins from
node_modules/@escalated-dev/plugin-* - Responds to JSON-RPC messages from the host framework
- Routes hooks (actions, filters) to registered plugin handlers
- Proxies
ctx.*calls back to the host for data operations
Host Framework (PHP/Ruby/Python) Plugin Runtime (Node.js)
┌──────────────────────────┐ stdio ┌──────────────────────────┐
│ Bridge │◄──────────►│ @escalated-dev/ │
│ - spawns subprocess │ JSON- │ plugin-runtime │
│ - dispatches hooks │ RPC 2.0 │ ┌────────────────────┐ │
│ - handles ctx.* calls │ │ │ plugin-slack │ │
│ │ │ │ plugin-jira │ │
│ │ │ │ your-custom-plugin │ │
└──────────────────────────┘ │ └────────────────────┘ │
└──────────────────────────┘
- Spawned lazily on first hook dispatch
- Automatic restart with exponential backoff if the process crashes
- Action hooks degrade gracefully when the runtime is unavailable
- Filter hooks return unmodified values when the runtime is down
Communication uses JSON-RPC 2.0 over stdin/stdout. See the Plugin SDK docs for the full protocol specification.
- Plugin SDK — TypeScript SDK for building plugins
- Escalated — Shared frontend (Vue 3 + Inertia.js)
- Escalated Docs — Full documentation
MIT