Status
- As of December, 2025, with the release of WordPress 6.9, the Abilities PHP API is available as a Core API.
- At around the same time, the Abilities JavaScript API was merged into the Gutenberg plugin.
Roadmap
- Focus: WordPress 6.9:
- Minimal capabilities to be included #
- Documentation updates #
- Milestones: WordPress 6.9 [pre] / WordPress 6.9
- Other capabilities within AI plugin #
- Later:
- Add more capabilities.
- Milestone: Later
Milestones
Repo
Posts
Releases #
0.2.0
- Refactor the usage of
$propertiesparam to$argsto align with WordPress usage by @gziolo in #59 - Add HEAD method support for performance optimization by @Ref34t in #71
- Fix
$inputtype hint inWP_Abilityby @gziolo in #61 - chore: update dev-deps to latest by @justlevine in #72
- fix: use link_header instead of add_link for pagination responses by @emdashcodes in #81
- Update CONTRIBUTING.md by @akkspros in #80
- Docs: REST API Reference by @gziolo in #77
- Add execute actions to the ability object by @gziolo in #56
- dev: Bump the PHPStan testing to PHP 8.4 by @johnbillion in #82
- feat!: make
permission_callbackarg required by @justlevine in #73 - Add client-side package for Abilities API by @emdashcodes in #60
- dev: add
register_ability_argsfilter [Proposal] by @justlevine in #74 - docs: Fix the variable name by @mrabbani in #92
- Fix has_permission() return type inconsistency (Issue #67) by @Ref34t in #76
- Docs/semantic headings by @jonathanbossenger in #96
- Rename
check_permission()tocheck_permissions()onWP_Abilityby @gziolo in #94 - Fix backwards compatibility with WP_REST_Request API by @budzanowski in #98
- Prepare the branch for
v0.2.0release by @gziolo in #90 - Include JS build files in the Composer package in v0.2.0 release by @gziolo in #100
0.1.1
- Documentation: Include specific nvm version needed by @rollybueno in #33
- Updated Inline Documentation Order by @shail-mehta in #49
- Introduce Props Bot workflow by @desrosj in #50
- Updated Inline Documentation Order by @sandipr942 in #57
- dev!: handle property registration inside WP_Ability by @justlevine in #54
- Fix REST API initialization for composer package usage by @budzanowski in #55
Initial Release
- Implement server-side registry for Abilities API by @gziolo in #3
- chore: scaffold plugin entrypoint and tooling by @justlevine in #4
- Add REST API controllers for Abilities API by @emdashcodes in #6
- chore: php remediations by @justlevine in #11
- Adjust directory structure to align with WP core by @gziolo in #12
- ci: fix lint trigger on test GH workflow by @justlevine in #17
- tools(phpcs): remove conflicting TypeHint rules from PHPCS ruleset. by @justlevine in #15
- chore: align reqs with WP6.9 merge target by @justlevine in #18
- dev: use
$request->get_params()in REST controllers by @justlevine in #22 - Chore: Fix coding standard issues reported on wordpress-develop by @gziolo in #25
- ci: fixes and cleanup by @justlevine in #26
- code quality: add PHPStan array shape for ability
$propertiesby @justlevine in #20 - dev: use
WP_Abilities_Registry::$instanceinstead of adding a newglobalby @justlevine in #19 - dev!: return
WP_ErrorfromWP_Abilitymethods by @justlevine in #23 - Adding initial developer documentation by @jonathanbossenger in #10
- Update readme with links to documenation by @jonathanbossenger in #27
- Add LICENSE.md file by @gziolo in #29
- ci: build zip file for GitHub release by @justlevine in #24
- Refactor error handling in REST API run controller by @gziolo in #31
- Chore: Run
lint:php:fixon test files by @gziolo in #36 - Remove
ignoreErrorsfrom PHPStan by @gziolo in #40 - Update an example in Introduction & Overview document by @jonathanbossenger in #43
- dev!: require
string $namefor registration by @justlevine in #21 - Update 3.registering-abilities.md by @mujuonly in #46
- Add code quality improvements to code comments by @gziolo in #47
- Chore: Configure the composer package for publishing by @gziolo in #35
- docs: add installation steps for release by @justlevine in #48
WordPress Community Gains New Superpower with the Launch of the Abilities API Plugin
A new open-source plugin is redefining how WordPress sites, plugins, and external systems work together. The WordPress Abilities API Plugin introduces a standardized way to register and discover site functionality, making WordPress more interoperable, secure, and ready for the AI era.
With Abilities API, discrete, well-defined units of functionality plugins, themes, and AI agents can easily understand and interact with what a site can do. This innovation opens the door to more seamless automation, smarter AI integrations, and stronger collaboration across the WordPress ecosystem.
Our goal was to make WordPress functionality more discoverable, secure, and future-proof. By providing a common language for plugins, themes, and AI tools to interact, we’re giving developers and site owners a powerful new foundation for innovation.
Why It Matters
- For Developers: A unified, JSON Schema–based standard to expose and validate plugin capabilities.
- For Site Owners: More secure and reliable automation with permission-based controls.
- For AI & Automation: Machine-readable abilities that AI agents can use to intelligently perform site tasks.
The Abilities API Plugin is freely available to the open-source community and designed for immediate adoption. Any plugin or theme can now register its own Abilities, creating an ecosystem where WordPress functionality is not only extensible but also universally discoverable.
Developers and site owners can download the plugin today and start shaping the next era of WordPress innovation.