> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skyvexsoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ctx.plugin

> Control this plugin's own presence in the shell — currently the sidebar indicator.

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

```ts theme={null}
// 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`](/sdk/background/context/notify), [`ctx.dialog`](/sdk/background/context/dialog), or [`ctx.prompt`](/sdk/background/context/prompt) instead.
