WP Agency Edit
Agency hub for managed WordPress sites: store client sites, check connections, edit them remotely via AI chat – English edition.
by Weser AI · github.com/livedialai/wp-agency-edit_en · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/livedialai/wp-agency-edit_en/archive/refs/heads/main.zipAgency Hub for managed WordPress sites. Store sites with their address and application password, check the connection — and then use AI chat to make changes on the respective client site.
The counterpart on the client site is WP AI Edit. The access credential is created there (Settings → WP AI Edit → Remote Access), and it is stored here.
Why
Anyone who manages several sites would otherwise log in to each one individually: opening hours, prices, phone number, a new image. WP Agency Edit turns this into one window with a site selector — the agent asks the selected site what it can do and works there.
The language model runs in the Agency Hub. The client sites need no API access of their own and no knowledge of which model is used. The client only notices that something changes.
Installation
Download the package — the repository is public, no login required:
https://github.com/livedialai/wp-agency-edit_en/releases/latest/download/wp-agency-edit.zip
The file wp-agency-edit.zip unpacks to wp-agency-edit/ and can be installed
in the admin under Plugins → Add New → Upload Plugin. Or with a single
command:
wp plugin install https://github.com/livedialai/wp-agency-edit_en/releases/latest/download/wp-agency-edit.zip --force
Setup
- On the client site: install WP AI Edit. Under Settings → WP AI Edit → Remote Access, create a credential. The application password is shown once — copy it.
- Here: Agency → Add Site — enter the name, address, username, and the application password. Saving checks the connection right away and shows the WordPress version and the number of reachable abilities.
- Here: Agency → Language Model — enter the base URL, model, and key (DeepSeek, OpenAI, Mistral, your own gateway, Ollama).
Then click 🏢 Agency at the bottom right, select the site, and type what should be changed.
Lock
The first time you open the chat window, you are asked:
Initial setup: Set the Agency password
After that, every work session starts with “Which page would you like to edit?” and a prompt for the Agency password.
The Agency password belongs to this plugin, not to the WordPress account. It is stored hashed when set (bcrypt, cost factor 12 — the same procedure WordPress uses for its users) and cannot be computed back from the database.
- Set and change directly in the chat window. A change requires the previous password.
- Forgot it? Your own WordPress password also unlocks. In addition, there is a Reset password button on the Agency page — after that, you set a new one the next time you open the chat.
- Automatic lock after an adjustable idle time (default 5 minutes). Every message in the chat counts as a sign of life and resets the clock.
- Log out via the button at the top right — at any time.
- Switching sites locks immediately. Anyone who wants to edit a different client site must enter the password again.
- After a password change, the session closes immediately.
- Failed attempts are limited: after five wrong entries, no further attempts are possible for ten minutes.
- The session applies only to the selected site. Even someone who knows the identifier of another site gets nowhere with it.
The idle time is set under Agency → Language Model → Lock (1 to 120 minutes); the password status appears directly below it.
Never share your Agency password via chat — it belongs in the input field of the chat window and nowhere else.
How It Works
The agent does not talk to its own copy of the site, but to the real one:
Agency Hub Client Site
──────── ───────────
Language model (here) WP AI Edit
│ Tool call │
├─ GET /wp-json/wp-ai-edit/v1/auskunft ────┤ Query status
├─ GET /wp-json/wp-abilities/v1/abilities ─┤ Fetch abilities
└─ POST /wp-json/wp-abilities/v1/abilities/kiedit/…/run ─┤ Execute
For the client site, every call is an ordinary user. Its permission checks apply unchanged — an administrator credential has all rights, an editor credential correspondingly fewer. What the credential is allowed to do is therefore decided by the client through the account to which they give the password.
The ability list is cached for five minutes, so that not every message costs an extra request.
Suggestions, Not Surprises
The client site usually works in suggestion mode: write commands land there as a suggestion with a preview, not immediately live. The agent can list pending suggestions and, on instruction, approve or discard them. The final decision remains with the site owner.
Documentation
-
Function reference — every class with its methods, all REST routes, all database options, the hooks, and the file layout.
-
Regenerating: the reference is generated from the running installation so that it cannot drift from the code:
wp eval-file wp-content/plugins/wp-agency-edit/docs/referenz-erheben.php > /tmp/doku.json python3 docs/referenz-erzeugen.py . /tmp/doku.jsonEverything comes from the running system: classes and methods via reflection, the routes from the REST server, the options from the database, the hooks from the source. There is no hand-maintained list that could become outdated.
Layout
wp-agency-edit.php Main class: menu, site list, chat window, REST routes
includes/class-speicher.php Site list and encrypted tokens
includes/class-fernruf.php HTTP against a managed site
includes/class-agent.php Tool round against the language model
assets/js/widget.js Chat window with site selection
assets/css/widget.css Styling
prompts/agentur.md System instruction
docs/ Reference and the scripts that generate it
Security
- Application passwords from the WordPress core, no separate key system. Each credential can be revoked individually on the client site; the revocation takes effect immediately.
- Tokens stored encrypted (sodium_crypto_secretbox, fallback AES-256-GCM).
The key is derived from the installation's salts and lives in
wp-config.php— a database dump alone is of no use to anyone. - Every remote access is logged on the client site: time, credential
name, route, status, truncated IP. Suggestions additionally carry the
origin
fern. - No credentials in the source, none in the output.
Requirements
- WordPress 6.9 or newer, PHP 8.0 or newer
- WP AI Edit on the client site with Remote Access enabled
- API access to an OpenAI-compatible language model
License
GPL-2.0-or-later