{"id":303983,"date":"2026-05-05T04:05:09","date_gmt":"2026-05-05T04:05:09","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-chatkit\/"},"modified":"2026-08-20T17:13:49","modified_gmt":"2026-08-20T17:13:49","slug":"chagency","status":"publish","type":"plugin","link":"https:\/\/ko.wordpress.org\/plugins\/chagency\/","author":7418083,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.0.5","stable_tag":"0.0.5","tested":"7.1","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"Chagency","header_author":"Jordy Meow","header_description":"A chatbot today, an agent tomorrow \u2014 built natively on the WordPress 7 AI framework, with zero third-party plugin requirements.","assets_banners_color":"889176","last_updated":"2026-08-20 17:13:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/jordymeow.com\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":574,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"0.0.1":{"tag":"0.0.1","author":"TigrouMeow","date":"2026-05-05 04:05:00"},"0.0.2":{"tag":"0.0.2","author":"TigrouMeow","date":"2026-05-15 06:59:55"},"0.0.3":{"tag":"0.0.3","author":"TigrouMeow","date":"2026-05-22 02:54:37"},"0.0.4":{"tag":"0.0.4","author":"TigrouMeow","date":"2026-06-03 01:20:04"},"0.0.5":{"tag":"0.0.5","author":"TigrouMeow","date":"2026-08-20 17:13:49"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3532754,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3532754,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3532754,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3532754,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.0.1","0.0.2","0.0.3","0.0.4","0.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3560753,"resolution":"1","location":"assets","locale":"","width":1318,"height":1324},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3560753,"resolution":"2","location":"assets","locale":"","width":2212,"height":1458},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3560753,"resolution":"3","location":"assets","locale":"","width":1946,"height":1516}},"screenshots":{"1":"The floating chat panel answering a question on a WordPress admin screen, with the native WP 7 look.","2":"The single settings screen under <strong>Settings \u2192 Chagency<\/strong>: where to show the chatbot, its title, greeting, system instruction, and model.","3":"Flip one toggle and the same chat panel runs on the public side of your site, for every visitor."}},"plugin_section":[],"plugin_tags":[251511,5061,2353,2364,259397],"plugin_category":[],"plugin_contributors":[77879],"plugin_business_model":[],"class_list":["post-303983","plugin","type-plugin","status-publish","hentry","plugin_tags-abilities","plugin_tags-agent","plugin_tags-ai","plugin_tags-chatbot","plugin_tags-connectors","plugin_contributors-tigroumeow","plugin_committers-tigroumeow"],"banners":{"banner":"https:\/\/ps.w.org\/chagency\/assets\/banner-772x250.png?rev=3532754","banner_2x":"https:\/\/ps.w.org\/chagency\/assets\/banner-1544x500.png?rev=3532754","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/chagency\/assets\/icon-128x128.png?rev=3532754","icon_2x":"https:\/\/ps.w.org\/chagency\/assets\/icon-256x256.png?rev=3532754","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/chagency\/assets\/screenshot-1.png?rev=3560753","caption":"The floating chat panel answering a question on a WordPress admin screen, with the native WP 7 look."},{"src":"https:\/\/ps.w.org\/chagency\/assets\/screenshot-2.png?rev=3560753","caption":"The single settings screen under <strong>Settings \u2192 Chagency<\/strong>: where to show the chatbot, its title, greeting, system instruction, and model."},{"src":"https:\/\/ps.w.org\/chagency\/assets\/screenshot-3.png?rev=3560753","caption":"Flip one toggle and the same chat panel runs on the public side of your site, for every visitor."}],"raw_content":"<!--section=description-->\n<p><strong>Chagency<\/strong> is built directly on the AI Client that shipped in WordPress 7.0: <code>wp_ai_client_prompt()<\/code>, Connectors, and the Abilities API. Every prompt flows through WordPress core, every provider is a Connector you already configured under <strong>Settings \u2192 Connectors<\/strong>, and the assistant can call the abilities your site registers.<\/p>\n\n<p>That last part is what makes it an agent rather than a chat box. Tick the abilities you want it to reach, and the model can use them mid-conversation to answer you: WordPress converts each one into a tool the model understands, runs it, and checks that ability's own permissions first. Ask \"what's my site running on?\" and it goes and looks, instead of guessing.<\/p>\n\n<p>It runs in the WordPress admin and, when you turn it on, on every page of your public site. The name (chat + ai + ency) is meant as a small bridge between the new AI primitives shipped with WordPress and the broader world of chat and agents.<\/p>\n\n<h3>\ud83e\udea8 Built on WordPress, period<\/h3>\n\n<p>Chagency relies entirely on what WordPress 7 ships in core:<\/p>\n\n<ul>\n<li><code>wp_ai_client_prompt()<\/code>, the AI Client API.<\/li>\n<li><code>using_abilities()<\/code> and <code>WP_AI_Client_Ability_Function_Resolver<\/code>, core's own tool-calling bridge.<\/li>\n<li><code>wp_get_connectors()<\/code>, the Connectors API.<\/li>\n<li><code>wp_register_ability()<\/code> \/ <code>wp_get_ability()<\/code> \/ <code>wp_get_abilities()<\/code>, the Abilities API.<\/li>\n<li><code>@wordpress\/components<\/code>, <code>@wordpress\/element<\/code>, <code>@wordpress\/boot<\/code>, the Gutenberg toolkit.<\/li>\n<\/ul>\n\n<p>That is the entire dependency surface. <strong>No bundled AI vendor SDKs, no third-party JavaScript libraries beyond the Gutenberg stack, no telemetry, no phone-home.<\/strong> The plugin stays small on purpose: fewer moving parts means less friction, fewer security holes, less to break when WordPress, browsers, or providers change.<\/p>\n\n<p>You will need at least one AI provider plugin (e.g. <em>AI Provider for Anthropic<\/em>, <em>AI Provider for Google<\/em>, <em>AI Provider for OpenAI<\/em>) to talk to a model. That is WordPress 7's architecture: providers are separate plugins that register a Connector. They are not a Chagency dependency.<\/p>\n\n<p>\ud83d\udca1 <strong>Tip:<\/strong> For the smoothest setup, install <a href=\"https:\/\/wordpress.org\/plugins\/ai-engine\/\">AI Engine<\/a>. It registers every AI provider it manages as a Connector, so a single configuration covers all your WordPress 7 AI plugins (including Chagency). Every request then flows through one clean, unified system.<\/p>\n\n<h3>\ud83e\ude84 What you get<\/h3>\n\n<ul>\n<li>A floating chat panel pinned to the bottom-right of every page (admin and \/ or public site, controlled by two independent toggles).<\/li>\n<li>A single settings page under <strong>Settings \u2192 Chagency<\/strong>, with the bare minimum: where to show the chatbot, the chat title, the greeting, the system instruction, the model preference, and which abilities the assistant may use.<\/li>\n<li>Abilities, opt-in one by one. Every ability registered on your site (by core, by Chagency, by any other plugin) can be handed to the assistant, and each call is shown under the reply so you can see what it actually did.<\/li>\n<li>Live updates: flipping a toggle in Settings shows or hides the launcher immediately on the same page, no reload needed.<\/li>\n<li>Per-provider <strong>Test<\/strong> buttons that fire a canary prompt and report round-trip time.<\/li>\n<li>Conversation persistence in your browser's localStorage, scoped per user.<\/li>\n<li>Failures explained in plain words (rejected key, rate limit, provider down, conversation too long) with a <em>Try again<\/em> button, so a hiccup never costs you what you typed.<\/li>\n<li>Placeholder expansion (<code>{user_name}<\/code>, <code>{site_name}<\/code>, <code>{current_page}<\/code>, <code>{current_url}<\/code>, <code>{user_role}<\/code>, <code>{site_url}<\/code>) so the assistant always knows who and where it is.<\/li>\n<li>Exposed as an Ability (<code>chagency\/send-message<\/code>) so other plugins, MCP clients, and AI agents can invoke Chagency directly.<\/li>\n<\/ul>\n\n<h3>\ud83d\ude80 Getting started<\/h3>\n\n<ol>\n<li>Install and activate <strong>Chagency<\/strong>.<\/li>\n<li>Install and configure at least one AI provider plugin under <strong>Settings \u2192 Connectors<\/strong> (we recommend <a href=\"https:\/\/wordpress.org\/plugins\/ai-engine\/\">AI Engine<\/a>, which exposes all its providers as Connectors at once).<\/li>\n<li>Click the chat launcher in the bottom-right of any admin page and start talking.<\/li>\n<li>Want it on the public site too? Open <strong>Settings \u2192 Chagency<\/strong> and flip the second toggle.<\/li>\n<\/ol>\n\n<h3>\ud83d\ude4b Frequently Asked Questions<\/h3>\n\n<h4>Why \"Chagency\"?<\/h4>\n\n<p>It's a portmanteau of <em>chat<\/em>, <em>AI<\/em>, and a bit of <em>agent<\/em>. Not \"agency\" in the sense of a marketing shop. The plugin starts as a minimal chatbot for the new WordPress 7 AI framework and grows alongside the Abilities API into a true agent.<\/p>\n\n<h4>Does it need WordPress 7?<\/h4>\n\n<p>Yes. It uses <code>wp_ai_client_prompt()<\/code>, <code>wp_get_connectors()<\/code>, and the Abilities API, all added in WordPress 7.0. On older versions it refuses to boot and tells you why. WordPress 7.1 is recommended.<\/p>\n\n<h4>How do abilities work, and is it safe?<\/h4>\n\n<p>Open <strong>Settings \u2192 Chagency<\/strong>, turn on <em>Let the assistant use abilities<\/em>, then tick the ones you want to allow. Nothing is allowed by default.<\/p>\n\n<p>Three things keep it tight. Only the abilities you ticked are ever offered to the model. WordPress runs each ability itself and checks that ability's own <code>permission_callback<\/code> for the person chatting, so the assistant can never do more than that user could. And abilities are admin-only: the public widget never gets them, even when you turn the public site on.<\/p>\n\n<p>Each reply lists the abilities it used, so nothing happens off-screen.<\/p>\n\n<h4>Which abilities can it use?<\/h4>\n\n<p>Whatever is registered on your site. WordPress ships <code>core\/get-site-info<\/code>, <code>core\/get-user-info<\/code> and <code>core\/get-environment-info<\/code>, and any plugin can register more. They all show up in the list.<\/p>\n\n<h4>Which AI providers are supported?<\/h4>\n\n<p>Whatever you configure under <strong>Settings \u2192 Connectors<\/strong>. Chagency is provider-agnostic. Anthropic, Google, OpenAI, or any third-party Connector are treated equally.<\/p>\n\n<h4>Can visitors on the front end use it?<\/h4>\n\n<p>Yes. Open <strong>Settings \u2192 Chagency<\/strong> and turn on <em>Show on the public site<\/em>. The chat then appears for every visitor, signed in or not.<\/p>\n\n<h4>Does it store my conversations?<\/h4>\n\n<p>No. Conversations live only in your own browser (localStorage, per user). Hit <em>Reset<\/em> in the panel to clear them. Nothing is stored server-side.<\/p>\n\n<h4>Can I use it as a building block in my own plugin?<\/h4>\n\n<p>Yes. The <code>chagency\/send-message<\/code> Ability is registered on <code>wp_abilities_api_init<\/code> and can be called with <code>wp_get_ability( 'chagency\/send-message' )-&gt;execute( array( 'message' =&gt; '...' ) )<\/code>.<\/p>\n\n<h3>Source code<\/h3>\n\n<p>The unminified React \/ JavaScript source is shipped inside the plugin folder under <code>src\/<\/code>, alongside the compiled output in <code>build\/<\/code>. Public source repository: https:\/\/github.com\/jordymeow\/chagency<\/p>\n\n<p>To rebuild from source:<\/p>\n\n<pre><code>pnpm install &amp;&amp; pnpm run build\n<\/code><\/pre>\n\n<p>The build is <code>@wordpress\/scripts<\/code> (webpack) with no custom plugins or transforms.<\/p>\n\n<!--section=changelog-->\n<h4>0.0.5 (2026\/08\/20)<\/h4>\n\n<ul>\n<li>Add: Abilities support \u2014 the assistant can use the ones you allow and shows which it called.<\/li>\n<li>Add: Try again button on failed messages, with provider errors explained in plain language.<\/li>\n<li>Update: Aligned with WordPress 7.1, including the new public ability meta and application-password connectors.<\/li>\n<li>Update: Limit how much of a long conversation is replayed to the model.<\/li>\n<li>Add: Test harness that checks the AI plumbing without a database.<\/li>\n<li>\ud83c\udf34 Keep us motivated with <a href=\"https:\/\/wordpress.org\/support\/plugin\/chagency\/reviews\/\">a little review here<\/a>. Thank you!<\/li>\n<\/ul>\n\n<h4>0.0.4 (2026\/06\/03)<\/h4>\n\n<ul>\n<li>Fix: Chat launcher now appears when the AI provider key is set via an environment variable or constant, not only when saved through the settings page.<\/li>\n<\/ul>\n\n<h4>0.0.3 (2026\/05\/22)<\/h4>\n\n<ul>\n<li>Update: Rebuilt plugin against the WP 7 AI plugin toolchain.<\/li>\n<li>Update: Sharpened wordpress.org positioning.<\/li>\n<\/ul>\n\n<h4>0.0.2 (2026\/05\/15)<\/h4>\n\n<ul>\n<li>Add: option to show the chat widget on the public site for all visitors<\/li>\n<li>Add: configurable chat title in the Settings page<\/li>\n<li>Add: chat panel stays open when navigating between admin pages<\/li>\n<li>Update: launcher, chat panel, and Settings page styled to match the WP 7 AI plugin<\/li>\n<li>\ud83c\udf34 Keep us motivated with <a href=\"https:\/\/wordpress.org\/support\/plugin\/chagency\/reviews\/\">a little review here<\/a>. Thank you!<\/li>\n<\/ul>\n\n<h4>0.0.1<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A chatbot built natively on the WordPress AI Client, and an agent through the Abilities API. No bundled SDKs, no telemetry.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/303983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=303983"}],"author":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tigroumeow"}],"wp:attachment":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=303983"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=303983"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=303983"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=303983"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=303983"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=303983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}