{"id":348187,"date":"2026-08-07T15:31:18","date_gmt":"2026-08-07T15:31:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/context-assistant\/"},"modified":"2026-08-07T15:31:09","modified_gmt":"2026-08-07T15:31:09","slug":"context-assistant","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/context-assistant\/","author":23543869,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.0.3","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"Context Assistant","header_author":"Context Assistant","header_description":"Context-aware AI assistant widget: answers about the current page, performs actions only through preview and confirmation. Standard mode: chat + page context in 5 minutes.","assets_banners_color":"323b49","last_updated":"2026-08-07 15:31:09","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/contextassistant.io\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":25,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"contextassistant","date":"2026-08-07 15:31:09"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3638014,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3638014,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3638014,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3638014,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"context-assistant\/assistant":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"context-assistant\/assistant","title":"Context Assistant","category":"widgets","icon":"format-chat","description":"Shows the Context Assistant chat widget on this page (useful when the widget is limited to selected post types).","keywords":["assistant","chat","ai"],"textdomain":"context-assistant","supports":{"html":false,"multiple":false},"editorScript":"file:.\/editor.js"}},"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3638014,"resolution":"1","location":"assets","locale":"","width":1280,"height":860},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3638014,"resolution":"2","location":"assets","locale":"","width":390,"height":620},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3638014,"resolution":"3","location":"assets","locale":"","width":1280,"height":860},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3638014,"resolution":"4","location":"assets","locale":"","width":1280,"height":860},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3638014,"resolution":"5","location":"assets","locale":"","width":1280,"height":860}},"screenshots":{"1":"A visitor asks in plain language; the answer is grounded in the site's own published pages. The page body itself is never sent \u2014 only the small facts you allow.","2":"Anything that changes the site stops at a preview card first and runs only after an explicit Apply, under the signed-in user's own WordPress capabilities.","3":"Settings: one connection check for the API, the assistant and the bridge. The secret key is stored encrypted and never shown again.","4":"The setup wizard asks for three values from your console and nothing else.","5":"Insights: usage and real conversation transcripts, without leaving wp-admin."}},"plugin_section":[],"plugin_tags":[2353,1320,5707,2364,286],"plugin_category":[41,45],"plugin_contributors":[274809,274810],"plugin_business_model":[],"class_list":["post-348187","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-assistant","plugin_tags-chat","plugin_tags-chatbot","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-contextassistant","plugin_contributors-sandra1n","plugin_committers-contextassistant"],"banners":{"banner":"https:\/\/ps.w.org\/context-assistant\/assets\/banner-772x250.png?rev=3638014","banner_2x":"https:\/\/ps.w.org\/context-assistant\/assets\/banner-1544x500.png?rev=3638014","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/context-assistant\/assets\/icon-128x128.png?rev=3638014","icon_2x":"https:\/\/ps.w.org\/context-assistant\/assets\/icon-256x256.png?rev=3638014","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/context-assistant\/assets\/screenshot-1.png?rev=3638014","caption":"A visitor asks in plain language; the answer is grounded in the site's own published pages. The page body itself is never sent \u2014 only the small facts you allow."},{"src":"https:\/\/ps.w.org\/context-assistant\/assets\/screenshot-2.png?rev=3638014","caption":"Anything that changes the site stops at a preview card first and runs only after an explicit Apply, under the signed-in user's own WordPress capabilities."},{"src":"https:\/\/ps.w.org\/context-assistant\/assets\/screenshot-3.png?rev=3638014","caption":"Settings: one connection check for the API, the assistant and the bridge. The secret key is stored encrypted and never shown again."},{"src":"https:\/\/ps.w.org\/context-assistant\/assets\/screenshot-4.png?rev=3638014","caption":"The setup wizard asks for three values from your console and nothing else."},{"src":"https:\/\/ps.w.org\/context-assistant\/assets\/screenshot-5.png?rev=3638014","caption":"Insights: usage and real conversation transcripts, without leaving wp-admin."}],"raw_content":"<!--section=description-->\n<p>Context Assistant adds an AI chat widget to your site \u2014 but unlike a\ngeneric chatbot, it is built around three ideas:<\/p>\n\n<ul>\n<li><strong>Page context.<\/strong> The assistant knows <em>where<\/em> the visitor is: which\npost or product is open, its title and categories. Never the page\nbody, never form input, never cookies \u2014 only small facts you allow.<\/li>\n<li><strong>Answers from your content.<\/strong> Published posts, pages and products\nare synced into a knowledge base; the assistant answers questions\nabout <em>your<\/em> site, grounded in retrieval, not model memory.<\/li>\n<li><strong>Safe actions.<\/strong> The assistant can act \u2014 search content, draft\nposts, check a customer's own order, update stock \u2014 always with the\nsigned-in user's own WordPress capabilities, and any change only\nafter an explicit preview card and an Apply click. Deletions need a\nsecond confirmation and go to the trash, never permanent removal.<\/li>\n<\/ul>\n\n<p>The heavy lifting (models, retrieval, orchestration) runs on a Context\nAssistant server; this plugin connects your site to it. Your secret API\nkey is encrypted at rest and never leaves your server \u2014 visitors only\never hold short-lived tokens.<\/p>\n\n<p><strong>WooCommerce:<\/strong> with WooCommerce active, the assistant additionally\nsearches the catalog with live prices and stock, shows a signed-in\ncustomer the status of their own orders, and lets shop managers update\nstock through the preview\/Apply flow.<\/p>\n\n<p><strong>For developers:<\/strong> add your own assistant tools with the\n    context_assistant_tools filter, extend the page context with\n    context_assistant_page_context, and control widget visibility with\n    context_assistant_should_render. WP-CLI: <code>wp context-assistant sync<\/code>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not work on its own: the models, retrieval and\norchestration run on a <strong>Context Assistant server<\/strong> that you configure\nin <strong>Settings \u2192 Context Assistant<\/strong> (the API URL). That server is\neither your own self-hosted instance or the hosted Context Assistant\nservice \u2014 the plugin talks only to whichever URL you enter.<\/p>\n\n<p>What the plugin sends to that server, and when:<\/p>\n\n<ul>\n<li><strong>When a visitor opens the chat<\/strong> \u2014 a short-lived embed token is\nminted for the browser, and the page context you allowed (page URL,\ntitles, public taxonomy terms; each behind its own privacy toggle,\nnever the page body or form input) is attached to the conversation.<\/li>\n<li><strong>On each message<\/strong> \u2014 the visitor's message text and that page\ncontext, so the assistant can answer. Visitors are identified by an\nanonymous cookie, not by name.<\/li>\n<li><strong>When knowledge sync is enabled<\/strong> \u2014 the text of your <em>published<\/em>\nposts, pages and products (never drafts or private content), so the\nassistant can answer from your own content.<\/li>\n<li><strong>When the Remote Tools bridge is enabled<\/strong> \u2014 the server calls back\ninto your site to run tools under the signed-in user's own WordPress\ncapabilities; your secret API key stays encrypted on your server and\nis never sent to the browser.<\/li>\n<\/ul>\n\n<p>Conversation transcripts are stored on that server and can be exported\nor deleted (see the FAQ). No data is sent anywhere else.<\/p>\n\n<p>If you use the <strong>hosted<\/strong> Context Assistant service, it is operated\nunder its own terms of service and privacy policy:\nTerms: https:\/\/contextassistant.io\/terms\/\nPrivacy: https:\/\/contextassistant.io\/privacy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Open <strong>Settings \u2192 Context Assistant<\/strong>.<\/li>\n<li>Enter your API URL, secret key (<code>ca_sk_\u2026<\/code>) and Assistant ID from the\nContext Assistant console, and make sure your site's origin is\nallow-listed on the assistant.<\/li>\n<li>Press <strong>Check connection<\/strong> \u2014 three green checks mean the widget is\nlive on your site.<\/li>\n<li>Optional: enable <strong>Knowledge base sync<\/strong> so the assistant answers\nfrom your content, and the <strong>Remote Tools bridge<\/strong> so it can act.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20key%20goes%20into%20the%20settings%3F\"><h3>Which key goes into the settings?<\/h3><\/dt>\n<dd><p>The Context Assistant secret key (<code>ca_sk_\u2026<\/code>) from your console. The AI\nprovider key (e.g. an OpenAI <code>sk-\u2026<\/code> key) is configured on the Context\nAssistant server and never enters WordPress.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20widget%20send%3F\"><h3>What data does the widget send?<\/h3><\/dt>\n<dd><p>Per message: the page URL, titles and public taxonomy terms \u2014 each\nbehind its own toggle, and never the page body. The knowledge base\nsync sends only published content. Visitors are identified by an\nanonymous cookie; the plugin sets no tracking cookies beyond it.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20caching%3F\"><h3>Does it work with page caching?<\/h3><\/dt>\n<dd><p>Yes. Anonymous pages carry nothing user-specific \u2014 tokens are fetched\nby the browser after the page loads, so full-page caches keep working.<\/p><\/dd>\n<dt id=\"can%20visitors%20change%20my%20site%20through%20the%20assistant%3F\"><h3>Can visitors change my site through the assistant?<\/h3><\/dt>\n<dd><p>No. Guests only see read-only tools over already-public content.\nMutating tools exist only for signed-in users with the matching\nWordPress capabilities, and every mutation requires an explicit\nconfirmation in the chat.<\/p><\/dd>\n<dt id=\"can%20i%20export%20or%20delete%20the%20conversation%20history%3F\"><h3>Can I export or delete the conversation history?<\/h3><\/dt>\n<dd><p>Yes. Transcripts are stored on the Context Assistant server, not in\nyour WordPress database. The server exposes an export of all\nconversations and deletion of any single conversation, so a visitor's\ndata can be handed over or erased on request (GDPR). Self-hosting the\nserver keeps that data entirely under your control \u2014 see below.<\/p><\/dd>\n<dt id=\"where%20are%20the%20widget%27s%20readable%20sources%3F\"><h3>Where are the widget's readable sources?<\/h3><\/dt>\n<dd><p>The plugin enqueues a minified <code>assets\/embed.js<\/code>. Its full, unminified\nsource ships beside it as <code>assets\/embed.src.js<\/code>, and both are built\nfrom <code>packages\/embed-sdk<\/code> in the public repository \u2014 no build step is\nhidden.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: chat widget with page context, embed-token security,\nknowledge base sync (RAG), 25 capability-scoped WordPress and\nWooCommerce tools, and a WP-CLI sync command.<\/li>\n<\/ul>","raw_excerpt":"A context-aware AI assistant that answers from your site content and performs confirmed WordPress and WooCommerce actions.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/348187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=348187"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/contextassistant"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=348187"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=348187"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=348187"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=348187"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=348187"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=348187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}