Duplicator 5 kan nu met AI praten. Wat heb je eraan?

Duplicator, de bekende backupplugin voor WordPress, kwam op 22 september uit met versie 5.0. Het grote nieuws: de plugin kan nu samenwerken met AI-assistenten zoals Claude en ChatGPT. Ik heb het dezelfde avond geprobeerd op mijn testsite, samen met Claude Code.

Omslag: Backup door AI

Het korte antwoord: Claude kan nu zelf een backup maken vóór een ingreep, en daarna controleren of die gelukt is. Terugzetten of weggooien kan hij niet. Dat vind ik precies goed. Een AI die een vangnet legt, maar er niets mee kan slopen.

Wat het in de praktijk betekent

Stel, ik vraag Claude om een plugin bij te werken of een pagina om te bouwen. Voortaan kan hij eerst zelf een backup starten, wachten tot die klaar is, en pas dan beginnen. In de backuplijst staat erbij dat de AI hem heeft gemaakt, en waarom. Dat scheelt mij een handeling, en het vergeten ervan.

Twee kanttekeningen

De koppeling loopt via een extra dienst, en die gebruik ik niet. Duplicator raadt aan om de AI te koppelen via WPVibe, een plugin met een eigen server op internet. Je AI-assistent praat dan met hún server, en die praat met jouw site. Het wachtwoord waarmee dat gebeurt, bewaren ze bij hen. Dat kan handig zijn, maar ik laat liever geen derde partij toe met schrijfrechten op mijn sites of die van klanten. Het kan ook zonder: WordPress heeft er zelf een standaard voor.

Op mijn lokale ontwikkelomgeving ging het eerst mis. De eerste backup mislukte. Dat lag niet aan de AI-koppeling, maar aan een oude eigenaardigheid van Duplicator die in versie 5 nog niet is opgelost. Met één instelling was het verholpen. Daarna stond de backup er in ongeveer een minuut.

Conclusie

Nuttig en verstandig afgebakend. Voor wie met AI aan WordPress-sites werkt, is “maak eerst een backup” nu iets wat de AI zelf kan. Ik gebruik het, maar zonder de extra dienst ertussen.

Voor de techneuten: hoe het werkt en waar het misging

Getest met: Duplicator Pro 5.0.4, WordPress 7.1.2, Local (Ubuntu), Claude Code via de MCP Adapter.

Drie abilities. Duplicator registreert via de Abilities API (sinds WP 6.9) drie functies in de categorie duplicator:

  • duplicator/list-backups: de laatste 20 backups (alleen lezen)
  • duplicator/create-backup: start een backup, met scope (all of database) en een reason die in de backuplijst verschijnt
  • duplicator/get-backup-status: volgt de voortgang, van queued via running naar complete of failed

Er is geen ability om te herstellen of te verwijderen. De annotaties (readonly) zijn netjes ingevuld, en op een stagingsite weigert Duplicator alles.

Niet zichtbaar via MCP. De abilities hebben show_in_rest=true, maar zijn niet MCP-publiek. Via de MCP Adapter zie je ze dus niet. Wel via de REST API (POST /wp-json/wp-abilities/v1/abilities/duplicator/create-backup/run, met een application password) of lokaal met WP-CLI:

wp eval 'print_r( wp_get_ability("duplicator/create-backup")->execute(["scope"=>"all","reason"=>"Vóór de update"]) );' --user=<admin>

Waar het misging. Local draait MySQL op een eigen socket. Duplicator’s WP-CLI-commando wp duplicator build zet de database-export vast op mysqldump, zonder die socket mee te geven:

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

De optie --phpsqldump staat in de help als *”Not implemented yet”*. Het venijnige: zo’n mislukte CLI-poging slaat mysqldump op als algemene instelling. Daarna faalt ook een backup via het beheer of via de ability, met dezelfde fout. De nieuwe AutoTune-functie greep in mijn test niet in.

De oplossing. De database-export op PHP zetten: Duplicator → Instellingen → Backups → SQL-modus → PHP Code. Daarna lukte de backup via de ability in ongeveer een minuut: een archive.zip van 84 MB plus de installer.

WPVibe. WPVibe (vibe-ai op wordpress.org, van SeedProd) werkt als tussenstation: AI → wpvibe.ai (Cloudflare) → REST API van je site. Het application password wordt versleuteld op hun servers bewaard. Voor sites in een lokale ontwikkelomgeving werkt het niet, omdat hun server die niet kan bereiken.