Oruva
Plugin API v1 · Reference

Icons

An icon is optional, but Oruva carries it through creation and the places where people discover and run a plugin.

Create dialog

The optional icon picker accepts SVG, PNG, JPEG, or WebP up to 512 KiB and previews the choice. Oruva copies it into the new plugin as icon plus its original extension. Without a choice, the template's starter icon.svg is used.

Manifest field

FieldRequiredConstraints
iconnoRelative path inside the folder; PNG, JPEG, WebP, or SVG, max 512 KiB. Shown on Plugin Center Discover cards and Installed rows, in the right-click Plugins submenu, and in the UI-action modal title bar. Square, 96×96 or larger recommended. The path is not part of the approval hash on its own, but changing the file's bytes changes the content hash, which is.

Per-action icons

Each action may declare its own icon with the same rules. It shows for that action's row in the right-click Plugins submenu; an action without one inherits the plugin icon. Action icons are served at /api/plugins/<id>/actions/<action-id>/icon.

Where icons appear

SurfaceSource
Discover card (installed plugin)the installed copy's icon
Discover card (bundled example, not installed)the example's icon shipped with Oruva
Discover card (store listing)the listing's icon_url, downloaded and cached by the backend
Installed and linked rows, approval sheetthe plugin's icon
Right-click Plugins submenuthe action's icon, else the plugin's icon
UI-action modal title barthe plugin's icon

A card or row without any icon shows the plugin's initials instead.

Draw for the silhouette

The Plugin Center and the right-click menu do not show your icon's colours. Like the 3D-app logos in Send to, every plugin icon is rendered as one flat colour that follows the theme — ink on Oruva, gold on Oruva Dark, white on Orchid Dark — so plugins from different authors sit together as one set.

  • Draw solid shapes on a transparent background. Fill and stroke colours are irrelevant; only the alpha shape survives.
  • Do not bake in a rounded tile, plate, or background gradient. An opaque background becomes a solid square with the glyph lost inside it.
  • Keep strokes at least 4 units wide on a 96×96 canvas so the silhouette stays legible at 44 px.
  • The UI-action modal title bar and the Create dialog preview still show the icon in colour, so a tasteful brand colour is fine as long as the shape works alone.