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 replit app. 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. Thepath should reference an image file on the Replit App’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 | Description | 
|---|---|---|
| name | ScopeType | The name of the scope | 
| reason | string | The reason why the extension needs this scope | 
ScopeType
- read- Read any file in a Replit App
- write-exec- Write to any file, and execute any code or shell command in a Replit App
- repldb:read- Read all data in the key-value ReplDB in a Replit App
- repldb:write- Write or delete any key in the key-value ReplDB in a Replit App
- experimental-api- Use experimental APIs that may be unstable, may change in behavior or be removed entirely