Skip to content

Development and Distribution

Develop your plugin from source, then package it as an .eidos-plugin file. This workflow works for the introductory example and projects with several modules.

@eidos.space/plugin-tools provides project creation, checking and packaging. It requires Node.js 22.12 or later and can be invoked with npx:

Terminal window
npx @eidos.space/plugin-tools --help

In an existing project, install plugin-tools and @eidos.space/plugin-sdk as development dependencies and keep a lockfile. The SDK provides editor type information. Import it using import type.

For a CSV editor, generate an example with parsing, editing and saving:

Terminal window
npx @eidos.space/plugin-tools create csv-editor --template document-view
cd csv-editor
npm install

Run npx @eidos.space/plugin-tools templates to see other examples and their purposes. Install interface libraries such as React in your plugin project when needed. Packaging includes them in the bundle.

For a small project, you can also export manifest and a default mount or activate function from a single .ts file. Check and pack commands accept both directories and standalone source files.

Run in the plugin directory:

Terminal window
npx @eidos.space/plugin-tools check . --target lite

This checks declarations, entry points and TypeScript, and checks that the requested features work in Eidos Lite. Fix diagnostics, load development source through Plugin Manager, and exercise the entry points your users will use.

Choose tests suited to your plugin. Text editors must test save, reopen, undo, redo, and external-change conflicts. Batch operations must test targets, cancellation, and partial completion. Check light and dark rendering and reopening for every interface.

Saving source automatically reloads the view. Changes to access declarations require another permission review. Automatic development updates last for the current run. Install a packaged build to keep using it after restart.

CLI Serve loads file views within tables and provides table queries and notifications. If your view also needs to work in Serve, check that target:

Terminal window
npx @eidos.space/plugin-tools check . --target cli

Lite’s filesystem, independent pages and extension operations are desktop features. Check for optional interfaces before calling them in a view intended for multiple environments.

Terminal window
npx @eidos.space/plugin-tools pack .

The command reports paths to an .eidos-plugin archive and a .sha256 checksum. Share the archive with users, who install it through Eidos Lite’s Plugin Manager and enable it for their Spaces.

To check a package in CLI Serve:

Terminal window
eidos --json plugin doctor /absolute/plugin.eidos-plugin
eidos serve /absolute/test.eidos --plugin /absolute/plugin.eidos-plugin

A doctor result with compatible: true means the package meets CLI feature requirements. Then open Serve in a browser and add the plugin from a table’s view menu.

Keep plugin IDs, view IDs and setting keys stable. Increase the plugin version, check it and create a new package. Test the update with copies of existing settings and files to check that user configuration remains usable.