{"id":345237,"date":"2026-07-27T04:59:49","date_gmt":"2026-07-27T04:59:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/achla-ai-search\/"},"modified":"2026-07-28T07:37:08","modified_gmt":"2026-07-28T07:37:08","slug":"achlaai","status":"publish","type":"plugin","link":"https:\/\/bel.wordpress.org\/plugins\/achlaai\/","author":23536467,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.3.5","stable_tag":"0.3.5","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Achla AI Search","header_author":"Achla AI Search","header_description":"Securely connects this WordPress site to Achla AI Search and controls widget placement.","assets_banners_color":"e3ddd0","last_updated":"2026-07-28 07:37:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/achlaai.com\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":52,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.3.5":{"tag":"0.3.5","author":"achlaai","date":"2026-07-28 07:37:08"}},"upgrade_notice":{"0.3.5":"<p>Security update. The runtime placement diagnostic endpoint now requires a\nWordPress nonce. Updating is recommended.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3623963,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3623963,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3623963,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3623963,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"achlaai\/inline-search":{"name":"achlaai\/inline-search","title":"Achla AI Search"}},"tagged_versions":["0.3.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3623963,"resolution":"1","location":"assets","locale":"","width":1600,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3623963,"resolution":"2","location":"assets","locale":"","width":1600,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3623963,"resolution":"3","location":"assets","locale":"","width":1600,"height":1000}},"screenshots":{"1":"A visitor asks in their own language and gets a concise answer with links to the supporting pages.","2":"Connect without copying an API key, then see ownership, service, and index status in WordPress.","3":"Choose Bubble, Inline, or Attach placement and check widget diagnostics before publishing."}},"plugin_section":[],"plugin_tags":[220145,2364,14090,944,3541],"plugin_category":[],"plugin_contributors":[273411],"plugin_business_model":[],"class_list":["post-345237","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-search","plugin_tags-chatbot","plugin_tags-knowledge-base","plugin_tags-search","plugin_tags-site-search","plugin_contributors-achlaai","plugin_committers-achlaai"],"banners":{"banner":"https:\/\/ps.w.org\/achlaai\/assets\/banner-772x250.png?rev=3623963","banner_2x":"https:\/\/ps.w.org\/achlaai\/assets\/banner-1544x500.png?rev=3623963","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/achlaai\/assets\/icon-128x128.png?rev=3623963","icon_2x":"https:\/\/ps.w.org\/achlaai\/assets\/icon-256x256.png?rev=3623963","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/achlaai\/assets\/screenshot-1.png?rev=3623963","caption":"A visitor asks in their own language and gets a concise answer with links to the supporting pages."},{"src":"https:\/\/ps.w.org\/achlaai\/assets\/screenshot-2.png?rev=3623963","caption":"Connect without copying an API key, then see ownership, service, and index status in WordPress."},{"src":"https:\/\/ps.w.org\/achlaai\/assets\/screenshot-3.png?rev=3623963","caption":"Choose Bubble, Inline, or Attach placement and check widget diagnostics before publishing."}],"raw_content":"<!--section=description-->\n<p>On a research or documentation site, the visitor almost never uses your exact\nterm. They ask about protein folding where the page says conformational\ndynamics. They use the name their own field gives a method. They type an\nacronym that is spelled out on one page and assumed on forty others.<\/p>\n\n<p>WordPress search matches words. So it returns nothing \u2014 while the answer is\nsitting on your site.<\/p>\n\n<p>Achla answers the question instead. Someone asks in their own words, in their\nown language, and gets a short answer assembled from your published pages,\nwith numbered links to every page it drew from.<\/p>\n\n<p><strong>Free plan: 30 searches a month and 30 indexed pages. No payment card.<\/strong><\/p>\n\n<h4>What you do not have to set up<\/h4>\n\n<p>Most AI search plugins hand you the hard part. This one does not.<\/p>\n\n<ul>\n<li><strong>No OpenAI or Gemini key.<\/strong> Nothing to sign up for, paste into WordPress,\nkeep secret, rotate, or top up.<\/li>\n<li><strong>No token bill from a second company.<\/strong> Your plan is counted in searches,\nnot in input and output tokens.<\/li>\n<li><strong>No search server or vector database.<\/strong> No indexing service to run, size,\nor pay for separately.<\/li>\n<\/ul>\n\n<p>Achla does the crawling, the indexing, the model calls, and the updates. You\ninstall the plugin and choose where the widget sits.<\/p>\n\n<h4>Built for sites with more content than anyone can browse<\/h4>\n\n<p>Achla is aimed at sites where the information is deep, technical, and spread\nacross hundreds of pages:<\/p>\n\n<ul>\n<li>research groups, laboratories, and institutes<\/li>\n<li>university departments and faculty sites<\/li>\n<li>scientific publications, proceedings, and open archives<\/li>\n<li>technical documentation and knowledge bases<\/li>\n<li>medical, legal, and regulatory reference sites<\/li>\n<li>large catalogs, directories, and databases<\/li>\n<\/ul>\n\n<p>It works on a small blog too. It earns its keep on a site nobody can read\nend to end.<\/p>\n\n<h4>What visitors get<\/h4>\n\n<ul>\n<li><strong>An answer, not another results page.<\/strong> A short response with numbered\nlinks to the pages that support it.<\/li>\n<li><strong>Their own words, not your vocabulary.<\/strong> Synonyms, alternative\nterminology, spelled-out acronyms, and everyday phrasing all reach the same\npage. Visitors do not have to guess your naming.<\/li>\n<li><strong>Their own language.<\/strong> Someone writes in Hebrew, French, or Arabic and the\nanswer comes back in that language \u2014 useful when your readers are\ninternational and your content is not.<\/li>\n<li><strong>Answers anchored in your pages.<\/strong> Achla shows an answer only when it can\ncite supporting pages from your site. If your indexed pages do not provide\nenough support, it says so instead of presenting an unsupported answer.<\/li>\n<\/ul>\n\n<p>That last point is the one that matters on a scientific site. A confident\nanswer with no source is worse than no answer, so Achla will not produce one.<\/p>\n\n<h4>Three ways to place it<\/h4>\n\n<ul>\n<li><strong>Bubble<\/strong> \u2014 a floating button in the corner. The default; nothing to edit.<\/li>\n<li><strong>Inline<\/strong> \u2014 a shortcode or a Gutenberg block, anywhere you want it.<\/li>\n<li><strong>Attach<\/strong> \u2014 hooks onto the search field you already have.<\/li>\n<\/ul>\n\n<p>Your existing WordPress search keeps working. Achla sits alongside it.<\/p>\n\n<h4>Getting connected<\/h4>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Click Connect and sign in to Achla. Confirm you own the site. No key is\ncopied into WordPress.<\/li>\n<li>Achla reads your public pages and builds the index. WordPress shows you\nthe progress.<\/li>\n<li>Pick a placement, preview it, and switch the widget on.<\/li>\n<\/ol>\n\n<h4>Worth knowing before you install<\/h4>\n\n<p>Written out plainly so nothing surprises you later:<\/p>\n\n<ul>\n<li>An Achla account is required. The free plan does not ask for a card.<\/li>\n<li>The free plan stops at 30 searches a month. It does not overspend, and it\ncannot charge you.<\/li>\n<li>The free plan indexes 30 pages. On a large site that is enough to try Achla\non one section \u2014 a single lab, one manual, one collection \u2014 not to cover\nthe whole archive. Point it at the section your visitors ask about most.<\/li>\n<li>Answers come only from public pages Achla is allowed to read. Content behind\na login is not indexed.<\/li>\n<li>The widget shows a \"Powered by Achla AI\" credit.<\/li>\n<li>Connecting requires an administrator. Moving the site to a new domain means\nconfirming ownership again.<\/li>\n<li>On an HTTP site the plugin shows a permanent reduced-security warning. Use\nHTTPS.<\/li>\n<li>Colors and styling are set in the Achla dashboard, not in WordPress.<\/li>\n<\/ul>\n\n<p>Paid plans start at $15\/month and include a fixed number of searches, so you\nbudget in searches rather than in model tokens.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin requires the third-party Achla AI Search service at\n    https:\/\/achlaai.com. The service crawls permitted public content, builds and\nmaintains the index, generates cited answers, provides widget configuration,\nand manages service billing.<\/p>\n\n<ol>\n<li><p><strong>Ownership connection.<\/strong> When an administrator clicks Connect, Resume, or\nReconnect, the plugin sends the site origin, WordPress callback URL, and a\nshort-lived ownership challenge to Achla. The secret verifier is sent only\nafter WordPress validates Achla's signed callback. WordPress then stores the\nsite binding, project identifier, public widget key, and a server-side\nmanagement credential.<\/p><\/li>\n<li><p><strong>Lifecycle status and health.<\/strong> While connected, WordPress makes paced,\nauthenticated requests to read project and index status. Diagnostics can\ncontain only the classified states <code>ATTACH_TARGET_MISSING<\/code> and\n   RELEASE_UNAVAILABLE, software versions, status classifications, and\ntimestamps. They do not contain page content, visitor questions, email\naddresses, IP addresses, cookies, secrets, arbitrary URLs, or stack traces.<\/p><\/li>\n<li><p><strong>Disconnect.<\/strong> An administrator disconnect, or uninstall best effort,\nrevokes the installation binding and management credential. It does not\ncancel an Achla subscription.<\/p><\/li>\n<li><p><strong>Signed widget release.<\/strong> WordPress periodically requests a signed control\nand manifest from Achla. The connector checks its signature, expiry,\ncompatibility, rollback state, immutable asset URL, and Subresource\nIntegrity value. The browser loads only a verified release.<\/p><\/li>\n<li><p><strong>Widget use.<\/strong> The verified widget uses Achla's widget configuration and\nsearch APIs. When a visitor asks a question, Achla receives the question,\nthe site's public widget key, the page origin, and the visitor's IP address\ncarried by the HTTPS request. These data are used for site binding, abuse\ncontrols, and returning an answer from the indexed public content.<\/p><\/li>\n<\/ol>\n\n<p>The plugin's three public WordPress REST routes are limited to a signed\nownership callback, a no-store release decision, and nonce-protected,\nsame-origin runtime diagnostics. All management routes require an\nadministrator capability and WordPress REST nonce.<\/p>\n\n<p>The local bridge does not use cookies, browser storage, advertising\nidentifiers, iframes, or page-content telemetry. Review the service terms\nbefore enabling the widget:<\/p>\n\n<ul>\n<li>Privacy Policy: https:\/\/achlaai.com\/legal\/privacy<\/li>\n<li>Terms of Service: https:\/\/achlaai.com\/legal\/terms<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin ZIP through Plugins &gt; Add New &gt; Upload Plugin, or place\nthe <code>achlaai<\/code> directory under <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate Achla AI Search.<\/li>\n<li>Open Settings &gt; Achla AI Search and select Connect.<\/li>\n<li>Complete ownership setup on Achla, then return to WordPress and watch the\nconnection and indexing status.<\/li>\n<li>Keep Bubble placement or choose Inline or Attach. Test an Attach selector\nbefore saving it. Switch \"Show the widget\" on when you are ready for the\nwidget and its Powered by Achla AI credit to be publicly visible.<\/li>\n<\/ol>\n\n<p>The widget appears only once the connection is valid, the project is active,\nthe index is ready, placement is on, and the current signed release passes\nverification.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20the%20free%20plan%20really%20free%3F\"><h3>Is the free plan really free?<\/h3><\/dt>\n<dd><p>Yes. 30 searches a month and 30 indexed pages, with no payment card. It is a\nplan, not a trial that expires. When the 30 searches are used up it stops\nuntil the month rolls over \u2014 it never quietly charges you for more.<\/p>\n\n<p>Free projects that sit completely unused are eventually removed, with a\nwarning by email first.<\/p><\/dd>\n<dt id=\"do%20i%20need%20my%20own%20openai%20or%20llm%20api%20key%3F\"><h3>Do I need my own OpenAI or LLM API key?<\/h3><\/dt>\n<dd><p>No. Achla runs the crawler, the index, and the model calls. There is no key to\nobtain, paste into WordPress, secure, rotate, or refill.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20prepay%20for%20tokens%3F\"><h3>Do I have to prepay for tokens?<\/h3><\/dt>\n<dd><p>No. Plans are measured in searches. Paid plans include a fixed allowance, and\nextra usage is bought as blocks of searches rather than as model tokens.<\/p><\/dd>\n<dt id=\"will%20it%20make%20things%20up%3F\"><h3>Will it make things up?<\/h3><\/dt>\n<dd><p>Achla is designed not to fill gaps with unsupported claims. It shows an answer\nonly when it can cite pages from your site; when the indexed pages do not\nprovide enough support, it says so. As with any AI-generated output, visitors\nshould follow the numbered source links when accuracy matters.<\/p><\/dd>\n<dt id=\"my%20site%20has%20thousands%20of%20pages.%20can%20it%20handle%20that%3F\"><h3>My site has thousands of pages. Can it handle that?<\/h3><\/dt>\n<dd><p>Yes, on a paid plan. The free plan indexes 30 pages, which is meant for\ntrying Achla on one section rather than covering an archive. Start with the\npart of the site visitors ask about most, see whether the answers hold up,\nthen decide.<\/p><\/dd>\n<dt id=\"our%20terminology%20is%20specialised.%20will%20it%20understand%20the%20questions%3F\"><h3>Our terminology is specialised. Will it understand the questions?<\/h3><\/dt>\n<dd><p>That is the case Achla is built for. A question is matched against the\nmeaning of your pages, not their exact wording, so alternative terms, spelled\nout acronyms, and plain-language phrasing all reach the right page. Answers\nstill come only from your content \u2014 nothing is imported from outside it.<\/p><\/dd>\n<dt id=\"can%20visitors%20ask%20in%20their%20own%20language%3F\"><h3>Can visitors ask in their own language?<\/h3><\/dt>\n<dd><p>Yes. The answer comes back in the language of the question.<\/p><\/dd>\n<dt id=\"does%20this%20replace%20the%20wordpress%20search%20i%20already%20have%3F\"><h3>Does this replace the WordPress search I already have?<\/h3><\/dt>\n<dd><p>Only if you want it to. Bubble and Inline sit alongside your existing search.\nAttach hooks onto your current search field.<\/p><\/dd>\n<dt id=\"what%20content%20does%20it%20index%3F\"><h3>What content does it index?<\/h3><\/dt>\n<dd><p>Public pages that Achla is permitted to crawl. Anything behind a login, and\nanything your robots rules exclude, stays out.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20store%20visitor%20data%20in%20wordpress%3F\"><h3>Does the plugin store visitor data in WordPress?<\/h3><\/dt>\n<dd><p>No. It does not store visitor questions, IP addresses, page content, cookies,\nor widget sessions in WordPress. It stores only this site's connection,\nlifecycle, placement, release, and diagnostic state.<\/p><\/dd>\n<dt id=\"the%20widget%20is%20not%20showing%20up.%20why%3F\"><h3>The widget is not showing up. Why?<\/h3><\/dt>\n<dd><p>Open Settings &gt; Achla AI Search \u2014 the status screen names the reason and the\nfix. The usual causes are ownership still needing confirmation, indexing not\nfinished, placement switched off, or a release that needs to refresh.<\/p><\/dd>\n<dt id=\"what%20does%20attach%20do%20if%20the%20search%20field%20is%20missing%3F\"><h3>What does Attach do if the search field is missing?<\/h3><\/dt>\n<dd><p>Attach accepts a narrow set of CSS selectors and tests them on the server\nbefore saving. If the element is not on the page at runtime, the widget falls\nback to Bubble and records a warning, which clears once the field is found\nagain.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20deactivate%20the%20plugin%3F\"><h3>What happens if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>The widget disappears and scheduled work stops. The connection is kept, so\nreactivating picks up where it left off. Deactivating does not disconnect the\nsite and does not cancel a subscription.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20uninstall%20it%3F\"><h3>What happens if I uninstall it?<\/h3><\/dt>\n<dd><p>Uninstall disconnects the site as far as it can, then removes this site's\noptions, temporary connection data, locks, and scheduled hooks. It never\ncancels a subscription \u2014 cancel that in the Achla dashboard.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.3.5<\/h4>\n\n<ul>\n<li>Security hardening: the runtime placement diagnostic endpoint now requires a WordPress nonce issued with the bridge script.<\/li>\n<\/ul>\n\n<h4>0.3.4<\/h4>\n\n<ul>\n<li>Move settings maintenance and public runtime diagnostics to asynchronous scheduled work.<\/li>\n<li>Respect lifecycle and release backoff in due-aware status, heartbeat, and release cron callbacks.<\/li>\n<li>Enforce signed CMS control expiry when selecting and downloading self-hosted update packages.<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Keep setup in the current tab so registration and email verification can return to the original WordPress connection.<\/li>\n<li>Continue bounded status polling while the first index and signed widget release are being prepared.<\/li>\n<li>Improve WordPress.org compatibility checks, release gates, and package metadata.<\/li>\n<\/ul>","raw_excerpt":"Site search that answers, with citations. Made for documentation, research and archives where keyword search fails. Free plan.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/345237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=345237"}],"author":[{"embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/achlaai"}],"wp:attachment":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=345237"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=345237"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=345237"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=345237"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=345237"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=345237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}