# IdeA Plugin SDK Public TypeScript SDK for IdeA plugins. The SDK defines the stable manifest and runtime types used by plugins loaded by IdeA. A plugin ships an `idea-plugin.json` manifest plus an ESM entrypoint that exports `activate(ctx)`. ## Start Here - [Manifest](docs/manifest.md): required fields, capabilities and contribution ids. - [Activation And Context](docs/activation-context.md): `activate(ctx)`, lifecycle, logging, storage and subscriptions. - [Menus](docs/menus.md): top-level menus, native menu insertion and command registration. - [Commands And Feedback](docs/commands-and-feedback.md): command return values, skipped work and background tasks. - [Layouts With React](docs/layouts-react.md): React/JSX/hooks layout authoring with host-provided React. - [Windows](docs/windows.md): opening plugin layouts in detached OS windows. - [Services](docs/services.md): workspace, tasks, tooling, events, config, terminal and windows facades. - [Packaging And Distribution](docs/packaging-distribution.md): build output, archive layout and dependency rules. The installable example lives in [`examples/hello-plugin`](examples/hello-plugin). It demonstrates a menu command, storage, background-task feedback, a React layout component and `services.windows.open(...)`. ## Install ```sh npm install ``` ## Build ```sh npm run build ``` ## Validate The Example ```sh npm run typecheck:examples npm run package:hello-plugin ``` The example archive is written to: ```text examples/hello-plugin/build/hello-plugin-0.1.0.zip ```