Plugins
Plugins add provider manifests, credentials, tools, runtime hooks, background work, and optional skills. A manifest is a file that describes a plugin. A runtime hook lets the plugin run code in the Junior app. Use a packaged plugin when one exists. Build a custom plugin only when the app needs a new provider or fixed behavior that code must control.
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 |
| GoCD | Pipeline, stage, and job results |
| Hex | Hex projects and runs |
| Linear | Issues, projects, and issue webhooks |
| Maintenance | Repository maintenance workflows |
| Memory | Long-term scoped memory |
| Notion | Notion content |
| Scheduler | Durable scheduled tasks |
| Sentry | Sentry issues, telemetry, and issue webhooks |
| 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";import { sentryPlugin } from "@sentry/junior-sentry";
export const plugins = defineJuniorPlugins([ githubPlugin({ botNameEnv: "GITHUB_APP_BOT_NAME", botEmailEnv: "GITHUB_APP_BOT_EMAIL", }), sentryPlugin(),]);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 });You can register a manifest-only plugin by package name. Plugins with runtime hooks export a JavaScript function. Each provider page lists the required setup 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 layout for app-specific provider settings or work that does not need server 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.