Skip to main content
ctx.plugin (PluginSelfApi) lets a background module control how its own plugin appears in the shell. Today that means the sidebar indicator: a small badge drawn on the plugin’s nav button.
// A passive "something new" dot:
await ctx.plugin.setIndicator({ type: "notification" });

// An attention-needed amber badge, with hover text:
await ctx.plugin.setIndicator({
  type: "warning",
  tooltip: "Enter your departure gate",
});

// A dot that clears itself the first time the pilot opens your plugin:
await ctx.plugin.setIndicator({ type: "notification", dismissOnOpen: true });

// Remove it:
await ctx.plugin.clearIndicator();
Types. type is "notification" (a dot) or "warning" (an amber triangle). A plugin cannot set the system error badge — that is reserved for a crashed plugin and always takes precedence over a plugin-set indicator. Lifetime. An indicator persists until you call clearIndicator() (or the app restarts), unless you pass dismissOnOpen: true, in which case the shell clears it automatically the first time the pilot opens your plugin. When to use it: to draw the pilot’s eye to your plugin when something there needs their attention. For an active interruption, use ctx.notify, ctx.dialog, or ctx.prompt instead.