This monorepo brings together plugins for Pumpkin, the tools used to build and release them, reusable GitHub Actions, and VS Code extensions. Most components are written in TypeScript. It was originally built on and inspired by pumpkin-api-ts.
Browse the public documentation site for guides, component overviews, and generated API references.
Actions
| Action | Description |
|---|---|
| Publish to Pumpkin Market | Upload a released Pumpkin plugin WebAssembly file to its existing Market listing |
| Sign Pumpkin plugin | Sign Pumpkin plugin WebAssembly files with their Ed25519 release metadata |
| Update Pumpkin Market Listing | Update Pumpkin Market listing metadata from a JSON file or direct inputs |
| Verify Pumpkin plugin | Verify Pumpkin plugin signatures with optional public-key pinning and metadata checks |
Plugins
| Plugin | Description | License |
|---|---|---|
| AppleSkinPumpkin | The plugin syncs saturation and exhaustion so AppleSkin can show accurate food stats. | MIT |
| BedrockAddonManager (unreleased) | BedrockAddonManager hosts Bedrock resource packs over HTTP, reads their manifests and prints the pumpkin.toml block that makes Pumpkin offer them to players. |
MIT |
| DistantHorizonsSupportPumpkin | This unofficial integration lets Java players use Distant Horizons with terrain from your Pumpkin server. | GPL-3.0-or-later |
| DynamicLightsPumpkin | DynamicLightsPumpkin shows temporary light around supported items and nearby entities without changing the world. | MIT |
| TabDisplay (unreleased) | TabDisplay formats Java player-list names, headers, and footers. It leaves Bedrock lists unchanged. | MIT |
| UPnPumpkin | UPnPumpkin asks UPnP or NAT-PMP routers to forward server ports so players outside your network can connect. Other plugins can request mappings too. | MIT |
| Waypoints | Waypoints lets you create shared locations, control who can access each one, show them on a Java HUD, and look them up with PumpkinPIE placeholders. | MIT |
Tools
| Package | Description | License |
|---|---|---|
| @pumpkin-plugins/pumpkin-pie-api | PumpkinPIE client for protocol checks and placeholder expansion | MIT |
| @pumpkin-plugins/upnpumpkin-api | Request and release router port mappings through UPnPumpkin | MIT |
| @pumpkin-plugins/build | Shared build tool for the plugins | MIT |
| @pumpkin-plugins/codemod | Codemod runner for Pumpkin plugins | MIT |
| @pumpkin-plugins/config | Schema-driven TOML config for plugins | MIT |
| create-pumpkin-plugin | Create a minimal Pumpkin plugin project | MIT |
| @pumpkin-plugins/cspell-dict-minecraft | Minecraft terminology for Code Spell Checker and cspell | MIT |
| @pumpkin-plugins/docs | Generates component READMEs, doc links, and repository catalogs | MIT |
| @pumpkin-plugins/minecraft-colors | Chalk-like Minecraft text formatting for plugins | MIT |
| @pumpkin-plugins/plugin-kit | Shared lifecycle, command, task, logging, and file helpers for plugins | MIT |
| @pumpkin-plugins/port-mapping | UPnP and NAT-PMP port mapping | MIT |
| @pumpkin-plugins/pumpkin-api | TypeScript API for PumpkinMC plugins | MIT |
| @pumpkin-plugins/signing | Ed25519 signing for plugin builds | MIT |
| @pumpkin-plugins/static-analysis | Static JavaScript and TypeScript module graph analysis | MIT |
| @pumpkin-plugins/static-hermes-runtime | Static Hermes Runtime shim for Pumpkin plugin components | MIT |
| @pumpkin-plugins/terrain | Shared terrain capture and access contracts | MIT |
| @pumpkin-plugins/test-harness | Runs plugins on a real Pumpkin in vitest | MIT |
| @pumpkin-plugins/update-check | Check plugin versions against Pumpkin Market | MIT |
| @pumpkin-plugins/wasi-capabilities | WASI capability metadata for Pumpkin plugins | MIT |
VS Code extensions
| Extension | Description | License |
|---|---|---|
| Minecraft Terms | Minecraft terminology for Code Spell Checker | MIT |
Use the Node.js version pinned in .node-version and the pnpm version in
package.json. From the repository root, install dependencies, build the plugins,
and run the unit-test suite:
pnpm install
pnpm build
pnpm testRun the generator to scaffold a plugin in packages/:
pnpm genIt asks for a folder name, a plugin name, and a description, then registers the package for releases and generates its README. To provide those answers without prompts, pass them in order:
pnpm gen --args my-plugin MyPlugin "Does a thing"See Creating a plugin for the generated files and next steps.
Run pnpm gen:action to scaffold a GitHub Action, or pnpm gen:extension to create a VS Code
extension. Their guides explain what each generator creates and how releases work: Creating an
action and Creating an extension.
Run these commands from the repository root. Most workspace tasks use Turborepo, which reuses cached results for packages that haven't changed.
| Command | What it does |
|---|---|
pnpm gen |
Scaffold a new plugin; see Creating a plugin. |
pnpm gen:action |
Scaffold a GitHub Action; see Creating an action. |
pnpm gen:extension |
Scaffold a VS Code extension; see Creating an extension. |
pnpm build |
Build every plugin to packages/*/build/*.wasm. |
pnpm lint |
Run Biome's lint, formatting and import-order checks, followed by the JSDoc check. Use pnpm lint:fix to apply fixes. |
pnpm lint:commits |
Check the latest commit message against the Conventional Commits rules used by CI. |
pnpm typecheck |
Typecheck every package in the workspace. |
pnpm test |
Run the workspace unit tests. |
pnpm coverage |
Run the unit tests of every package outside extensions/, then the script and action tests, with V8 coverage; LCOV reports go under package and action coverage directories. |
pnpm test:scripts |
Run the tests for repository checks, release scripts and agent hooks. |
pnpm test:integration |
Build the plugins, then run their tests against a real Pumpkin server. Set PUMPKIN_BIN to choose the server binary; see Testing. |
pnpm readme |
Regenerate component READMEs, catalogs and documentation references. |
pnpm check |
Check release configuration, package metadata and docs against the repository; see Code style. |
pnpm fix |
Check release configuration, repair package metadata, regenerate READMEs and documentation links, then apply lint fixes. |
pnpm dev:docs |
Generate API references and serve the documentation site locally. |
pnpm docs |
Generate API references and build the full static documentation site. |
pnpm docs:api |
Generate type declarations and API reference pages for the documentation site. |
pnpm docs:site |
Build the VitePress site from the generated API pages. |
pnpm docs:preview |
Preview the most recently built documentation site. |
pnpm package |
Collect built plugins in dist/<plugin>.wasm and create checksums. The reusable action handles signing separately; see CI and releases. |
To find the Markdown source pages behind the guides, start with docs/README.md.
Reusable actions live in actions/{name}/, with their own metadata, implementation and README.
Release Please versions and tags each action independently, so releasing one action doesn't also
ship plugin builds or other actions.