WP Red Pen
A logged-in review layer. Editors and admins flip on Dev Mode and drop notes, flags, and suggested edits on any post or page from a floating button. Notes collect on the post's edit screen and in a shared to-do repository.
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/ltracy86/wp-red-pen/archive/refs/heads/main.zipA logged-in review layer for WordPress. Editors and admins flip on Dev Mode and drop typed notes - ideas, problems, questions - on any post or page from a floating button. Every note collects on the post's edit screen and in a single shared to-do repository under Tools > Red Pen.
Part of the Tracy Digital Media free dev-plugin family. Free and open, every feature included - white-label client reports and the multi-site Hub board too. No account, no subscription, no third-party services, no phone-home.
Why
Reviewing a site usually means a messy spreadsheet, a thread of "the about page has a typo," or comments scattered across email. WP Red Pen puts the note where you found the problem - on the page itself - and collects every note in one place your whole team can see.
Good for editorial review, client hand-offs, content audits, QA passes, and shared to-do lists.
What it does
- Floating note button on the front end, shown only to logged-in users who can edit posts. Per-user Dev Mode toggle in the admin bar. Works on singular posts/pages and archives, taxonomy pages, the home/front page, search, and 404 - controlled by a global "Where Red Pen appears" setting (defaults to everywhere).
- Reporting level per note: target This page (the exact post or archive you're on), This template (the view type, so the note covers every page rendered the same way), or Site-wide (every page of the site). A page shows its own notes plus the template and site-wide notes that apply to it.
- Snip a screenshot - click Screenshot, drag a box around the area, done. The region is captured client-side (vendored html2canvas) and stored as a small WebP in
uploads/wp-red-pen/, attached to the note. A markup editor (freehand pen, arrow, rectangle, undo) opens after the snip so you can circle exactly what you mean. - Typed notes - Note, Idea, Problem, or Question - plus your own custom note types with their own colours, defined in Display settings.
- Edit any note after adding it - change the text, type, priority, or assignee; swap, remove, or add a screenshot; re-pin, move, or clear the attached element. Text and type are also editable inline from the repository table.
- Element-level pinning - a "Pin to element" picker attaches a note to a specific element; anchored notes show as numbered markers on the page that jump to the note when clicked, and a Locate button scrolls to and highlights the pinned element.
- Three-state status - every note is Open, In Progress, or Resolved; the panel has a tab per status and each note has a status dropdown (with Undo).
- Threaded replies - reply to any note from the panel to build a discussion under it.
- Priority, severity + assignment - tag notes Low / Normal / High, optionally rate impact (Blocker to Trivial), and assign them to any editor/admin; the repository adds Priority and Assigned columns and an "Assigned to me" filter.
- Client reviewer links - generate a private, token-gated link and a client can leave notes on the live site with no WordPress login. Revocable, optionally expiring, enforced server-side.
- Internal by default - your notes are invisible to reviewer links unless you tick Visible to client reviewers on the note. A reviewer only ever sees notes you shared plus their own reports, and their own reports stay visible after you resolve them, with the date they were fixed.
- Agent feedback - enable the AI coding agents you use (Claude, Codex, a custom name) in settings, then assign a note to one. It moves to that agent's queue and is written to a portable JSON brief the agent can read off disk. Local only; no AI keys, nothing leaves the site.
- White-label client reports - one click turns the notes into a printable client report; set your own title, logo, and accent colour and hide the Red Pen credit. Free, like everything else.
- Red Pen Hub connection - optionally push (or let the Hub pull) your notes onto a local cross-project board. Outbound-only, no external service; the Hub is a separate free app.
- CSV export of the repository (honouring the active filters) - local, no external service.
- Auto-context - each note records the browser, OS, and viewport it was created in.
- Per-post meta box on the edit screen listing that page's notes.
- Shared repository under Tools > Red Pen: every note across the site, filterable by Open / In Progress / Resolved / All, with per-note status actions, inline quick-edits, bulk actions (reopen / mark in progress / resolve / delete), and delete.
- Jump to next open note - an admin-bar item (and the J key) cycles through the open notes pinned on the current page.
- Dark mode - a Display-settings toggle darkens the front-end panel and the repository page.
- Open-note badge on the admin bar and the floating button.
- Clean uninstall - deleting the plugin removes every note, screenshot, option, and preference it created and nothing else.
Architecture
Single self-contained wp-red-pen.php (inline CSS/JS, no build step), in keeping with the TDM family's containment approach.
- Storage: a private
wprp_notecustom post type. Note body is the post content; author and date are native; status is a custom post status (wprp_open/wprp_progress/wprp_resolved); the target post id and note type are post meta. No custom tables. - REST namespace
wprp/v1:GET/POST /notes,POST /notes/{id}(edit),POST /notes/{id}/status,POST /notes/{id}/replies. Edit, status and delete require theedit_postscapability and thewp_restnonce. Read and create additionally accept a valid reviewer-link token, sent as anX-WPRP-Review-Tokenheader. The front-end panel is the main REST client; a connected Red Pen Hub can also pull notes over the same namespace. - Replies are child
wprp_noteposts (post_parent= the note id); priority, assignee, context, and the element anchor are all post meta. Still no custom tables. - Targeting context: each note stores a
_wprp_ctx_key(e.g.post:12,pt_archive:composer,term:genre:5,tpl:single-track,search,404),_wprp_ctx_label, and_wprp_level(page/template/global). The front end fetches by the current view's page + template keys. A one-timeinitmigration backfills legacy notes aspost:page notes (schema tracked in thewprp_db_versionoption). Visibility is the globalwprp_show_onoption. - Capability: the dev surface is gated on
edit_posts(editors + admins); permanent deletion additionally needsdelete_others_posts. Ordinary logged-out visitors receive nothing. - Reviewer visibility: a reviewer-link holder is anonymous, so every read they make runs through one gate,
wprp_reviewer_can_see_note(). A note reaches them only if it is top-level, non-agent, on a public published page or template, and either carries the explicit_wprp_client_visibleflag while open or was filed through that same link token (_wprp_review_token). The flag fails closed: no flag means internal. Screenshots are never served to a reviewer at all.
Install
- Copy the
wp-red-penfolder towp-content/plugins/(or upload the zip via Plugins -> Add New -> Upload). - Activate.
- Click Red Pen: Off in the admin bar to turn Dev Mode on for your account.
- Open any post/page on the front end and use the floating button (bottom right).
- Review everything under Tools > Red Pen.
Scope
Everything above ships in the current release, free. Deliberately out of scope: email/notification alerts, external SaaS sync, push to Jira/Slack/Trello, real-time collaboration, license servers, per-seat billing. Those are the things competitors paywall; leaving them out keeps Red Pen local, private, and simple.
Support
Red Pen is free and open, every feature, no gate. If it saves you time, you can back the next release:
- Buy Me a Coffee: https://www.buymeacoffee.com/lincolntracy
Supporters are listed at https://redpen.tools/supporters.html.
Contributing
Bug reports and pull requests are welcome - see CONTRIBUTING.md. Release history is in CHANGELOG.md.
License
GPLv2 or later. Author: Lincoln Tracy / Tracy Digital Media LLC.