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
Property | Type | Description |
---|---|---|
name | string | Required. The Extension's name. Length can be 1-60 characters. |
description | string | Required. The Extension's description. Length can be 1-255 characters. |
longDescription? | string | Optional. The Extension's longer description. Markdown is supported and recommended. |
icon? | string | Optional. 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? | string | Optional. The Extension's website |
authorEmail? | string | Optional. 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? | BackgroundPage | Optional. 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.
Property | Type | Description |
---|---|---|
path | string | The path to the image. This is relative to the statically served root |
label | string | The 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.
Property | Type | Description |
---|---|---|
glob | string | A glob pattern that matches the files that this handler should be used for |
handler | string | The path to the handler. This is relative to the statically served root. |
name? | string | Optional. Required if more than one file handler is registered. Fallback value is the extension's name. |
icon? | string | Optional. 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.
Property | Type | Description |
---|---|---|
handler | string | The path to the handler. This is relative to the statically served root. |
name? | string | Optional. Required if more than one tool is registered. Fallback value is the extension's name. |
icon? | string | Optional. 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 Replwrite-exec
- Write to any file, and execute any code or shell command in a Replrepldb:read
- Read all data in the key-value ReplDB in a Replrepldb:write
- Write or delete any key in the key-value ReplDB in a Replexperimental-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;
}