Docs / Developers / Production / Capabilities
ShipSDK 0.10.1

Capabilities

These docs are public. To publish a plugin you need a YourBot account: sign in to open the Dev Portal.

Every API your plugin uses corresponds to a capability. Declare them in capabilities_required; server admins choose which to grant at install time. The full table of capabilities, tiers and the calls each one unlocks lives in the capability catalog on the Reference tab.

The upload pipeline auto-adds any capability it detects from your code (with file and line attribution in the Dev Portal), plus two manifest implications: slash_commands implies interaction:respond, and a non-empty proxy_domains_requested implies proxy:http. So forgetting a capability does not make calls fail at upload; it silently appears on your consent screen, and if it is a reviewed tier it can send the version to staff review.

Tiers are what customers see at install: Safe, Standard and Dangerous badges on the consent screen. High-risk calls (bans, kicks, role changes, SQL) are additionally audit-logged by the platform.

Calling an API your plugin didn't request (or the admin didn't grant) raises CapabilityError at runtime — the runner blocks the call, you don't get partial damage. The user sees a "needs permission" prompt and can grant it without uninstalling.

YourBot docs Reference tables are generated from the code that is running. Ask in Discord Suggest a correction