WordPress 7.0 introduced the Abilities API. Any active plugin can register an ability and the WordPress AI feature can then invoke it, consuming whatever credits or tokens your AI provider charges per call. By default every registered ability is exposed, and there is no built-in way to see what is exposed or to limit it.
Codevera AI Access Control adds a single settings screen that lists every plugin which has registered AI abilities, grouped by source plugin, and lets you allow or block each plugin as a whole or each individual ability.
How it works:
wp_register_ability() and records which plugin made the call.Free:
Works well for:
Under the hood:
wp_register_ability_args, wp_abilities_api_init, wp_unregister_abilitydebug_backtrace() of the file that called wp_register_ability, normalised to a plugin slugCVAIAC_SECRET constant or AUTH_SALT fallbackwp_optionsThis plugin does not contact any external service. It reads only local WordPress data. No telemetry, no analytics, no licence checks, no remote update checks beyond what WordPress core itself performs.
The plugin stores two options in the wp_options table:
cvaiac_settings – your allow and block selections, signed with an HMAC-SHA256 signaturecvaiac_ability_sources – a map of ability name to source plugin slug, populated automatically as plugins register their abilitiescvaiac_schema_version – an integer that records the storage format version, used for migrationNo personal data, no visitor data, and no AJAX requests to remote services.
When the plugin is uninstalled, all three options are removed.
Email info@codevera.ai for support, bug reports, or feature requests. Include your WordPress version, PHP version, a list of other plugins that register AI abilities, and a description of the issue with steps to reproduce.
Minimum:
Recommended:
The plugin does not collect or transmit any personal data. The settings option is stored locally and signed with an HMAC keyed to a site-specific secret. The source-tracker option contains only plugin slugs and ability names that are already public to any code running on the site.
Form submissions use a nonce and require the manage_options capability. The enforcement hooks run on every request that loads the Abilities API, so blocking takes effect from the next request after a setting is saved.
This plugin defends against opportunistic interference such as another plugin writing directly to the settings option, removing the enforcement hooks, or re-registering an ability that has already been blocked. It does not claim to be a security boundary against a fully hostile plugin that has code execution in the same PHP process. The safest practice is still to only install plugins you trust.