Plugin readme.txt Generator

Write the readme.txt WordPress.org reads: header fields, the sections the listing renders, changelog entries and FAQ pairs.

Live output

Enable JavaScript to customise; default output below.

The title WordPress.org shows. Keep it under about 40 characters so it does not wrap in the directory.

WordPress.org usernames, not display names. A wrong username silently shows the wrong person.

Hard limit of 150 characters. WordPress.org truncates anything longer, mid-sentence.

Up to five are used; the rest are ignored. They are search terms, not categories.

The oldest WordPress you actually test against.

Falling more than two releases behind puts an out-of-date notice on your listing.

Installs are blocked below this version, so claim the oldest you support.

The tag WordPress.org actually serves. Getting this wrong ships the wrong code to everyone.

License

The directory requires a GPL-compatible license.

More options Show
Live preview readme.txt
=== My Plugin ===
Contributors: yourwporgusername
Tags: performance, admin
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Does one useful thing, quickly, without settings to learn.

== Description ==

This plugin does the thing you came here for, and nothing else.

It adds no settings page, no dashboard widget and no upsell.

== Installation ==

1. Upload the plugin folder to /wp-content/plugins/.
2. Activate it through the Plugins screen.
3. There is no step three.

== Changelog ==

= 1.0.0 =

First release.

Output is valid and updates as you type.

Fill in the header fields WordPress.org reads, write the sections your listing shows, and copy the finished readme.txt into your plugin folder. The file is assembled in your browser as you type.

How to use

  1. Start with the header. Contributors are WordPress.org usernames, not display names, and Stable tag decides which version the directory actually serves.
  2. Keep the short description under 150 characters. The directory truncates it mid-sentence otherwise, and that sentence is what people read in search results.
  3. Write the description. Blank lines separate paragraphs, and the directory renders a small subset of Markdown.
  4. Add FAQ pairs and changelog entries as rows. Newest version first; the directory shows the entry matching your stable tag.
  5. Copy the file into the root of your plugin folder as readme.txt, beside your main PHP file.

Example

A caching plugin with two maintainers, a donate link and two changelog entries produces this header and section layout:

=== Quick Cache Purge ===
Contributors: acmedev, secondmaintainer
Donate link: https://example.com/donate
Tags: cache, performance, admin
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 2.1.0
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Purges your page cache from the admin bar, with no settings screen to learn.

== Description ==

Adds one button to the admin bar that clears the page cache.

Leave a section’s field empty and the heading is left out, so an unused Installation or Upgrade Notice never ships as an empty block.

Pitfalls

  • Stable tag is the one field that breaks a release. It names the tag the directory serves, so pointing it at a tag you have not pushed ships nothing, and pointing it at the wrong one ships old code to every install.
  • The short description is capped at 150 characters. Past that it is cut where the limit falls, not at a word boundary.
  • Contributors takes WordPress.org usernames. A display name or an email address silently credits nobody.
  • Tested up to is a claim you have to maintain. Falling more than two WordPress releases behind puts an out-of-date notice on the listing.
  • Requires PHP blocks installs below that version, so claim the oldest version you actually support rather than the newest you use.
  • Only the first five tags are used. The rest are ignored, not an error.
  • Screenshot captions are matched by position: the first line describes screenshot-1.png in your assets folder. A missing file leaves a blank frame in the listing.
  • The changelog is not decoration. The update nag reads Upgrade Notice, and reviewers read the changelog to see what a version changed.

Compatibility

The format is what WordPress.org’s readme parser has accepted since the directory moved to the current header set, and it validates against the official readme validator. Generated files carry no PHP, so they are safe to commit as-is. The tool runs in a current browser with no network request; nothing you type is uploaded.

Frequently asked questions

Where does readme.txt go?
In the root of your plugin folder, beside the main PHP file, named exactly readme.txt. WordPress.org reads it from your SVN trunk or tag.
What does Stable tag actually control?
Which version the directory serves to users. It reads the readme.txt in trunk, then serves the code from the tag named there, so trunk’s readme is the one that matters.
Does the directory support Markdown?
A subset. Bold, italics, links, lists and code blocks work; headings inside sections do not, which is why sections use the == Section == and = Subsection = markers.
How many tags should I use?
Five at most, because only the first five count. Pick the words someone would search for, not categories you wish existed.
Do I need an Upgrade Notice?
Only when an update needs a decision from the user, such as a breaking change or a security fix. It appears in the update nag, so keep it short and specific.

From the people who built this tool

WP Adminify

The WordPress admin, rebuilt: a dashboard worth looking at, menu and column control, a real file manager and the login page your client sees.

See WP Adminify Free version on WordPress.org

Weekly drops

New tools, when there are new tools

One email when something worth using ships. No schedule to fill, so no filler.

Your address goes nowhere else, and one click unsubscribes.