-
Notifications
You must be signed in to change notification settings - Fork 2
Getting Started
Warning
If you plan to publish your extension in the Marketplace, make sure it meets these expectations below, otherwise it may not be accepted:
- Quality — Design, behavior, and usefulness should be intentional: the extension should work well, look good, and offer a clear benefit to users.
- Purpose — It should be meaningfully related to file management, productivity, or how people use the Sigma File Manager app itself. Extensions that are unrelated to the app’s scope are unlikely to be listed, unless it's impressive enough to become an exception to the rule.
Start from sfm-extension-template and pick a folder under templates/.
| Template | Use case |
|---|---|
templates/minimal-command |
One simple command and notifications |
templates/context-menu-notification |
File context-menu actions |
templates/modal-and-dialogs |
Commands plus dialogs or a modal |
templates/progress-and-context |
Progress UI, current context, or settings |
templates/binary-deno |
A managed external binary |
templates/powershell-runtime |
Windows-only PowerShell integration |
templates/advanced-shell-fallback |
Cross-platform shell and binary workflows |
Copy the selected folder into a new repository. The copied folder becomes your extension root.
Code-based extensions usually contain:
package.jsonsrc/locales/dist/
Manifest-only theme and icon theme extensions can start with just package.json and any assets referenced by the manifest.
Update these package.json fields before you build:
idnamepublisherrepositorylicensecategoriestagsengines-
platformsif your extension is not cross-platform -
permissionsso they match what your code actually uses
Use your own publisher identity, usually your GitHub user or organization. Do not keep template placeholders, and do not use Sigma File Manager names, logos, badges, or wording that makes a community extension look official.
For API extensions that run code, the usual base looks like this:
{
"$schema": "./node_modules/@sigma-file-manager/api/manifest.schema.json",
"id": "your-name.my-extension",
"name": "My Extension",
"version": "1.0.0",
"type": "module",
"extensionType": "api",
"main": "dist/index.js",
"engines": {
"sigmaFileManager": ">=2.0.0"
},
"scripts": {
"build": "tsc",
"prepare": "npm run build"
}
}Then replace the starter placeholders:
- Replace starter command IDs and context-menu IDs in
package.json. - Replace the same starter IDs in
src/index.ts. - Update
activationEvents, especiallyonCommand:...values. - Rename visible strings in
locales/en.json. - Remove any demo commands, menu items, dialogs, or notifications you are not shipping.
Use this ID pattern:
- In
contributes.commands,contributes.contextMenu,sigma.commands.registerCommand(), andsigma.contextMenu.registerItem(), use the short ID such asdownload-video. - In
activationEvents, use the full ID such asonCommand:sigma.video-downloader.download-video.
See Manifest Reference for the full manifest shape.
npm install@sigma-file-manager/api is a development dependency that provides TypeScript types and the manifest schema. The host does not run npm install for end users.
If your extension runs code, build it before installing or publishing:
npm run buildFor code-based extensions, confirm that the file referenced by main exists, usually dist/index.js.
In Sigma File Manager app:
- Open Extensions page.
- Open the top-right menu.
- Choose Install extension from folder.
- Select the folder that contains your extension
package.json.
Run npm run build again before reinstalling whenever you change compiled files. Manifest-only theme and icon theme extensions do not need a build step unless they include generated assets.
← Previous: Home
Next: Manifest Reference →