Agentic AI Atlasby a5c.ai
OverviewWikiGraphFor AgentsEdgesSearchWorkspace
/
GitHubDocsDiscord
iiRecord
Agentic AI Atlas · Marketplace Format Specification
page:docs-plugins-marketplace-formata5c.ai
Search record views/
Record · tabs

Available views

II.Record viewspp. 1 - 1
overviewarticlejsongraph
II.
Page JSON

page:docs-plugins-marketplace-format

Structured · live

Marketplace Format Specification json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · wiki/docs/plugins/marketplace-format.mdCluster · wiki
Record JSON
{
  "id": "page:docs-plugins-marketplace-format",
  "_kind": "Page",
  "_file": "wiki/docs/plugins/marketplace-format.md",
  "_cluster": "wiki",
  "attributes": {
    "nodeKind": "Page",
    "sourcePath": "docs/plugins/marketplace-format.md",
    "sourceKind": "repo-docs",
    "title": "Marketplace Format Specification",
    "displayName": "Marketplace Format Specification",
    "slug": "docs/plugins/marketplace-format",
    "articlePath": "wiki/docs/plugins/marketplace-format.md",
    "article": "\n# Marketplace Format Specification\n\nA marketplace is a Git repository that indexes babysitter plugins via a `marketplace.json` manifest. The babysitter SDK clones these repositories locally and reads the manifest to discover available plugins.\n\n## marketplace.json Schema\n\nThe root manifest file must be named `marketplace.json` and placed at the repository root.\n\n### Top-Level Fields\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `name` | string | Yes | Human-readable marketplace name. This becomes the directory name when cloned locally. |\n| `description` | string | Yes | Short description of the marketplace |\n| `url` | string | Yes | Git remote URL of the marketplace repository |\n| `owner` | string | Yes | Marketplace owner name or organization |\n| `plugins` | object | Yes | Map of plugin name to `MarketplacePluginEntry` |\n\n### MarketplacePluginEntry Fields\n\nEach key in the `plugins` object is the plugin name (e.g., `\"babysitter@a5c.ai\"`), and each value has the following structure:\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `name` | string | Yes | Human-readable plugin name (should match the key) |\n| `description` | string | Yes | Short description of the plugin |\n| `latestVersion` | string | Yes | Latest available semantic version |\n| `versions` | string[] | Yes | List of all available versions, newest first |\n| `packagePath` | string | Yes | Relative path to the plugin package directory within the marketplace repository |\n| `tags` | string[] | Yes | Searchable tags for categorization |\n| `author` | string | Yes | Plugin author name or identifier |\n\n### Example marketplace.json\n\n```json\n{\n  \"name\": \"babysitter-marketplace\",\n  \"description\": \"Official marketplace for babysitter plugins\",\n  \"url\": \"https://github.com/a5c-ai/babysitter-marketplace.git\",\n  \"owner\": \"a5c-ai\",\n  \"plugins\": {\n    \"babysitter@a5c.ai\": {\n      \"name\": \"babysitter@a5c.ai\",\n      \"description\": \"Core babysitter plugin for AI-assisted development workflows\",\n      \"latestVersion\": \"0.0.176\",\n      \"versions\": [\"0.0.176\", \"0.0.175\", \"0.0.174\"],\n      \"packagePath\": \"plugins/babysitter-unified\",\n      \"tags\": [\"core\", \"development\", \"ai\"],\n      \"author\": \"a5c-ai\"\n    },\n    \"code-review@a5c.ai\": {\n      \"name\": \"code-review@a5c.ai\",\n      \"description\": \"Automated code review plugin\",\n      \"latestVersion\": \"1.2.0\",\n      \"versions\": [\"1.2.0\", \"1.1.0\", \"1.0.0\"],\n      \"packagePath\": \"plugins/code-review\",\n      \"tags\": [\"review\", \"quality\"],\n      \"author\": \"a5c-ai\"\n    }\n  }\n}\n```\n\n## Repository Directory Structure\n\nA marketplace repository should follow this layout:\n\n```\nbabysitter-marketplace/\n  marketplace.json            # Manifest (required)\n  plugins/\n    babysitter-unified/       # Plugin package directory\n      install.md\n      uninstall.md\n      configure.md\n      install-process.js\n      migrations/\n        0.0.174_to_0.0.175.md\n        0.0.175_to_0.0.176.md\n    code-review/\n      install.md\n      uninstall.md\n      configure.md\n      migrations/\n        1.0.0_to_1.1.0.md\n        1.1.0_to_1.2.0.md\n```\n\nThe `packagePath` field in each plugin entry points to the relative path within the repository or marketplace checkout (for example, `\"plugins/babysitter-unified\"` in this repo).\n\n## Local Clone Structure\n\nWhen a marketplace is cloned via `plugin:add-marketplace`, it is stored under the babysitter configuration directory:\n\n- **Global scope**: `~/.babysitter/marketplaces/<marketplace-name>/`\n- **Project scope**: `<projectDir>/.babysitter/marketplaces/<marketplace-name>/`\n\nThe marketplace name is derived from the Git URL (the repository name without the `.git` suffix). For example, cloning `https://github.com/a5c-ai/babysitter-marketplace.git` produces a directory named `babysitter-marketplace`.\n\n## Version Tracking\n\nThe `latestVersion` field in each plugin entry determines the default version used during `plugin:install` when no `--plugin-version` flag is provided. The `versions` array provides a complete history for reference, listed newest first.\n\nVersion strings follow semantic versioning conventions (e.g., `1.0.0`, `2.0.0-beta.1`). Pre-release identifiers with dashes and dots are supported.\n\n## Creating a Marketplace Repository\n\n1. Create a new Git repository.\n\n2. Create a `marketplace.json` at the root with the schema described above.\n\n3. Create plugin package directories under a conventional path (typically `plugins/`).\n\n4. For each plugin, add an entry to `marketplace.json` with the `packagePath` pointing to the plugin package directory.\n\n5. Push the repository to a Git remote (GitHub, GitLab, Bitbucket, or any Git-accessible URL).\n\n6. Users can then add the marketplace:\n   ```bash\n   babysitter plugin:add-marketplace --marketplace-url <your-repo-url> --global\n   ```\n\n## Updating the Marketplace\n\nWhen you release a new plugin version:\n\n1. Update the plugin package directory with new instruction files and migration files.\n2. Update the `latestVersion` field in `marketplace.json`.\n3. Add the new version to the front of the `versions` array.\n4. Commit and push the changes.\n\nUsers update their local clone with:\n```bash\nbabysitter plugin:update-marketplace --marketplace-name <name> --global\n```\n\n## TypeScript Interfaces\n\nThe marketplace types are defined in `packages/sdk/src/plugins/types.ts`:\n\n- `MarketplaceManifest` -- The full manifest structure\n- `MarketplacePluginEntry` -- A single plugin entry within the manifest\n- `MARKETPLACE_MANIFEST_FILENAME` -- The constant `\"marketplace.json\"`\n",
    "documents": []
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "page:docs-plugins",
      "to": "page:docs-plugins-marketplace-format",
      "kind": "contains_page"
    }
  ]
}

Shortcuts

Back to overview
Open graph tab