LEVEL11

Docs

Marketplace

Finding, installing and publishing LEVEL11 plugins (skills, agents and MCP bundles), the package format, the review policy and versioning rules.

What you can install

The marketplace is where LEVEL11 plugins are shared. A plugin is a zip that bundles skills (folders with a SKILL.md), agent presets, MCP server settings and rules files; once installed they land exactly where Rules and MCP shows them. There are four kinds (kind): skills, agents, mcp, and bundle for a mix.

VS Code extensions are not what the marketplace is for. Extensions come from Open VSX, and LEVEL11 applies only themes and snippets from them. Extensions that ship a language server or UI do not work.

GitHub repositories in the skills.sh layout (for example emilkowalski/skills, pbakaus/impeccable) install directly by typing owner/repo, no publishing needed. Publish to the marketplace when you want a reviewed bundle that people find by name and version.

Package format

The zip must contain level11-plugin.json at its root.

{
  "id": "publisher.name",            // ^[a-z0-9-]{2,32}\.[a-z0-9-]{2,48}$ ; the publisher part must stay the same across versions and is bound to the uploading account on first publish
  "name": "Skills for Designers",     // ≤ 60 chars
  "version": "1.2.0",                 // semver; must be greater than the current published version
  "description": "…",                 // ≤ 300 chars
  "author": "Emil Kowalski",          // ≤ 80
  "homepage": "https://…",            // optional https URL
  "license": "MIT",                   // ≤ 40
  "kind": "skills" | "agents" | "mcp" | "bundle",
  "keywords": ["design", "animation"],// ≤ 10, each ≤ 30 chars
  "contents": {
    "skills": ["skills/animate"],     // directories inside the zip that contain SKILL.md (skills.sh-compatible)
    "agents": ["agents/reviewer.json"],// LEVEL11 agent preset JSON files
    "mcp": { "figma": { "command": "npx", "args": ["-y", "mcp-remote", "https://…"] } },
    "rules": ["rules/global.md"]
  }
}

The rules:

  • The part of id before the dot is the publisher name. It is bound to the account that publishes it first; no other account can publish under that publisher name.
  • Paths in contents are relative to the zip root and may not contain ... Every folder in skills must hold a SKILL.md, and every file in agents and rules must exist in the zip.
  • Each entry in contents.mcp has a string command and an array of string args (optionally env with string values).
  • contents must list at least one skill, agent, MCP server or rules file, and the zip is at most 20 MB.
  • Keys that are not in the manifest are ignored.

Publishing

From the app: Marketplace → Publish my plugin → Choose folder. When the folder has a level11-plugin.json, the app zips it and uploads it.

From a terminal, with your account token:

curl -F manifest=@level11-plugin.json -F package=@plugin.zip \
  -H "authorization: Bearer <token>" https://api.level11.co.kr/market/publish

The response is {"ok":true,"id":"…","version":"…","status":"pending"}. Publishing is limited to 10 uploads per account per hour; your plugins and the review state of each version are in the app's Marketplace tab or at GET /market/mine.

Review and listing

  • Uploads are listed after review. The result usually reaches your sign-in e-mail within 2 business days.
  • A rejection comes with the reason by e-mail. Fix it and upload again with the same version number.
  • What review checks: the description matches the contents; skills and rules do not exfiltrate user data or hide destructive commands; MCP servers point at public packages or URLs; nothing is included without a license that allows it.
  • A listed plugin can be taken down (unlisted) after a report or a confirmed policy violation. Local copies that people already installed stay as they are.

Versioning

  • A new version must be a higher semver than the one currently listed (or waiting for review). A rejected version number can be reused.
  • While a new version of a listed plugin is under review, the existing version stays listed. On approval the new version replaces it in the catalog and for downloads.
  • The app remembers the id and version of installed plugins and offers an update when the catalog has a higher version.

Catalog API

Readable by anyone.

Route What it returns
GET /market/plugins?q=&kind=&sort=downloads|recent Listed plugins. q matches name, description, keywords and id, case-insensitively
GET /market/plugins/:id The manifest and download count
GET /market/plugins/:id/download The approved version's zip