@jolter/jdt and provides the jdt CLI.
Install the toolkit
jdt init creates the minimum project shape:
types and wit files make the plugin project self-contained and keep the WebAssembly component world explicit.
Root plugin.json
The root manifest describes the plugin repository before any release is published:
plugin.json
Implement the plugin API
The generated TypeScript plugin exports three functions:src/plugin.ts
listTools declares provided tools and shimmed commands. resolveTool returns the exact artifact Jolter should install for a selector and platform. validateInstalled decides whether an existing plugin-tool installation is still reusable.
Test locally
Run the local TypeScript or JavaScript API without building WebAssembly:jdt run validates returned JSON shapes and fails when a tool release is malformed.
Build and validate
jdt build writes dist/plugin.wasm. It uses Bytecode Alliance component tooling through jco and currently requires Node.js for componentization, even if the rest of the project uses Bun.
If you already have a WebAssembly component, package it explicitly:
Generate release artifacts
jdt pack runs build, manifest generation, and validation. It writes:
Quality checklist
Before publishing:plugin.jsonis committed at the repository root;plugin.json#namematches the registry owner scope and slug;repository.urlpoints to the same GitHub repository you will add to the registry;listToolsreturns stable tool and command names;resolveToolreturns exact semantic versions and HTTPS artifact URLs;sha256values are lowercase 64-character hex strings;archiveFormatistar.gzorzip;stripComponentsis a non-negative integer;validateInstalledcatches missing command entry points;- the plugin does not request shell execution permissions.