Skip to content

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.

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 only the packages the app needs:

Terminal window
pnpm add @sentry/junior @sentry/junior-github @sentry/junior-sentry

Create one plugin set for local development and production builds:

plugins.ts
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:

nitro.config.ts
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:

server.ts
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.

App-local declarative plugins live under the app content root:

app/plugins/<plugin-name>/
├── plugin.yaml
└── skills/
└── <skill-name>/
└── SKILL.md

Use 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.

Run validation before deploy:

Terminal window
pnpm exec junior check

If a plugin declares sandbox dependencies, also build its dependency snapshot:

Terminal window
pnpm exec junior snapshot create

Open the provider page for credential setup, or follow Build a Plugin for a custom integration.