Bläck StudioPlugin SDK v1.0.0 · API 4
Contents

Start

Building

Beyond Bläck Studio

How it runs

Sharing

Look up

The plugin list

Settings → Plugins → Find plugins reads a list from https://git.thunraz.se/magnus/black-plugins/raw/branch/main/plugins.json (BLACK_PLUGIN_INDEX to choose another):

{
  "plugins": [
    {
      "id": "word-of-the-day",
      "name": "Word of the day",
      "description": "A word to use today, every morning.",
      "author": "You",
      "version": "1.0.0",
      "apiVersion": 1,
      "sandboxed": true,
      "permissions": ["network:api.example.com"],
      "download": "https://example.com/word-of-the-day-1.0.0.zip",
      "sha256": "…the SHA-256 that npm run build prints…",
      "homepage": "https://example.com/word-of-the-day"
    }
  ]
}

Bläck Studio installs only from the list:

  • The download: it fetches the zip the list names, and refuses it unless its SHA-256 is the one the list gives.
  • The contents: it checks the zip holds the plugin the list says, with nothing outside its folder, before unpacking it.

To add a plugin, add its entry to the list's repository.

Lists of your own

Anyone can keep a list: a plugins.json like the one above, at an https address. A list may name itself, with "name" beside "plugins".

The writer adds one under Settings → Plugins → Find plugins → Plugin lists, by its address:

  • Asked first: Bläck Studio reads the list, then asks in a window of its own whether to add it, saying its plugins aren't Bläck Studio's.
  • Shown as such: its plugins are offered beside Bläck Studio's, each marked with the list it's from.
  • Checked the same way: a download is checked against its list exactly as against Bläck Studio's.
  • Updates: a plugin installed from a list is updated from that list only, and Bläck Studio won't put a plugin from a list in place of one installed from another, or of one being written in the plugins folder.
  • Removing a list: its plugins stay installed; they just aren't offered any more.