Skip to main content

Manifest File

The extension.json file contains the manifest for an Extension and needs to be placed in a public directory such that it is served at the root (/extension.json). You are required to provide a manifest file to publish an Extension to the Extensions Store.

Properties

PropertyTypeDescription
namestringRequired. The Extension's name. Length can be 1-60 characters.
descriptionstringRequired. The Extension's description. Length can be 1-255 characters.
longDescription?stringOptional. The Extension's longer description. Markdown is supported and recommended.
icon?stringOptional. The Extension's icon. This is a reference to a file on the repl. Any web based image format is accepted, but SVGs are preferred.
tags?string[]Optional. A list of tags that describe the extension.
coverImages?CoverImage[]Optional. A Cover Image belonging to an Extension. Max 4 coverImages per extension.
website?stringOptional. The Extension's website
authorEmail?stringOptional. The email address of the extension author. This is made public
fileHandlers?FileHandler[]Optional. An array of file handlers registered by the extension.
tools?Tool[]Optional. An array of tools registered by the extension.
scopes?Scope[]Optional. An array of scopes required by the extension.
background?BackgroundPageOptional. A path to a background script

Types

CoverImage

A Cover Image belonging to your extension. Currently, only the first image will be used in the extension store. The path should reference an image file on the Repl's file system.

PropertyTypeDescription
pathstringThe path to the image. This is relative to the statically served root
labelstringThe label of the image. This is used as the alt text for the image

FileHandler

A file handler is a custom user experience around a particular file in the Workspace, in the form of a Pane.

PropertyTypeDescription
globstringA glob pattern that matches the files that this handler should be used for
handlerstringThe path to the handler. This is relative to the statically served root.
name?stringOptional. Required if more than one file handler is registered. Fallback value is the extension's name.
icon?stringOptional. Required if more than one file handler is registered. Fallback value is the extension's icon.

Tool

A tool is a custom user experience in the Workspace, in the form of a Pane.

PropertyTypeDescription
handlerstringThe path to the handler. This is relative to the statically served root.
name?stringOptional. Required if more than one tool is registered. Fallback value is the extension's name.
icon?stringOptional. Required if more than one tool is registered. Fallback value is the extension's icon.

Scope

Scopes/Permissions required by the extension.

| Property | Type | | -------- | ------------------------- | --------------------------------------------- | | name | ScopeType | The name of the scope | | reason | string | The reason why the extension needs this scope |

ScopeType

  • read - Read any file in a Repl
  • write-exec - Write to any file, and execute any code or shell command in a Repl
  • repldb:read - Read all data in the key-value ReplDB in a Repl
  • repldb:write - Write or delete any key in the key-value ReplDB in a Repl
  • experimental-api - Use experimental APIs that may be unstable, may change in behavior or be removed entirely
"read" | "write-exec" | "repldb:read" | "repldb:write" | "experimental-api"

BackgroundPage

The path to a specified route that will run a background script.

{
page: string;
}
Was this helpful?