Plugins
Plugins add provider manifests, credentials, tools, runtime hooks, background work, and optional skills. Start with a packaged plugin when one exists; build a custom plugin only when the app needs a new provider or deterministic runtime behavior.
Choose a plugin
Section titled “Choose a plugin”| Plugin | Use it for |
|---|---|
| Agent Browser | Browser automation |
| Amplitude | Product analytics queries |
| Cloudflare | Cloudflare resources and APIs |
| Datadog | Logs, metrics, and incidents |
| GitHub | Repository, issue, and pull-request workflows |
| Hex | Hex projects and runs |
| Linear | Issues and projects |
| Maintenance | Repository maintenance workflows |
| Memory | Long-term scoped memory |
| Notion | Notion content |
| Scheduler | Durable scheduled tasks |
| Sentry | Sentry issues and telemetry |
| Vercel | Vercel projects and deployments |
Install packaged plugins
Section titled “Install packaged plugins”Install only the packages the app needs:
pnpm add @sentry/junior @sentry/junior-github @sentry/junior-sentryCreate one plugin set for local development and production builds:
import { defineJuniorPlugins } from "@sentry/junior";import { githubPlugin } from "@sentry/junior-github";
export const plugins = defineJuniorPlugins([ githubPlugin({ botNameEnv: "GITHUB_APP_BOT_NAME", botEmailEnv: "GITHUB_APP_BOT_EMAIL", }), "@sentry/junior-sentry",]);Point Nitro at the plugin module:
import { defineConfig } from "nitro";import { juniorNitro } from "@sentry/junior/nitro";
export default defineConfig({ preset: "vercel", modules: [juniorNitro({ plugins: "./plugins" })], routes: { "/**": { handler: "./server.ts" }, },});Pass the same set to the app:
import { createApp } from "@sentry/junior";import { plugins } from "./plugins.ts";
export default await createApp({ plugins });Manifest-only plugins may be registered by package name. Plugins with runtime hooks export a JavaScript factory. Each provider page documents its required registration and environment variables.
Add an app-local plugin
Section titled “Add an app-local plugin”App-local declarative plugins live under the app content root:
app/plugins/<plugin-name>/├── plugin.yaml└── skills/ └── <skill-name>/ └── SKILL.mdUse this shape for app-specific provider configuration or workflows that do not need backend hooks. Runtime hooks and host tools require a code plugin; follow Build a Plugin.
Validate
Section titled “Validate”Run validation before deploy:
pnpm exec junior checkIf a plugin declares sandbox dependencies, also build its dependency snapshot:
pnpm exec junior snapshot createNext step
Section titled “Next step”Open the provider page for credential setup, or follow Build a Plugin for a custom integration.