Sharkord
Plugins

Marketplace

Find plugins, and publish your own.

The marketplace is a registry of plugins, browsable from inside Sharkord. It is a single JSON file in a public repository: github.com/Sharkord/plugins.

For Users

Open the server settings, browse the marketplace, and install with one click. Sharkord downloads the release from the URL in the registry and checks it against the published checksum before unpacking it.

A listing is not a review

Anyone can publish. The verified badge means the maintainers recognise the publisher, not that the code was audited. See Security.

For Developers

Publishing is a pull request against the registry repository, adding an entry that points at a GitHub release of your plugin.

Each entry carries the plugin's metadata (id, name, description, author, logo, optional homepage, tags, categories, screenshots) and a list of versions. Each version has a version, an HTTPS downloadUrl, a checksum, the sdkVersion it targets, its size, and a timestamp.

Step 1: Create a GitHub Token

The publish script needs a Personal Access Token with the repo scope, so it can create a release in your plugin's repository.

  1. GitHub → Settings → Developer settings.
  2. Personal access tokens → Generate new token.
  3. Select the repo scope and generate it.

Copy .env.example to .env in your plugin and add it:

GITHUB_TOKEN=your_token_here

Step 2: Point It at Your Repository

publish.ts in the scaffold names the repository the release goes to:

import { publish } from "@sharkord/plugin-builder";
import { PLUGIN_SDK_VERSION } from "@sharkord/plugin-sdk";

const result = await publish({
  githubToken: process.env.GITHUB_TOKEN,
  repo: "owner/repo",
  sdkVersion: PLUGIN_SDK_VERSION,
});

console.log("Plugin published successfully", result.releaseUrl);

Leave repo out and it is read from your git remote.

Step 3: Publish

bun run publish

The script builds the plugin, syncs manifest.json with your package.json version and the SDK version, creates a GitHub release tagged v<version>, and uploads two assets: the plugin archive, and a <version>.json file holding the metadata the registry needs, checksum and download URL included.

This assumes a public GitHub repository. Hosting the release elsewhere means assembling that metadata by hand.

Step 4: Open a PR

Add your generated version file to github.com/Sharkord/plugins, following the layout of the existing entries. Once it is merged, your plugin shows up in every server's marketplace.

Publishing a new version is the same flow again: bump the version in package.json, run the script, open a PR with the new version file.

sdkVersion pins compatibility

Servers only offer a version whose sdkVersion matches their own, so publish a new release after every SDK bump or existing installs cannot update.

On this page