{"id":230811,"date":"2025-05-24T10:41:56","date_gmt":"2025-05-24T10:41:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/maia-multipurpose-ai-assistant\/"},"modified":"2026-07-27T00:33:13","modified_gmt":"2026-07-27T00:33:13","slug":"maia-multipurpose-ai-assistant","status":"publish","type":"plugin","link":"https:\/\/ml.wordpress.org\/plugins\/maia-multipurpose-ai-assistant\/","author":317084,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.1","stable_tag":"1.1.1","tested":"7.0.2","requires":"6.0","requires_php":"8.2","requires_plugins":null,"header_name":"MAIA - Multipurpose AI Assistant","header_author":"Nemanja Avramovi\u0107","header_description":"A free WordPress plugin that provides a multipurpose AI assistant for content creation and website management. Powered by Puter.com free AI.","assets_banners_color":"9aa5c6","last_updated":"2026-07-27 00:33:13","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/avramator","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/maia-multipurpose-ai-assistant\/","header_author_uri":"https:\/\/avramovic.info","rating":0,"author_block_rating":0,"active_installs":0,"downloads":605,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1":{"tag":"0.1","author":"Avram","date":"2025-05-24 17:18:53"},"0.2":{"tag":"0.2","author":"Avram","date":"2025-05-31 12:31:39"},"1.0":{"tag":"1.0","author":"Avram","date":"2026-07-26 10:46:20"},"1.1":{"tag":"1.1","author":"Avram","date":"2026-07-26 22:56:28"},"1.1.1":{"tag":"1.1.1","author":"Avram","date":"2026-07-27 00:33:13"}},"upgrade_notice":{"1.1.1":"<p>Formatting hotfix for MAIA&#039;s replies in the chat window; also stops the plugin from restyling headings elsewhere on the page.<\/p>","1.0":"<p>Major release: adds file\/content tools with confirmation-gated writes, and requires PHP 8.2. Your existing discussions are preserved (old context is dropped from them automatically, since it&#039;s no longer needed).<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3623853,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3623853,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3623853,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3623853,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1","0.2","1.0","1.1","1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3623873,"resolution":"1","location":"plugin","width":2225,"height":1420},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3623873,"resolution":"2","location":"plugin","width":1817,"height":450}},"screenshots":{"1":"MAIA chat window","2":"Right-click menu \u2014 discussions, Puter AI account, and more"}},"plugin_section":[],"plugin_tags":[5061,2353,1320,2359,216196],"plugin_category":[],"plugin_contributors":[81878],"plugin_business_model":[],"class_list":["post-230811","plugin","type-plugin","status-publish","hentry","plugin_tags-agent","plugin_tags-ai","plugin_tags-assistant","plugin_tags-bot","plugin_tags-chatgpt","plugin_contributors-avram","plugin_committers-avram"],"banners":{"banner":"https:\/\/ps.w.org\/maia-multipurpose-ai-assistant\/assets\/banner-772x250.png?rev=3623853","banner_2x":"https:\/\/ps.w.org\/maia-multipurpose-ai-assistant\/assets\/banner-1544x500.png?rev=3623853","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/maia-multipurpose-ai-assistant\/assets\/icon-128x128.png?rev=3623853","icon_2x":"https:\/\/ps.w.org\/maia-multipurpose-ai-assistant\/assets\/icon-256x256.png?rev=3623853","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/maia-multipurpose-ai-assistant\/trunk\/screenshot-1.png?rev=3623873","caption":"MAIA chat window"},{"src":"https:\/\/ps.w.org\/maia-multipurpose-ai-assistant\/trunk\/screenshot-2.png?rev=3623873","caption":"Right-click menu \u2014 discussions, Puter AI account, and more"}],"raw_content":"<!--section=description-->\n<p>Hello there!<\/p>\n\n<p>I am MAIA, an AI assistant for your WordPress website. A superstar WP developer, a writer, a know-it-all and your partner in WP website management. I know a lot about your site and will be there 24\/7 to help you manage it. I can speak any language and can track multiple conversations.<\/p>\n\n<p>You will have to sign in with a Puter.com account, but it shouldn't be a problem as it is a single click process.<\/p>\n\n<p>I am powered by Puter.com free AI, and with version 1.0 I can now actually <em>do<\/em> things on your site instead of just talking about them:<\/p>\n\n<ul>\n<li>Read and search your theme\/plugin files, and propose edits \u2014 you always see a diff and approve it before anything is written<\/li>\n<li>Write your posts\/pages\/product descriptions, and create\/update\/trash them for you (with your confirmation)<\/li>\n<li>Manage categories and tags<\/li>\n<li>Install, activate, deactivate, or delete plugins<\/li>\n<li>Answer questions about your site by looking things up itself \u2014 active theme, installed plugins, users, content \u2014 instead of guessing<\/li>\n<li>Search the web and search for images (optional \u2014 requires a free Brave Search API key in Settings \/ MAIA)<\/li>\n<li>Generate images from a text prompt, then save them to your media library, insert them into the post\/page you're viewing, or set them as the featured image<\/li>\n<li>Show you any image it has a link to \u2014 found on the web, or anywhere else \u2014 directly in a card, with the same save\/insert\/featured-image actions<\/li>\n<li>Make HTTP requests to external APIs on your behalf (GET\/HEAD run immediately, anything that writes always asks first)<\/li>\n<li>Remember facts about you across conversations, and recall, search, or forget them on request<\/li>\n<li>Extend WP via custom code snippets<\/li>\n<li>Contemplate life and the Universe \ud83d\ude42<\/li>\n<\/ul>\n\n<p>Every write operation \u2014 editing a file, creating or changing content, managing a term \u2014 shows you exactly what's about to happen and waits for you to click Confirm. Nothing is written silently.<\/p>\n\n<p><a href=\"https:\/\/tastewp.com\/new?pre-installed-plugin-slug=maia-multipurpose-ai-assistant&amp;redirect=%2F&amp;ni=true\">Try instantly on tastewp.com<\/a>!<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Puter.com's AI service to provide the chat assistant. Nothing is sent unless you actually use the chat.<\/p>\n\n<p>Every message you send includes some baseline context so MAIA doesn't have to ask you to repeat yourself:\n* your site's name, description, URL and default language\n* your own user data (without your password) and your assigned role(s)\n* the title and status of the post\/page you're currently editing, if any (not its content)\n* the current page URL and the page title you're viewing<\/p>\n\n<p>Beyond that, MAIA works via tools: when it needs more information, it calls a specific tool, and <em>only the result of that tool call<\/em> is sent to Puter as part of the conversation. Depending on what you ask, that can include:\n* the contents of a plugin\/theme file\n* the content of a post, page, or product\n* categories\/tags, media library entries\n* the list of users on your site, and your list of installed plugins\/themes<\/p>\n\n<p>This only happens when MAIA calls the corresponding tool while answering your request \u2014 never automatically on page load.<\/p>\n\n<p>Writing anything (editing a file, creating\/changing\/deleting content, managing a term) always shows you a confirmation card first; nothing is written to your site until you click Confirm.<\/p>\n\n<p>This service is provided by Puter.com: <a href=\"https:\/\/puter.com\/terms\">terms of use<\/a>, <a href=\"https:\/\/puter.com\/privacy\">privacy policy<\/a>.<\/p>\n\n<h3>Optional: Brave Search<\/h3>\n\n<p>If you enter a Brave Search API key in Settings \/ MAIA, MAIA gains two extra tools \u2014 web search and image search. When (and only when) MAIA calls one of these tools, your search query is sent from your own server directly to Brave's Search API (api.search.brave.com) using the key you provided, and the results (titles, URLs, descriptions, or image URLs\/thumbnails) are returned to MAIA. No query is sent unless MAIA actually uses one of these tools while answering you. This is entirely optional \u2014 leave the key empty and neither tool is offered at all. This service is provided by Brave Software: <a href=\"https:\/\/brave.com\/search\/api\/terms-of-use\/\">terms of use<\/a>, <a href=\"https:\/\/brave.com\/privacy\/browser\/#search\">privacy policy<\/a>.<\/p>\n\n<h3>HTTP requests to external services<\/h3>\n\n<p>If enabled (on by default, Settings \/ MAIA), MAIA can make an HTTP request to any URL you or it specifies, e.g. to call a third-party API. This runs from your own browser, not your server. Requests to internal\/private network addresses are always blocked. GET\/HEAD requests run without confirmation; any request that writes (POST\/PUT\/PATCH\/DELETE) always shows you the exact method, URL, headers and body first. This can be turned off entirely in Settings \/ MAIA.<\/p>\n\n<h3>Image generation<\/h3>\n\n<p>Asking MAIA to generate an image sends your text prompt to Puter's AI image generation service from your own browser. The resulting image is shown to you directly in a card \u2014 MAIA itself never receives or sees the image data \u2014 with buttons to save it to your media library, insert it into the post\/page you're viewing, or set it as the featured image; nothing is saved anywhere until you click one of those buttons. You can optionally pin a specific image model in Settings \/ MAIA. This service is provided by Puter.com: <a href=\"https:\/\/puter.com\/terms\">terms of use<\/a>, <a href=\"https:\/\/puter.com\/privacy\">privacy policy<\/a>.<\/p>\n\n<h3>Showing images<\/h3>\n\n<p>When MAIA has a link to an image (e.g. found via web search) and shows it to you, your own browser loads it directly from wherever it's hosted, the same as clicking the link yourself would \u2014 MAIA never downloads or proxies it through your server. It's shown in the same kind of card as a generated image, with the same save\/insert\/featured-image buttons; nothing is saved anywhere until you click one of them.<\/p>\n\n<h3>Important notes<\/h3>\n\n<ul>\n<li>Each (logged in) user of your website will have to sign up for a Puter.com account, which is free. This makes Puter account AI limits apply to each user separately.<\/li>\n<li>Puter AI SDK is a JavaScript library that runs in the browser, so it does not require any server-side processing other than regular plugin bootstrapping. The only exception is the tools themselves (reading\/editing files, managing content), which run through your own WordPress installation using your own account's permissions \u2014 nothing is sent to a third party except what's described above.<\/li>\n<li>Your conversations and anything MAIA remembers about you (Settings \/ MAIA \u2192 Memory) are stored in your own site's database, private to your account \u2014 not sent to Puter or anywhere else except as part of the messages you actively send while chatting.<\/li>\n<li>File editing respects the same rules as WordPress' own built-in file editor: it can be disabled entirely with <code>DISALLOW_FILE_EDIT<\/code>, and on a Multisite network only a Super Admin can edit files \u2014 a regular site Administrator cannot, even with MAIA.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code> and activate it through the 'Plugins' menu in WordPress<\/li>\n<li>Click MAIA's avatar (bottom of the screen) and sign in with your free Puter.com account<\/li>\n<li>Optionally visit Settings \/ MAIA to pick a model, or turn off file editing \/ write tools entirely<\/li>\n<li>Start chatting \u2014 right-click the avatar for discussions, account options, and to show\/hide the chat<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20it%20generate%20images%3F\"><h3>Can it generate images?<\/h3><\/dt>\n<dd><p>Yes \u2014 ask it to generate an image and it shows you the result directly in a card, with buttons to save it to your media library, insert it into the post\/page you're viewing, or set it as the featured image. Nothing is saved until you click one of those. You can optionally pin a specific image model in Settings \/ MAIA.<\/p><\/dd>\n<dt id=\"i%20asked%20it%20to%20find%20an%20image%20%28e.g.%20via%20web%20search%29%20%E2%80%94%20why%20didn%27t%20i%20see%20it%3F\"><h3>I asked it to find an image (e.g. via web search) \u2014 why didn't I see it?<\/h3><\/dt>\n<dd><p>If it just gives you a link back in text, ask it to show you the image. MAIA can display any image it has a URL for directly in a card, the same one used for generated and searched images, with save\/insert\/featured-image buttons.<\/p><\/dd>\n<dt id=\"does%20it%20remember%20things%20about%20me%20between%20conversations%3F\"><h3>Does it remember things about me between conversations?<\/h3><\/dt>\n<dd><p>Yes, if enabled (on by default, Settings \/ MAIA). MAIA can save short facts about you, recall them, search them, or forget them \u2014 all private to your own account, stored on your own site. You can ask it what it remembers at any time, and turn the whole feature off in Settings \/ MAIA.<\/p><\/dd>\n<dt id=\"can%20it%20call%20external%20apis%3F\"><h3>Can it call external APIs?<\/h3><\/dt>\n<dd><p>Yes, if enabled (on by default, Settings \/ MAIA). It can make GET\/HEAD requests without asking first, and any request that would write data (POST\/PUT\/PATCH\/DELETE) always shows you the exact method, URL, headers and body before it runs. Requests to your own internal network are always blocked regardless of this setting.<\/p><\/dd>\n<dt id=\"can%20it%20edit%20website%20content%3F\"><h3>Can it edit website content?<\/h3><\/dt>\n<dd><p>Yes \u2014 it can create, update, and delete posts, pages, and other content types (including WooCommerce products), always with your explicit confirmation first. You can also turn this off entirely in Settings \/ MAIA.<\/p><\/dd>\n<dt id=\"can%20it%20edit%20website%20or%20theme%20files%3F\"><h3>Can it edit website or theme files?<\/h3><\/dt>\n<dd><p>Yes, within the same rules as WordPress' own file editor \u2014 it can only touch files WordPress itself considers editable, every change requires your confirmation with a full diff, and if the edit introduces a fatal PHP error it is automatically detected and rolled back before it can break your site. This can also be turned off in Settings \/ MAIA, and it's unavailable if <code>DISALLOW_FILE_EDIT<\/code> is set or (on Multisite) you're not a Super Admin.<\/p><\/dd>\n<dt id=\"is%20it%20safe%20to%20let%20an%20ai%20write%20to%20my%20site%3F\"><h3>Is it safe to let an AI write to my site?<\/h3><\/dt>\n<dd><p>Every write action requires you to click Confirm on a card that shows exactly what will change \u2014 the raw diff or the raw arguments, never a summary written by the AI itself. Nothing happens automatically. That said, tool results (file contents, post content, etc.) are treated as data by MAIA, but no safeguard is perfect \u2014 review what you're confirming, especially on a site where other people can create content.<\/p><\/dd>\n<dt id=\"can%20it%20install%20or%20manage%20plugins%3F\"><h3>Can it install or manage plugins?<\/h3><\/dt>\n<dd><p>Yes \u2014 it can list installed plugins and install, activate, deactivate, or delete them, always with your confirmation first. This uses WordPress' own plugin REST endpoint, so it's subject to the same Administrator-only capability checks as the \"Add Plugin\" screen in wp-admin.<\/p><\/dd>\n<dt id=\"what%20is%20%22full%20rest%20api%20access%22%3F\"><h3>What is \"Full REST API access\"?<\/h3><\/dt>\n<dd><p>An optional, off-by-default setting (Settings \/ MAIA) that lets MAIA discover and call any REST route registered on your site \u2014 not just the specific ones its dedicated tools use. It's restricted to Administrators, and every call (even a read) still requires your confirmation showing the exact method, route and parameters before it runs. Leave it off unless you have a specific need for it; MAIA's dedicated tools already cover typical requests.<\/p><\/dd>\n<dt id=\"can%20i%20restrict%20who%20is%20allowed%20to%20use%20maia%2C%20or%20what%20it%20can%20do%3F\"><h3>Can I restrict who is allowed to use MAIA, or what it can do?<\/h3><\/dt>\n<dd><p>Yes. Settings \/ MAIA lets you require a minimum WordPress capability before MAIA offers any tools at all, and lets you turn file tools and\/or write tools off completely, site-wide.<\/p><\/dd>\n<dt id=\"why%20is%20maia%20not%20responding%3F\"><h3>Why is MAIA not responding?<\/h3><\/dt>\n<dd><p>Check if Puter.com is up and running. If it is, check your usage via the right-click context menu \u2192 Puter AI \u2192 About... Puter provides free limited usage, and if you exceed it, MAIA won't respond until your usage resets.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%3F\"><h3>Does this work with WooCommerce?<\/h3><\/dt>\n<dd><p>MAIA can list, read, and write product titles\/descriptions\/status, and manage product categories and tags, the same way it does for posts and pages. Price and inventory management (WooCommerce-specific fields) are not yet supported.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed: Markdown in MAIA's replies is now formatted consistently inside the chat window \u2014 headings no longer render oversized, and lists, tables, blockquotes, links and inline code follow the chat's own typography.<\/li>\n<li>Fixed: the plugin no longer applied its own <code>h1<\/code> and <code>body<\/code> styles to the rest of the page (leftover demo CSS from the chat-bubble component).<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>New: HTTP client tool \u2014 MAIA can call external APIs (GET\/HEAD run immediately, writes always ask first; requests to internal\/private network addresses are always blocked). On by default, Settings \/ MAIA.<\/li>\n<li>New: image generation \u2014 ask MAIA to generate an image and it's shown directly in a card with buttons to save it to the media library, insert it into the post\/page being viewed, or set it as the featured image. Always available; optionally pin a specific model in Settings \/ MAIA.<\/li>\n<li>New: image search results (Brave) are now shown as a clickable thumbnail grid with the same save\/insert\/featured actions, instead of only being described in text.<\/li>\n<li>New: MAIA can show any image it has a URL for (e.g. found via web search) directly in a card, with the same save\/insert\/featured actions as a generated image.<\/li>\n<li>New: memory tools \u2014 MAIA can save, recall, search, list, and forget facts about a user across conversations, private per user. On by default, Settings \/ MAIA.<\/li>\n<li>Changed: discussion history now lives in your site's database (private per user) instead of only your browser's local storage, so it survives clearing browser data and follows you between browsers. Existing local discussions are imported automatically, once.<\/li>\n<li>Requires PHP 8.2 (unchanged from 1.0)<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Major release: MAIA can now use tools to read and search your site's files and content, and \u2014 with your confirmation on every single write \u2014 create\/edit them too<\/li>\n<li>File tools: list\/find\/grep\/read files under wp-content, and propose edits that show a diff and go through WordPress' own file editor safeguards (path\/extension allowlist, automatic rollback on a PHP fatal)<\/li>\n<li>Content tools: list\/read\/create\/update\/delete posts, pages, and any REST-exposed post type (including WooCommerce products), plus manage categories\/tags, list media, and list users \u2014 all routed through WordPress' own REST permission checks, so every user's existing capabilities are respected exactly as they are anywhere else in WordPress<\/li>\n<li>Plugin tools: list installed plugins and install\/activate\/deactivate\/delete them, using the same core REST endpoint (and Administrator-only capability checks) as the built-in \"Add Plugin\" screen<\/li>\n<li>Optional \"Full REST API access\" (off by default, Settings \/ MAIA): lets MAIA discover and call any other REST route registered on the site \u2014 core, WooCommerce, or any other plugin \u2014 for the rare request none of MAIA's dedicated tools cover. Restricted to Administrators, and every single call always requires confirmation showing the exact method\/route\/parameters<\/li>\n<li>New Settings page (Settings \/ MAIA): choose the AI model, toggle file tools and write tools on\/off, cap tool calls per turn, require a minimum capability before MAIA is offered at all, optionally add a Brave Search API key to unlock web search and image search tools, and optionally enable full REST API access<\/li>\n<li>The context sent with every message is now much smaller: MAIA used to send your entire site (every user, post, page, plugin and theme) on every single request \u2014 now it fetches only what it actually needs, when it needs it<\/li>\n<li>Requires PHP 8.2 (up from 7.4)<\/li>\n<\/ul>\n\n<h4>0.2<\/h4>\n\n<ul>\n<li>improved code rendering in chat<\/li>\n<li>added button to code snippets to copy to clipboard<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>initial release<\/li>\n<\/ul>","raw_excerpt":"A free WordPress AI assistant powered by Puter.com that can read, edit, and manage your site \u2014 always with your confirmation.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/230811","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=230811"}],"author":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/avram"}],"wp:attachment":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=230811"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=230811"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=230811"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=230811"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=230811"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=230811"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}