Skip to content
Skip to content
PGB Learn

Write the package manifest (pgb.package.json)

The one file that describes your package: name, type, version, permissions, settings and secrets, with the rules each field must follow.

Updated Nov 12, 2026

Every package contains a file called pgb.package.json at its top level (or inside one folder). It tells PGB Marketplace what the package is and what it needs.

The essentials

These fields are required:

  • schema_version: always "1".
  • name: lower-case letters, digits and dashes, up to 48 characters.
  • publisher: your publisher name.
  • type: one of agent, tool, integration, function, template, workflow, database, business-resource.
  • version: three numbers, such as 1.0.0.
  • display_name: up to 80 characters.
  • summary: up to 280 characters.
  • license: an open license identifier such as MIT.
  • portability: portable, compatible or native.

Useful optional fields

  • description (up to 5,000 characters), categories (up to 5), tags (up to 10 short lower-case words), homepage (https only), visibility (public or private).
  • dependencies: other packages, as "@publisher/name": "^1.0.0".
  • permissions: a list of what the package needs. Use only values from the Marketplace's list, for example business.mail.draft, database.read, network.outbound.
  • configuration: settings people fill in. Each has an UPPER_SNAKE_CASE name, a type (text, email, url, number, boolean, select or phone), and optionally required, default, options and a description.
  • secrets: names of secrets the package needs. A secret never has a default; people add their own after installing.

Type-specific blocks

  • A template needs a template block. See Template variables.
  • An agent needs an agent block: instructions (10 to 20,000 characters), model_route (fast, smart or code), tools, triggers, budget_usd_month and approval_policy. When someone adds your agent, Agents fills in the same fields. A schedule trigger starts paused.

Unknown keys are rejected, so check spelling.

An agent example

{
  "schema_version": "1",
  "name": "weekly-summary",
  "publisher": "acme",
  "type": "agent",
  "version": "1.0.0",
  "display_name": "Weekly Summary",
  "summary": "Writes a short summary of last week's mail.",
  "license": "MIT",
  "portability": "compatible",
  "permissions": ["business.mail.read", "notify.email"],
  "agent": {
    "instructions": "Read last week's mail and email the owner a short summary.",
    "model_route": "smart",
    "tools": ["business.mail.search", "notify.email"],
    "triggers": [{ "type": "manual" }]
  }
}

Good to know

More guides in PGB Marketplace