Title: Tomjesch | AI Blog Writer
Author: Tomjesch
Published: <strong>April 1, 2026</strong>
Last modified: July 6, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/tomjesch-ai-blog-writer.svg)

# Tomjesch | AI Blog Writer

 By [Tomjesch](https://profiles.wordpress.org/tomjesch/)

[Download](https://downloads.wordpress.org/plugin/tomjesch-ai-blog-writer.1.1.0.zip)

 * [Details](https://en-ca.wordpress.org/plugins/tomjesch-ai-blog-writer/#description)
 * [Reviews](https://en-ca.wordpress.org/plugins/tomjesch-ai-blog-writer/#reviews)
 *  [Installation](https://en-ca.wordpress.org/plugins/tomjesch-ai-blog-writer/#installation)
 * [Development](https://en-ca.wordpress.org/plugins/tomjesch-ai-blog-writer/#developers)

 [Support](https://wordpress.org/support/plugin/tomjesch-ai-blog-writer/)

## Description

Tomjesch AI Blog Writer adds an “Add with AI” button to selected post types in the
WordPress admin list screens. From there, you can describe the post you want, and
the plugin will call your configured AI provider to generate a draft (title + HTML
content) and open it directly in the editor for review.

The plugin is provider-agnostic and currently supports:

 * OpenAI Chat Completions and Responses APIs (GPT-5, GPT-5.4, GPT-5.5, etc.)
 * Anthropic Claude Messages API (Haiku 4.5, Sonnet 4.6/5, Opus 3/4.6/4.7/4.8)

All AI calls are made directly from your WordPress site to the provider’s HTTPS 
API using your own API key. No data is sent to any server operated by the plugin
author.

### Key features

 * “Add with AI” action on supported post types in the admin list table
 * Provider-specific model selection for OpenAI and Anthropic
 * Base (master) prompt for tone, structure, SEO and style
 * Connection test from the settings page, including basic token limit hints
 * Robust response normalization (handles JSON, embedded JSON, labeled text, HTML,
   and plain text)
 * Optional debug view showing the most recent generations (prompts + token usage)

### SaaS and external services

This plugin is an interface to third-party AI services. To function, it requires
you to configure an API key for at least one provider:

 * OpenAI – `https://platform.openai.com/`
 * Anthropic Claude – `https://console.anthropic.com/`

These services may be paid and are governed by their own terms of use and privacy
policies. This plugin does not alter or override those terms; it simply sends your
prompts and instructions to the provider you choose and displays the generated content.

### Privacy

This plugin:

 * Sends the base prompt and the per-request user prompt to your configured AI provider
   over HTTPS when you test the connection or generate a post.
 * Does **not** send any data to servers controlled by the plugin author.
 * Stores recent prompts and token usage **locally** in your WordPress database 
   for debugging purposes only.

### Debug log

When you generate a post, the following data is stored in a small rotating debug
log:

 * Timestamp
 * Post type
 * Provider and model name
 * User prompt (truncated to 4,000 characters)
 * Base prompt (truncated to 4,000 characters)
 * Token usage information where the provider reports it
 * A small excerpt of the raw provider response
 * A normalized title excerpt and normalization metadata (detected format + any 
   repairs applied)

Only the 20 most recent entries are kept. You can review them on the “AI Blog Writer
Debug” page under Settings, and you can clear the entire history with the **“Clear
debug history”** button on that page.

If you consider prompts or base prompts to contain personal data, you should clear
the debug history regularly and avoid including personal data in prompts.

### API keys

API keys can be stored in one of two ways:

 * In the plugin settings (stored in the WordPress options table).
 * In `wp-config.php` using the constant `TOMJESCH_AI_BLOG_WRITER_API_KEY`, which
   is recommended for extra security.

When the plugin is **uninstalled** from the Plugins screen, it automatically deletes
its options, including any API key stored in the database and all debug entries.

If you choose to define an API key in `wp-config.php`, that key is stored in code,
not in the database. When you stop using the plugin or rotate keys, you should also
remove or update the `TOMJESCH_AI_BLOG_WRITER_API_KEY` constant in `wp-config.php`.

## Installation

 1. Upload the `tomjesch-ai-blog-writer` folder to the `/wp-content/plugins/` directory,
    or install the plugin through the WordPress Plugins screen.
 2. Activate the plugin through the “Plugins” screen in WordPress.
 3. Go to **Settings  AI Blog Writer**:
 4.  * Choose your provider (OpenAI or Anthropic).
     * Enter your API key (or define it in `wp-config.php`).
     * Select the default model for that provider.
     * Configure a base prompt if desired.
     * Select which post types should have the “Add with AI” button.
 5. (Optional) Use the **Connection Test** section on the settings page to verify that
    the API key and model work.

Once configured, visit the list view for a supported post type (for example, Posts).
Next to the standard “Add New” button, you will see an **“Add with AI”** button.
Click it to open the prompt modal and generate a draft.

## FAQ

### Does this plugin send data to any server operated by the author?

No. All outbound HTTP requests are sent directly from your WordPress site to the
AI provider you configure (OpenAI or Anthropic), using their official HTTPS APIs.
The plugin does not proxy requests through any server controlled by the author.

### What data is sent to the AI provider?

For each generation request, the plugin sends:

 * The base (master) prompt from the settings page (if configured).
 * The free-text description you type into the “Generate new post with AI” modal.
 * Minimal context about the post type (for example, its label) to help the model
   understand what you are creating.

The AI provider returns generated JSON containing a title and HTML body, which the
plugin uses to create a draft.

### Is there a way to clear prompts from the debug history?

Yes. Go to **Settings  AI Blog Writer Debug** and click the **“Clear debug history”**
button. This removes all stored debug entries from the database.

### How are API keys stored, and how can I remove them?

 * If you enter an API key on the settings page, it is stored in the WordPress options
   table and is automatically removed when you uninstall the plugin.
 * If you define `TOMJESCH_AI_BLOG_WRITER_API_KEY` in `wp-config.php`, the key is
   stored in that file instead of the database. To remove it, edit `wp-config.php`
   and delete or change the constant definition.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Tomjesch | AI Blog Writer” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Tomjesch ](https://profiles.wordpress.org/tomjesch/)

[Translate “Tomjesch | AI Blog Writer” into your language.](https://translate.wordpress.org/projects/wp-plugins/tomjesch-ai-blog-writer)

### Interested in development?

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

## Changelog

 * 1.1.0 =
 * OpenAI: add GPT-5.4 and GPT-5.5 models (including mini, nano, and Pro variants);
   remove retired GPT-4 and o3-mini models; default to GPT-5.4 mini with automatic
   migration of saved GPT-4 selections; improve reasoning-model API compatibility(
   reasoning effort, Responses API for Pro models, extended timeouts).
 * Anthropic: replace retired Claude model list with Haiku 4.5, Sonnet 4.6/5, Opus
   3/4.6/4.7/4.8; default to Haiku 4.5 with automatic migration of saved legacy 
   selections; improve API compatibility (effort parameter, sampling restrictions,
   extended timeouts for Opus and Sonnet 5).
 * 1.0.2 =
 * Improve robustness of generated output parsing/normalization (supports multiple
   response formats and common wrapper/escaping issues).
 * Expand debug entries with normalization metadata while keeping a small rotating
   history.
 * 1.0.1 =
 * Refactor admin inline scripts to enqueued JS assets (performance/compatibility);
   keep JSON-LD unchanged.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.1.0**
 *  Last updated: **3 months ago**
 *  Active installations: **Fewer than 10**
 *  WordPress Version: ** 6.0 or higher **
 *  Tested up to: **6.9.10**
 *  PHP Version: ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/tomjesch-ai-blog-writer/)
 * Tags:
 * [AI](https://en-ca.wordpress.org/plugins/tags/ai/)[anthropic](https://en-ca.wordpress.org/plugins/tags/anthropic/)
   [content](https://en-ca.wordpress.org/plugins/tags/content/)[editor](https://en-ca.wordpress.org/plugins/tags/editor/)
   [openai](https://en-ca.wordpress.org/plugins/tags/openai/)
 *  [Advanced View](https://en-ca.wordpress.org/plugins/tomjesch-ai-blog-writer/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/tomjesch-ai-blog-writer/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/tomjesch-ai-blog-writer/reviews/)

## Contributors

 *   [ Tomjesch ](https://profiles.wordpress.org/tomjesch/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/tomjesch-ai-blog-writer/)