Title: Digitizer AI Agent Log
Author: Ben Kalsky
Published: <strong>September 2, 2026</strong>
Last modified: September 2, 2026

---

Search plugins

![](https://ps.w.org/digitizer-ai-agent-log/assets/banner-772x250.png?rev=3677679)

![](https://ps.w.org/digitizer-ai-agent-log/assets/icon-256x256.png?rev=3677679)

# Digitizer AI Agent Log

 By [Ben Kalsky](https://profiles.wordpress.org/benkalsky/)

[Download](https://downloads.wordpress.org/plugin/digitizer-ai-agent-log.1.1.0.zip)

 * [Details](https://wordpress.org/plugins/digitizer-ai-agent-log/#description)
 * [Reviews](https://wordpress.org/plugins/digitizer-ai-agent-log/#reviews)
 *  [Installation](https://wordpress.org/plugins/digitizer-ai-agent-log/#installation)
 * [Development](https://wordpress.org/plugins/digitizer-ai-agent-log/#developers)

 [Support](https://wordpress.org/support/plugin/digitizer-ai-agent-log/)

## Description

An AI agent, a headless front end, a sync script and a cron job all reach WordPress
the same way a person never does: over an API. When something on the site is not
what you left it as, the question is not “who changed this” but “did a person change
this, or did something else”.

This plugin answers that question and only that question. It records changes that
arrived over the REST API, WP-Cron, WP-CLI or XML-RPC. A change made by a person
clicking in wp-admin is not recorded – not filtered out afterwards, not stored and
hidden, simply never written.

#### Why not a general activity log

General activity logs record everything, which means the automated change you are
looking for is one line in a thousand made by your own team. This one starts from
the other end. If you already run an activity log, this sits beside it and answers
a different question.

#### What it records

 * **The channel** – `rest`, `cron`, `cli` or `xmlrpc`.
 * **Which application password** authenticated the request, by name, when there
   was one. Never a guess: when the name cannot be determined the field is empty
   rather than filled with a User-Agent or an IP that merely looks like an identity.
 * **What changed** – the object, and which fields were touched.
 * **When**, in UTC, shown in your site’s timezone.

#### What it does not record

 * **Not the values.** The names of the fields that changed, never their contents.
   A log of what your site contains is a second copy of your site.
 * **Not people.** A block editor save is a cookie-authenticated REST request, and
   it is recognised as a person and skipped. This is the plugin’s central promise,
   and it is the case it was hardest to get right.
 * **Not reads.** Something polling the REST API would fill the table in a day and
   drown the writes that were the reason to look.
 * **No IP addresses.**

#### Reading the log

On its own admin screen, filtered by channel, object type and date range. Or over
the REST API at `digitizer-ai-agent-log/v1/activity`, which requires `manage_options`.
There is deliberately no route that deletes: a log that can be erased through the
API is a log an attacker erases on the way out.

#### Multisite

Each site keeps its own log, in its own table, and a run that switches between sites
files each change under the site it happened on.

## Screenshots

[⌊The log: what each change arrived on, which application password authenticated
it, what it touched and which fields. The same entries are readable over the REST
API.⌉⌊The log: what each change arrived on, which application password authenticated
it, what it touched and which fields. The same entries are readable over the REST
API.⌉[

The log: what each change arrived on, which application password authenticated it,
what it touched and which fields. The same entries are readable over the REST API.

## Installation

 1. Install and activate. The log table is created the first time the plugin runs.
 2. Find the log under **Agent Activity** in the admin menu.

## FAQ

### Does it slow the site down?

Changes are held in memory during the request and written once, at shutdown, and
only when the request came in on a channel worth recording. A browser request writes
nothing at all.

### Does it send anything anywhere?

No. Nothing leaves the site.

### How large does the table get?

Old rows are pruned automatically, at most once an hour.

### A plugin on my site rewrites its own settings and fills the log. Can I silence it?

Yes, with a filter. Nothing is filtered out by default, because what is absent from
this log is supposed to mean it did not happen over an API:

    ```
    add_filter( 'digitizer_ai_agent_log_record', function ( $record, $entry ) {
        if ( 'elementor_library' === $entry['object_subtype'] ) {
            return false;
        }
        return $record;
    }, 10, 2 );
    ```

The entry carries `object_type`, `object_subtype`, `object_id`, `object_name`, `
action`, `fields`, `blog_id`, `channel`, `app` and `user_id`, so a rule can match
on who made the change as well as what it touched. On a network the filter runs 
inside the site the change happened on, so a callback may read that site’s own options
to decide.

Note that such an entry is not a mistake: WordPress refuses an identical meta write
before the plugin ever sees it, so a change that reaches the log did alter the row.
It is simply a change you may not care about, and only your site can say which those
are.

### What happens when I uninstall it?

The table is dropped and both of its options are deleted, on every site of a network.
Nothing is left behind.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Digitizer AI Agent Log” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Ben Kalsky ](https://profiles.wordpress.org/benkalsky/)

[Translate “Digitizer AI Agent Log” into your language.](https://translate.wordpress.org/projects/wp-plugins/digitizer-ai-agent-log)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/digitizer-ai-agent-log/),
check out the [SVN repository](https://plugins.svn.wordpress.org/digitizer-ai-agent-log/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/digitizer-ai-agent-log/)
by [RSS](https://plugins.trac.wordpress.org/log/digitizer-ai-agent-log/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.0

 * A `digitizer_ai_agent_log_record` filter, applied to every entry once the channel
   and the application name are known, so a site can silence a writer it does not
   care about. Nothing is filtered by default.

#### 1.0.1

 * The plugin page gets its screenshot. No functional change.

#### 1.0.0

 * First release.

## Meta

 *  Version **1.1.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.5 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.2 or higher **
 * Tags
 * [Activity Log](https://wordpress.org/plugins/tags/activity-log/)[AI](https://wordpress.org/plugins/tags/ai/)
   [audit log](https://wordpress.org/plugins/tags/audit-log/)[rest-api](https://wordpress.org/plugins/tags/rest-api/)
   [wp-cli](https://wordpress.org/plugins/tags/wp-cli/)
 *  [Advanced View](https://wordpress.org/plugins/digitizer-ai-agent-log/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/digitizer-ai-agent-log/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/digitizer-ai-agent-log/reviews/)

## Contributors

 *   [ Ben Kalsky ](https://profiles.wordpress.org/benkalsky/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/digitizer-ai-agent-log/)