Plugin readme.txt Generator
Write the readme.txt WordPress.org reads: header fields, the sections the listing renders, changelog entries and FAQ pairs.
=== 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.
Fix the highlighted fields to update the output.
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
- Start with the header. Contributors are WordPress.org usernames, not display names, and Stable tag decides which version the directory actually serves.
- Keep the short description under 150 characters. The directory truncates it mid-sentence otherwise, and that sentence is what people read in search results.
- Write the description. Blank lines separate paragraphs, and the directory renders a small subset of Markdown.
- Add FAQ pairs and changelog entries as rows. Newest version first; the directory shows the entry matching your stable tag.
- 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.pngin yourassetsfolder. 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?
readme.txt. WordPress.org reads it from your SVN trunk or tag.What does Stable tag actually control?
Does the directory support Markdown?
== Section == and = Subsection = markers.