engenty wizards
Plugins

Plugins

What a plugin is, what its two halves can add, and what it may touch.

v0.5.0

A plugin adds to a runtime without changing its code. The runtime finds plugins when it starts, loads them from their files and loads a plugin again when its files change.

What a plugin can add

It addsWhere it showsPage
A tool for AI stepsIn a step’s tool list, in the assistant’s and the MCP authoring guideTools
A runner: a door a wizard runs through, with the run API that drives runs from itIn the share dialog’s channels, at /w/<token>/<runner>, on the wizard’s first pageRunners
A runner’s settings and setup in the share dialogIn the share dialog, behind its gear and behind “Set up” in the runner’s rowRunners
A block and tools for every AI step of a spaceIn the steps’ instructionsThe space
Pages, tables and files of a space’s Knowledge, with their categoriesIn Knowledge, and in what project_search findsThe space
Texts in a space’s search indexIn what project_search findsThe space
Tools of the studio’s assistant, and their cardsIn the assistant’s chat, on every page. For now the assistant is off unless it is switched onThe space
RoutesBelow /api/studio/plugins/<id>, for programs with a key below /api/v1/plugins/<id>; public ones below /api/public/plugins/<id>, one for every tenant below /api/public/plugins/<id>/sharedRoutes
TablesIn every tenant’s databaseTables
A listener on runs that end and spaces that changeNowhere: it works in the backgroundEvents
A job, again and againNowhere: it works in the backgroundThe server half
The team’s own number for texts and calls, on engenty.aiWhere the plugin’s runner and pages use itThe server half
An account of a space (a calendar, a mailbox), signed in through a built-in connectorWhere the plugin’s own pages offer itAccounts
A wizard as a templateFirst among the templates of a new wizard, and in the MCP list_startersStarters
A page of the studioBehind an icon in the app bar, or at its addressThe studio half
A section of the settingsIn the settings’ listThe studio half
A section of the space pageIn one of its parts, below the part’s own sectionsThe studio half
A part of the space pageIn the space’s menu, beside Info & brand, Knowledge, Data and ResultsThe studio half

Two halves

Server halfStudio half
Filesrc/plugin.ts, or the one file a small plugin isui/plugin.tsx, built to dist/client.js and dist/client.css
Runs inThe runtimeThe studio, after sign-in
LoadedAs TypeScript, no buildAs the built script
Types@engenty/wizards/plugin@engenty/wizards/plugin/studio
AddsTools, runners, routes, tables, listeners, jobs, starters, accounts, Knowledge, the space’s block, index and assistant toolsPages, icons in the app bar, sections of the settings and of the space page, parts of the space page, a runner’s settings and setup in the share dialog, cards in the assistant’s chat

A plugin has one half or both. The studio half talks to the server half over the plugin’s own routes.

What a plugin may touch

A plugin runs inside the runtime’s process with all of its rights. It can read every tenant’s data, the install’s settings and the files of the computer it runs on. There is no sandbox and no permission list.

  • Install only code you know.
  • A plugin for others says in its own description what it reads and where it sends it.

Not the Claude Code plugin

The “Claude Code plugin” of engenty wizards is something else: it is what a runtime hands to Claude Code (plugin/ in the repository). These pages are about plugins of the runtime.

Not there yet

  • A plugin can’t bring connectors of its own, or tools for MCP clients and AI apps. It connects accounts through the built-in connectors: Accounts.
  • A plugin can’t add new kinds of steps or fields: the public pages of a wizard load no plugin. A plugin’s runner is served whole at its own sub-path; nothing is loaded into the page or the chat.
  • You can’t build a studio half without a checkout of the repository.

On this page