Skip to content

Add optional privacyPolicyUrl and termsOfServiceUrl to plugin metadata #92

Open

Description

@digitarald

Summary

Propose adding two optional fields to the root plugin.json manifest:

  • privacyPolicyUrl
  • termsOfServiceUrl

These are common publisher metadata fields already supported by existing plugin ecosystems, including Claude Code and OpenAI/Codex.

Standardizing them would allow plugin authors to declare these URLs once, rather than relying on client-specific extensions or marketplace-specific metadata.

Motivation

The current specification includes portable publisher metadata such as homepage, repository, and license, but does not provide dedicated fields for privacy policies or terms of service.

Both are commonly needed when distributing plugins through marketplaces or enterprise catalogs.

There is also existing precedent:

  • Claude Code supports privacyPolicyUrl and termsOfServiceUrl in its plugin manifest.
  • OpenAI/Codex supports privacyPolicyURL and termsOfServiceURL under its plugin manifest's interface object.

While these fields can be represented through client-specific extensions, the information itself is not client-specific. It describes the plugin publisher's policies regardless of which client consumes the plugin.

Proposal

Add two optional top-level string fields to plugin.json:

Field Type Required Description
privacyPolicyUrl string No HTTPS URL to the plugin publisher's privacy policy.
termsOfServiceUrl string No HTTPS URL to the terms governing use of the plugin.

Example:

{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
  "name": "example-plugin",
  "version": "1.0.0",
  "description": "Example plugin",
  "homepage": "https://example.com",
  "privacyPolicyUrl": "https://example.com/privacy",
  "termsOfServiceUrl": "https://example.com/terms"
}

Both fields would be optional and have no runtime semantics. Clients MAY display them in plugin discovery, installation, or management experiences.

The URLs describe the plugin publisher's policies and should not imply that they cover independently operated third-party services referenced by the plugin.

Proposed changes

  • Add both optional fields to the manifest metadata definition in §5.
  • Add corresponding string fields with URI format validation to plugin.schema.json.
  • Document that clients MAY surface these URLs but are not required to retrieve or display them.
  • Keep the fields optional, with no impact on plugin execution.

Open questions

  1. Should HTTPS be required, or merely recommended?
  2. Should invalid URLs be ignored rather than causing manifest validation to fail, given that these fields have no runtime impact?
  3. Are there other existing implementations or naming conventions we should consider before standardizing these fields?

Activity

  1. self-assigned this
    on Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions