{"id":47882266,"url":"https://github.com/madebyaris/ai-butler-wordpress","last_synced_at":"2026-04-04T01:54:49.810Z","repository":{"id":339892956,"uuid":"1163748720","full_name":"madebyaris/ai-butler-wordpress","owner":"madebyaris","description":"A next-gen AI butler for WordPress that can manage site structure, content, and operations—evolving toward autonomous function creation and secure runtime execution.","archived":false,"fork":false,"pushed_at":"2026-03-15T08:21:42.000Z","size":3231,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T01:54:18.659Z","etag":null,"topics":["ai-assistant","automation","chatbot","gutenberg","llm","minimax","woocommerce","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/madebyaris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-22T04:38:53.000Z","updated_at":"2026-03-15T08:21:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/madebyaris/ai-butler-wordpress","commit_stats":null,"previous_names":["madebyaris/ai-butler-wordpress"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/madebyaris/ai-butler-wordpress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyaris%2Fai-butler-wordpress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyaris%2Fai-butler-wordpress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyaris%2Fai-butler-wordpress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyaris%2Fai-butler-wordpress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madebyaris","download_url":"https://codeload.github.com/madebyaris/ai-butler-wordpress/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madebyaris%2Fai-butler-wordpress/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31384846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T01:22:39.193Z","status":"ssl_error","status_checked_at":"2026-04-04T01:22:33.970Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-assistant","automation","chatbot","gutenberg","llm","minimax","woocommerce","wordpress","wordpress-plugin"],"created_at":"2026-04-04T01:54:49.290Z","updated_at":"2026-04-04T01:54:49.798Z","avatar_url":"https://github.com/madebyaris.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ABW-AI - Advanced Butler WP AI\n\n**Enhanced for [MiniMax](https://www.minimax.io)**\n\nAn AI-powered assistant for WordPress that lives inside your admin dashboard. It can manage posts, users, media, plugins, themes, updates, menus, WooCommerce orders, and more through natural language conversation. It also integrates natively with the WordPress Block Editor (Gutenberg) so you can ask it to write, edit, and structure content directly inside the editor.\n\nABW-AI is enhanced for **MiniMax** models, taking advantage of their 1M token context window, fast inference speeds, and cost-effective pricing -- making it practical to send full page layouts and long editor contexts to the AI without worrying about token limits or response latency.\n\n## Visual Preview\n\nRepository preview assets for the WordPress.org listing are stored in `wporg-assets/`.\n\n![ABW-AI Banner](wporg-assets/banner-772x250.png)\n\n### Icon\n\n![ABW-AI Icon](wporg-assets/icon-256x256.png)\n\n### Screenshots\n\n#### Settings And Live Chat\n\n![ABW-AI Screenshot 1](wporg-assets/screenshot-1.png)\n\n#### Background Jobs Dashboard\n\n![ABW-AI Screenshot 2](wporg-assets/screenshot-2.png)\n\n#### Debug Log And Chat History\n\n![ABW-AI Screenshot 3](wporg-assets/screenshot-3.png)\n\n---\n\n\u003e **Sponsored by [MiniMax](https://www.minimax.io)** -- high-performance AI models with 1M token context, agentic tool calling, and OpenAI-compatible APIs. Get your API key at [platform.minimax.io](https://platform.minimax.io).\n\n---\n\n## Requirements\n\n- WordPress 6.9+\n- PHP 7.4+\n- An AI provider API key (see [Supported Providers](#supported-ai-providers))\n- Node.js 18+ (only needed to rebuild the block editor sidebar from source)\n\nOptional:\n- **WooCommerce** -- enables product and order management tools\n\n## Supported AI Providers\n\n| Provider | Latest Model | Context Window | Output Limit | Pricing (per 1M tokens) |\n|----------|-------------|---------------|-------------|------------------------|\n| **MiniMax** (recommended) | MiniMax-M2.5 | **1,000,000 tokens** | 128K tokens | $0.30 input / $1.20 output |\n| OpenAI | GPT-5.2 | 256K tokens | 128K tokens | Varies by variant |\n| Anthropic | Claude Opus 4.6 | 1,000,000 tokens (beta) | 32K tokens | $5.00 input / $25.00 output |\n| Custom | Any OpenAI-compatible endpoint | Varies | Varies | -- |\n\n### Why MiniMax?\n\nABW-AI sends the full block editor state (every block, its type, attributes, and content) as context with each message. This can easily reach tens of thousands of tokens for content-rich pages. MiniMax models are a strong fit because:\n\n- **1M token context window** -- fits even the largest pages without truncation, with room to spare for conversation history\n- **128K token output** -- can generate entire articles or full page layouts in a single response\n- **100 tokens/second** on highspeed models -- fast responses even with large context\n- **$0.30 / 1M input tokens** -- roughly 8% of the cost of comparable frontier models, practical for frequent use\n- **OpenAI-compatible API** -- works out of the box with ABW-AI's custom provider, no code changes needed\n- **Agentic tool calling** -- reliable function calling for 90+ WordPress management tools\n- **Vision support** -- M2.5 supports image input, enabling future multimodal workflows\n\n### Model Variants\n\n| Model | Speed | Best For |\n|-------|-------|----------|\n| `MiniMax-M2.5` | ~60 tokens/sec | Complex tasks, coding, long-form content |\n| `MiniMax-M2.5-highspeed` | ~100 tokens/sec | Quick edits, conversational use, real-time interactions |\n\n## Installation\n\n1. Download or clone this repository into `wp-content/plugins/abw-ai/`.\n2. Activate the plugin from **Plugins \u003e Installed Plugins**.\n3. Go to **ABW-AI \u003e Settings** and configure your AI provider.\n4. The chat sidebar appears in the admin bar across all admin pages.\n\n### Quick Start with MiniMax\n\n1. Get an API key from [platform.minimax.io](https://platform.minimax.io)\n2. In **ABW-AI \u003e Settings**, select **Custom Provider**\n3. Set the fields:\n   - **API Key**: your MiniMax API key\n   - **API Endpoint**: `https://api.minimax.io/v1/chat/completions`\n   - **Model Name**: `MiniMax-M2.5` (or `MiniMax-M2.5-highspeed` for faster responses)\n4. Save and start chatting.\n\n### Building the Block Editor Sidebar (optional)\n\nThe `build/` directory is included in the repository, so this step is only needed if you modify files in `src/`.\n\n```bash\ncd wp-content/plugins/abw-ai\nnpm install\nnpm run build\n```\n\nFor development with live rebuilds:\n\n```bash\nnpm start\n```\n\n## Features\n\n### AI Chat Sidebar\n\nA persistent chat sidebar available on every WordPress admin page. Toggle it from the admin bar. It supports:\n\n- Multi-provider AI (MiniMax, OpenAI, Anthropic, or any OpenAI-compatible endpoint)\n- Markdown rendering (headings, lists, tables, code blocks, links)\n- Conversation history (persisted per user)\n- Context-aware -- the AI knows which admin page you're on\n- Background job processing for long-running operations\n\n### Block Editor Integration\n\nWhen you open a post or page in the Gutenberg editor, the chat sidebar becomes a native **PluginSidebar** panel with full block manipulation capabilities:\n\n- **Reads the editor** -- serializes all blocks into a text representation so the AI understands your content (no vision required)\n- **Inserts blocks** -- generates HTML that is automatically converted to WordPress blocks\n- **Replaces content** -- can rewrite an entire post or replace individual blocks\n- **Removes blocks** -- delete blocks by index\n- **Saves the post** -- triggers a save from the sidebar\n- **Updates post details** -- change title, status, or excerpt\n\nThe AI sees a structured view of your blocks like this:\n\n```\nEditor Context:\n- Post ID: 42\n- Post Title: \"My Blog Post\"\n- Post Type: post\n- Post Status: draft\n- Block Count: 5\n\nBlocks:\n[0] core/heading (level=2): \"Introduction\"\n[1] core/paragraph: \"This is the first paragraph...\"\n[2] core/image (id=123, alt=\"Photo\"): [image: photo.jpg]\n[3] core/list (ordered=false):\n  - \"Item one\"\n  - \"Item two\"\n[4] core/columns (columns=2):\n  [4.0] core/column:\n    [4.0.0] core/paragraph: \"Left column\"\n  [4.1] core/column:\n    [4.1.0] core/paragraph: \"Right column\"\n```\n\nThis means even AI models without vision can understand and manipulate your page layout. MiniMax's 1M token context window ensures this representation is never truncated, even for the most complex pages.\n\n### WordPress Management Tools (90+)\n\nAll available as AI tools the assistant can call during conversation:\n\n| Category | Tools |\n|----------|-------|\n| **Posts \u0026 Pages** | List, get, create, update, delete posts/pages |\n| **Users** | List, get, create, update, delete users |\n| **Media** | List, upload (URL or base64), update, delete media |\n| **Comments** | List, moderate (approve, hold, spam, trash) |\n| **Plugins** | List, activate, deactivate, check updates, update |\n| **Themes** | List, activate, check updates, update |\n| **Taxonomies** | List taxonomies, create/update/delete terms |\n| **Menus** | Create menus, add/update/delete items, assign locations |\n| **Site Options** | Get/update whitelisted options, reading settings |\n| **Search \u0026 Analytics** | Search content, post stats, popular content, recent activity |\n| **Bulk Operations** | Bulk update/delete posts, find \u0026 replace, bulk moderate comments |\n| **Site Health** | Health status and diagnostics |\n| **Block Editor** | Insert, replace, update, remove blocks; save post; update title/status |\n| **Block Themes** | List block patterns and template parts |\n| **WooCommerce** | List/get products and orders, update statuses |\n\n### Update Management (Check + Apply)\n\nABW-AI can both detect and apply updates for plugins and themes:\n\n- **Check updates**: finds available plugin/theme updates with current and target versions\n- **Apply updates**: upgrades a specific plugin/theme or all available updates\n- **Clear result reporting**: reports what was updated, what was already current, and any failures\n\nExample prompts:\n\n- `Check for plugin and theme updates`\n- `Update the Twenty Twenty-One theme`\n- `Update all available plugin and theme updates`\n\n### Reliable Multi-Step Actions\n\nThe assistant uses an agentic multi-step loop for action requests (for example: list -\u003e select -\u003e update/delete).  \nFor operational requests, it is designed to complete the action workflow end-to-end rather than stopping after a read-only step.\n\n### AI Writing \u0026 SEO Tools\n\n- Generate blog post content from a topic\n- Improve and rewrite existing content\n- Generate SEO meta titles and descriptions\n- Translate content to other languages\n- Generate FAQ sections\n- Generate schema markup (JSON-LD)\n- Summarize content\n- Generate social media posts\n- Analyze content sentiment\n- Detect content language\n- Check content accessibility\n- Generate image alt text\n\n### Background Processing\n\nLong-running AI operations (content generation, page design, etc.) are automatically queued as background jobs so you don't have to wait. The system uses a multi-layer async strategy that works across all WordPress hosting environments:\n\n1. **Layer 1** -- `fastcgi_finish_request()` for immediate processing (PHP-FPM)\n2. **Layer 2** -- WP-Cron with `spawn_cron()` for reliable dispatch\n3. **Layer 3** -- Frontend polling with inline fallback processing\n\nMonitor jobs from **ABW-AI \u003e Background Jobs** in the admin menu.\n\n## Architecture\n\n```\nabw-ai/\n├── abw-ai.php                          # Plugin bootstrap\n├── includes/\n│   ├── class-admin.php                  # Admin pages and settings\n│   ├── class-ai-router.php             # Multi-provider AI routing and tool execution\n│   ├── class-ai-tools.php              # AI-powered writing/SEO tools\n│   ├── class-abilities-registration.php # WordPress tool registration\n│   ├── class-background-jobs.php        # Background job queue and processing\n│   └── class-chat-interface.php         # Chat sidebar, AJAX handlers, block editor enqueue\n├── assets/\n│   ├── js/chat-widget.js               # Vanilla JS chat sidebar (non-editor pages)\n│   ├── admin.js                         # Admin page scripts\n│   ├── admin.css                        # Admin page styles\n│   ├── chat-widget.css                  # Chat widget styles\n│   └── sidebar.css                      # Sidebar layout styles\n├── src/editor/                          # Block editor sidebar (React source)\n│   ├── index.js                         # PluginSidebar registration\n│   ├── components/\n│   │   ├── Sidebar.js                   # Main chat UI\n│   │   ├── ChatMessages.js              # Message list with markdown\n│   │   ├── ChatInput.js                 # Input area\n│   │   └── BlockActionsFeedback.js      # Action execution feedback\n│   ├── hooks/\n│   │   ├── useEditorContext.js           # Reads block editor state\n│   │   └── useBlockActions.js           # Executes block actions\n│   └── utils/\n│       ├── block-serializer.js          # Blocks to text for AI\n│       ├── block-actions.js             # wp.data dispatch executor\n│       └── format-message.js            # Markdown to HTML\n├── build/                               # Compiled block editor sidebar\n│   ├── editor-sidebar.js\n│   ├── editor-sidebar.css\n│   └── editor-sidebar.asset.php\n├── package.json\n└── webpack.config.js\n```\n\n## Configuration\n\n### AI Provider\n\nGo to **ABW-AI \u003e Settings** and select your provider:\n\n- **MiniMax** (recommended) -- select \"Custom Provider\" and use endpoint `https://api.minimax.io/v1/chat/completions` with model `MiniMax-M2.5`\n- **OpenAI** -- uses `gpt-5.2` by default\n- **Anthropic** -- uses `claude-opus-4.6` by default\n- **Custom** -- point to any OpenAI-compatible API endpoint\n\n### MiniMax Configuration\n\n| Setting | Value |\n|---------|-------|\n| Provider | Custom Provider |\n| API Key | Your key from [platform.minimax.io](https://platform.minimax.io) |\n| API Endpoint | `https://api.minimax.io/v1/chat/completions` |\n| Model Name | `MiniMax-M2.5` or `MiniMax-M2.5-highspeed` |\n\n## External Services\n\nABW-AI connects to third-party AI APIs only when an administrator configures a provider and intentionally uses AI-powered features such as chat, content generation, rewriting, summarization, translation, SEO assistance, or connection testing.\n\n- **OpenAI**: sends user prompts, selected editor context, requested tool arguments, and AI responses to OpenAI's API. Privacy policy: [openai.com/policies/privacy-policy](https://openai.com/policies/privacy-policy)\n- **Anthropic**: sends user prompts, selected editor context, requested tool arguments, and AI responses to Anthropic's API. Privacy policy: [anthropic.com/legal/privacy](https://www.anthropic.com/legal/privacy)\n- **Custom/OpenAI-compatible provider**: sends the same categories of request data to the endpoint configured by the site administrator. Review that provider's privacy policy before enabling it.\n\nThe plugin does not connect to these services until credentials are saved and an AI request is initiated from the WordPress admin.\n\n## Development\n\n### Prerequisites\n\n- Node.js 18+\n- npm 9+\n\n### Setup\n\n```bash\ngit clone https://github.com/madebyaris/ai-butler-wordpress.git\ncd ai-butler-wordpress\nnpm install\n```\n\n### Commands\n\n| Command | Description |\n|---------|-------------|\n| `npm run build` | Production build of the block editor sidebar |\n| `npm start` | Development build with file watching |\n| `npm run lint:js` | Lint JavaScript source files |\n| `npm run format` | Auto-format JavaScript source files |\n\n### How Block Editor Tools Work\n\nThe block editor integration uses a hybrid frontend/backend architecture:\n\n1. The React sidebar reads the current block tree via `wp.data.select('core/block-editor')` and serializes it to text.\n2. This text is sent to the PHP backend as `editor_context` alongside the user's message.\n3. The system prompt is augmented with block editor instructions and the current editor state.\n4. When the AI calls a block editor tool (e.g., `insert_editor_blocks`), the PHP handler returns a `block_actions` payload instead of executing server-side.\n5. The frontend receives `block_actions` and executes them via `wp.data.dispatch` -- inserting blocks, replacing content, saving the post, etc.\n\nThis design means the AI generates standard HTML, and `wp.blocks.rawHandler()` converts it to proper WordPress blocks automatically.\n\n## Sponsor\n\n\u003ca href=\"https://www.minimax.io\"\u003e\n  \u003cstrong\u003eMiniMax\u003c/strong\u003e\n\u003c/a\u003e\n\nABW-AI is proudly sponsored by **MiniMax**. Their high-performance AI models with 1M token context windows, fast inference, and OpenAI-compatible APIs make them an ideal backbone for AI-powered WordPress management.\n\n- Website: [minimax.io](https://www.minimax.io)\n- API Platform: [platform.minimax.io](https://platform.minimax.io)\n- Documentation: [platform.minimax.io/docs](https://platform.minimax.io/docs)\n\n## License\n\nGPL-2.0-or-later -- see `LICENSE`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadebyaris%2Fai-butler-wordpress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadebyaris%2Fai-butler-wordpress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadebyaris%2Fai-butler-wordpress/lists"}