Claude AI Virtual Assistant

WordPress, managed
by conversation.

An AI-powered dashboard assistant built on Anthropic's Claude — embedded directly inside your WordPress admin. Manage posts, users, plugins, comments and more using plain English, with no page switching required.

v1.0.0 WordPress 5.8+ PHP 7.4+ Requires Anthropic API Key GPL v2 Admin Only
Before You Begin

Requirements

Make sure your environment meets these requirements before installing.

WordPress
5.8 or higher
🐘
PHP
7.4 or higher
🔑
Anthropic API Key
console.anthropic.com
👤
WordPress Role
Administrator
🌐
Outbound HTTPS
api.anthropic.com:443
💾
Disk Space
Less than 1 MB
Outbound Requests
Your server must be able to make outbound HTTPS requests to api.anthropic.com. Some locked-down hosting environments block external API calls — check with your host if you see connection errors.
Setup

Installation

Get up and running in under two minutes.

1
Upload the Plugin
Extract the downloaded ZIP and upload the claude-assistant folder to your plugins directory.
Directory Structure
/wp-content/plugins/claude-assistant/ ├── claude-assistant.php ├── uninstall.php ├── readme.txt └── assets/ ├── assistant.js └── assistant.css
2
Activate via WordPress Admin
Go to Plugins → Installed Plugins, find Claude AI Virtual Assistant and click Activate.
After activation you will see a Claude Assistant entry in your admin sidebar, just below the Dashboard menu item.
3
Add Your Anthropic API Key
Navigate to Claude Assistant → Settings and paste your Anthropic API key. Get one free at console.anthropic.com.
Keep Your Key Private
Your API key is stored server-side and never exposed to the browser or page source. Do not share it publicly.
4
Start Chatting
Go to Claude Assistant in the admin menu. The assistant is ready. Click a quick-action chip or type any instruction in plain English.
Settings

Configuration

The plugin stores a single setting in your WordPress database.

🔑
Anthropic API Key
Stored in wp_options under claude_va_api_key. Retrieved server-side only — never exposed to the browser. Used exclusively in PHP when proxying requests to Anthropic's API.
🛣
Settings Page Location
Found at Claude Assistant → Settings in the WP admin. Direct URL:

wp-admin/admin.php?page=claude-assistant-settings
No database tables are created. The plugin uses only a single wp_options row. When the plugin is deleted, uninstall.php removes it automatically — including on multisite networks.
What It Can Do

Features

Everything the assistant can manage through plain-English conversation.

📝
Posts & Pages
List, create, update, delete, and inspect posts and pages. Set titles, content, status (draft/published), and post type.
👥
Users
List all users with their roles, or create new ones. New users receive a secure auto-generated password and a reset email.
🔌
Plugins
View all installed plugins with version and active/inactive status. Activate or deactivate any plugin by name.
⚙️
Site Settings
Read site name, description, WP version, timezone, admin email and content counts. Update allowed settings safely.
💬
Comments
List pending, approved, or spam comments. Approve individual comments or permanently delete them.
🏷
Categories
List all post categories with post counts, slugs and IDs. Create new categories on the fly.
📸
Media Library
Browse recent media attachments — see file titles, types, and direct URLs for uploaded assets.
🔒
Secure by Default
All actions require administrator capability. Every AJAX request is nonce-verified. The API key never leaves the server.
🌐
Translation Ready
All user-facing strings use the claude-assistant text domain. Add .po/.mo files to /languages/ to translate.
Developer Reference

Tool Reference

Every action the assistant can trigger, with their parameters and return values.

Tool / Action Parameters Description
list_posts count? status? type? Returns recent posts. Defaults: 10 posts, any status, post type.
create_post title content status? type? Creates a new post or page. Returns the new ID and edit URL.
update_post id title? content? status? Updates an existing post's title, content, or status by ID.
delete_post id force? Moves a post to trash. If force=true, permanently deletes it.
get_post id Returns full details of a single post including author and stripped content.
list_pages count? Returns published pages. Defaults to 20.
list_users count? Returns users with ID, name, email, and assigned roles.
create_user username email role? Creates a new user with a generated password and sends a reset email.
list_plugins Returns all installed plugins with name, version, file path, and active status.
activate_plugin plugin Activates a plugin by its file path (e.g. akismet/akismet.php).
deactivate_plugin plugin Deactivates a plugin by its file path.
get_site_info Returns site name, URL, WP version, language, timezone, admin email, and counts.
update_option key value Updates an allowed site option. Keys: blogname, blogdescription, admin_email, timezone_string.
list_media count? Returns recent media attachments with title, URL, and MIME type.
list_comments count? status? Returns comments. Default status is hold (pending). Also accepts approve, spam.
approve_comment id Approves a pending comment by ID.
delete_comment id Permanently deletes a comment by ID.
list_categories Returns all categories with term ID, name, slug, and post count.
create_category name Creates a new post category. Returns the new term ID.
Parameters marked ? are optional. The assistant determines which tool to call automatically — you never write JSON directly.
User Guide

Interface Guide

A tour of every element in the assistant panel.

Sidebar Navigation
The left panel groups all actions into three sections — Quick Actions, Content, and System. Clicking any item instantly fires that query. The active item is highlighted in purple.
Welcome / Empty State
When no conversation is active, the main area shows the assistant icon, a welcome message, and six quick-action chips. Clicking any chip starts a conversation immediately.
🔧
Tool Result Bubbles
When the assistant calls a WordPress action, a green-bordered WP Action bubble appears showing the action name and a formatted table — with color-coded ✓ Active / ✕ Inactive badges for plugins.
🗑
Clear Button
The trash icon in the top-right clears the conversation history and resets to the welcome state. Useful for starting a fresh session without refreshing the page.
⬤ Connected
Connection Status
The pulsing green dot shows Connected when an API key is configured. If no key is saved it shows Not connected with a direct link to Settings.
Keyboard Shortcut
Press Enter to send a message. Press Shift + Enter to insert a line break without sending.
Privacy & Safety

Security

Security measures built into every layer of the plugin.

🔐
Server-Side API Proxy
All requests to Anthropic are made server-side using wp_remote_post(). Your API key is never sent to the browser. The browser only communicates with your own admin-ajax.php endpoint.
🛡
Nonce Verification
Both AJAX actions call check_ajax_referer() to verify WordPress nonces on every request, preventing CSRF attacks.
👤
Capability Checks
Both AJAX handlers verify current_user_can('manage_options') before executing. Non-administrators receive a 403 Unauthorized response.
🧹
Input Sanitization
All inputs sanitized via sanitize_text_field(), sanitize_email(), sanitize_key(), wp_kses_post(), and intval() where appropriate.
Output Escaping
All PHP output escaped with esc_html(), esc_attr(), esc_url(), or wp_kses(). All JavaScript output uses the escHtml() helper before DOM insertion.
🚪
Option Allowlist
The update_option action only accepts a hardcoded allowlist of safe keys. Any other key is rejected with an error — preventing arbitrary options from being modified.
Common Questions

FAQ

Where do I get an Anthropic API key?
Visit console.anthropic.com, sign up for a free account, and navigate to API Keys in the dashboard. Generate a new key and paste it into Claude Assistant → Settings. Treat it like a password and never share it publicly.
Is my API key safe? Can other users see it?
Yes. The API key is stored in the WordPress database and used exclusively server-side in PHP. It is never included in page source, JavaScript files, or AJAX responses. Only authenticated administrators can access the settings page.
Why is the assistant giving wrong information about my plugins?
This affects versions prior to v1.0.0. Older versions had a weaker system prompt that occasionally allowed Claude to answer from its AI training data instead of calling the list_plugins tool first. Version 1.0.3 forces a tool call before any site-specific answer. Please update to the latest version.
Who can access the assistant?
Only WordPress administrators with the manage_options capability. Editor, Author, Subscriber, and Contributor roles cannot access the assistant panel or any of the AJAX actions.
How much will it cost to use the API?
Costs are usage-based and depend on how many messages you send. A typical management task uses a small number of tokens. Anthropic offers a free credit tier for new accounts. Monitor usage at console.anthropic.com. The plugin uses claude-sonnet-4-20250514 with a 2048 max token response.
Does the plugin work on WordPress Multisite?
Yes, when activated per-site on a multisite network. Network-wide management across all sites is not currently supported. uninstall.php handles cleanup across all sites when deleted.
I see "No API key set" even though I saved my key. What's wrong?
This was a bug in v1.0.1 caused by how wp_localize_script() serializes PHP booleans. Fixed in v1.0.2 by passing explicit "yes"/"no" strings. Update to the latest version and hard-refresh with Ctrl+Shift+R (or Cmd+Shift+R on Mac).
Can I translate the plugin?
Yes. All PHP strings use the claude-assistant text domain wrapped in standard i18n functions. Create a .po file in the /languages/ directory and compile it to a .mo file using Loco Translate or PoEdit.
Release History

Changelog

1.0.0
Initial Release
Initial public release with 20 WordPress management actions
Chat interface with suggestion chips, loading animation, and tool result tables
Settings page for API key storage
Get Help

Support

Need help? Here is where to find it.

💬
TemplateMonster Support
Use the Comments tab on the item page to submit support requests. Include your WordPress version, PHP version, and a description of the issue.
🌐
Author Website
Visit https://www.templatemonster.com/authors/pixelnx/ for additional resources, contact information, and other plugins from the same author.
🔑
Anthropic Support
For API key issues, billing, rate limits, or model behaviour, visit support.anthropic.com.
Before Submitting a Support Request
Confirm you are on the latest version, PHP is 7.4+, your API key has available credits, and your server can reach api.anthropic.com on port 443.