Extensions

Press shift + S to search API reference.

Guide

Beta: Run and release an extension in multiple bases

When you first create an extension via the block init command, a default remote is created for you. The remote identifies the base where the extension will run and where it will be released. If you want to run or release your extension in multiple bases, you can add additional remotes.

Please note: We are actively working on improving the experience of using a custom extension in multiple bases. Remotes are still in beta: we anticipate large updates to this experience in the future.

Use remotes to run and release your extension

Here are directions for how to run and release your extension on a different base with remotes:

  1. Create an extension in your other base as you normally would (i.e. Click “Add an extension” → “Build a custom extension”)
  2. Click through the instruction wizard until the “Get started” step. Save the block init command somewhere but do not run the command! The important part we will need later is the first argument to the block init command, which is the extension identifier. This extension identifier value should look something like: appAbC123aBc123ab/blkAbC123aBc123ab
  3. Add a new “remote” with the block add-remote command, using the extension identifier from step [2], and a name for the remote. This remote name should identify the new base you want to push the extension to:
$ block add-remote appAbC123aBc123ab/blkAbC123aBc123ab my_other_base
  1. The block run and block release commands will accept a --remote option that can now be used to run and release the extension on the other base. The value of of the --remote option should match the name from step [3].
$ block run --remote my_other_base
$ block release --remote my_other_base
  1. See all existing remotes via the block list-remotes command.
$ block list-remotes
Name Block identifier
default appXyZ123zYz123Yz/blkXyZ123zYz123Yz
my_other_base appAbC123aBc123ab/blkAbC123aBc123ab
  1. Remove a remote via the block remove-remote command
$ block remove-remote my_other_base