Follow @plannotator on X for updates
Missed recent releases?
Release
Highlights
v0.28.30
An Artifacts view in the Inbox, comments on part of an image, diagrams in code review, Ask AI keeps its conversation in annotate
v0.28.29
Plan review opens on OpenCode 2, a DOMPurify security update, closing a review stops the agent everywhere
v0.28.27
Jump to open questions, files side by side or full screen, image zoom in the Inbox, empty To field, text size for plan review and annotate
v0.28.26
Action items and reply drafts in the Inbox, one decision button for plan review, Enter to save a comment, a custom code font
v0.28.25
Re-ask open questions, delivery ticks on the list, a count of new messages on the tab, right-click a thread, click Inbox to refresh
v0.28.24
A new look for the Inbox, Send now, tag agents, comment on an agent's message, much smaller reads for agents, links in HTML pages
v0.28.23
Inbox replies reach sessions with background subagents, dictated text no longer goes missing, 👍 Looks good reaches the agent, notifications that never fail silently
v0.28.22
👍 Looks good, full view for files, one viewer for a thread's images and files, every session prints its URL, PLANNOTATOR_BROWSER=none opens nothing
v0.28.21
Message an agent from the Inbox, video attachments, Open in for attachments, Code / Tests / Generated in code review, writes from other websites refused
v0.28.20
Inbox search (⌘K), real folder names for projects, data files open in the code view, word-only replies leave questions open
v0.28.19
Ask this session in T3 Code, folder sessions load shared stylesheets and images, the agent note asked once per agent, Copy connect prompt
v0.28.18
plannotator inbox connects your agents, agents are told when to use the Inbox, rendered Markdown in code review, Inbox Settings in sections
What's New in v0.28.31
An onboarding tour for the Inbox, pinned threads, picture choices in questions, palettes in Inbox Settings, tailnet reviews from the Claude Code plugin tool, and the right gh account for a PR. 39 PRs, four of them from a first-time contributor, @utpalsinghdev.
Plannotator Inbox
An onboarding tour
A first run now opens on a screen explaining that the Inbox works beside the agents you already run, with two choices: take the tour or connect your agents. The tour replays a real thread from building the Inbox (a question with pictures, the reply, the next messages) and writes nothing to your Inbox. Returning users find it in Settings → General → Getting started.
Pin threads
Pin a thread from its right-click menu or the pin in its header. Pinned threads sit in the sidebar above Projects with their state, keep their place in the list, and stay pinned when archived.
Pictures and stakes in questions
An agent can put a picture on each choice, and a question card shows them as tiles you pick from, with a zoom button. Optional Stakes:, Shows:, Why: and Reversible: lines show under the prompt and the choices. A recommendation that names the start of a choice (Recommended: Unpin it for - Unpin it: …) now marks that choice.
Skip questions from the open-questions list
Skip… at the foot of the "N open questions" list lets you tick the questions to skip, or Skip all. Skips wait in your draft until the next Send.
Palettes in Inbox Settings
Settings → General → Appearance → Colors picks the palette for the light and the dark half, the same setting plan review's Theme tab uses.
Step through files on a phone
Full screen on a phone has a 4/9 ⌄ pill for every file in the thread, and a sideways swipe steps to the next or previous file.
Smaller changes
-
The Inbox says which agents your reply wakes. Claude Code, Pi and OpenCode 2 get it as a new turn on their own; agents through MCP see it when they next check. Agents nothing wakes are told to call
wait_for_reply. #2168 -
Every wake ends with a line naming the thread id,
read_threadandplannotator inbox --help. #2143 -
The Claude Code mod never steers into or aborts another plugin's turn. A reply waiting on such a turn goes in when the session is idle. #2176
-
The Inbox reminder reaches Team/Enterprise Claude Code sessions and comes back after compaction. #2167, closing #2159
-
No more "hook was skipped" notice at every permission prompt on Team/Enterprise accounts. #2160
-
The first-run screen asks for notifications, so the first question can notify. Your own sent reply shows your words and a short list of your answers. #2148
-
A dot on the sidebar toggle when an update is waiting and the sidebar is closed. #2135
-
Cursor gets the agent note as text to paste into its Rules (
plannotator inbox --notes cursor). #2153 by @utpalsinghdev, closing #1991 -
Agents are nudged to attach a screenshot for something visual. #2175
-
An image the Inbox cannot load shows as its alt text, not a broken icon. #2177
-
Images and code in a choice keep their corners; only the Recommended tag is a pill. #2179
-
Decision mode is experimental and off by default. It clears what agents ask across threads one decision at a time; turn it on in Settings → General → Experimental. #2141, #2154
Plannotator
Tailnet reviews from the plugin tool
The plannotator tool in Claude Code takes a tailscale option, so a review the agent opens can be read on your phone over Tailscale. Ask this session keeps working there for the Tailscale login that owns the machine; anyone else on the tailnet gets the separate Ask AI.
The gh account that can see the PR
With two accounts signed in to gh, plannotator review <PR URL> now uses the one that can read the PR, for that review only. Your gh setting is unchanged, and an invalid GH_TOKEN is named.
A fixed port for live app annotation
PLANNOTATOR_LIVE_PORT sets the live app proxy's port (or a range), so live annotation works over an SSH port forward.
- #2145 by @utpalsinghdev, #2151, closing #2109
Plannotator Graphite
A new palette with a lighter, near-neutral dark half that stays readable in a bright room. Pick it in Settings → Theme.
Smaller changes
- A broken config.json is no longer overwritten. A settings save refuses, says how to fix the file, and leaves it as it was. #2178
- Session secrets no longer reach child processes. The Ask this session token and the decision-file paths stay out of git, gh and the agent CLIs a review starts. #2169
- A new release shows within minutes. Update checks read GitHub's latest-release link, and the review-window toast shows at most once a day. #2133, #2135
- Cursor review jobs never start another program named
agent. #2173 - Linux folder watches no longer exhaust inotify on large repositories. #2155 by @utpalsinghdev, #2163, closing #1439
- Replacing an Ask AI question in Pi no longer stops the running turn. #2126 by @utpalsinghdev, closing #2038
- Back in a multi-file annotate session keeps your place. #2129, closing #2128
- The image viewer says how to zoom when the wheel starts scrolling. #2131, closing #2127
- The diff shows again after switching through an empty diff in code review. #2180
- Guided Review viewer uploads retry and publish the entry last, so a failed deploy cannot leave exported guides unstyled. #2150
- Dependency updates, including Mermaid 12.2. #2152
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: The plugin and the plannotator binary update separately, so run the install script above as well. In a terminal:
claude plugin marketplace update plannotator
claude plugin update plannotator@plannotatorThen restart Claude Code. Inside Claude Code, run /plugin marketplace update plannotator, then open /plugin → Installed → plannotator → Update now.
Pi:
pi update --extensionsOpenCode: Re-run the install script above. It now also clears the OpenCode 2 plugin cache.
What's Changed
- fix: preserve Pi turn when replacing an Ask AI question by @utpalsinghdev in #2126
- fix: Back in a multi-file annotate session keeps the reader's place by @backnotprop in #2129
- Image viewer: say how to zoom when the wheel starts scrolling by @backnotprop in #2131
- Inbox: skip a question from the open-questions list by @backnotprop in #2132
- Update notices: check GitHub's latest-release link often by @backnotprop in #2133
- Update notices: toast once a day, dot on the sidebar toggle by @backnotprop in #2135
- Inbox: skip from the questions list with a select mode by @backnotprop in #2136
- Add the Plannotator Graphite dark palette by @backnotprop in #2137
- Inbox: choose light and dark palettes in Settings → Appearance by @backnotprop in #2138
- Question cards: match a recommendation to the choice it begins by @backnotprop in #2139
- Inbox: pin threads to the sidebar by @backnotprop in #2140
- Inbox: decision mode (experimental, off by default) by @backnotprop in #2141
- Usage counts for experimental features, phase 1 (nothing is recorded or sent yet) by @backnotprop in #2142
- Inbox wake: a closing line with the thread id, read_thread and --help by @backnotprop in #2143
- Question blocks: optional Stakes, Shows, Why, Reversible and picture choices by @backnotprop in #2144
- fix: support fixed ports for live app proxies by @utpalsinghdev in #2145
- Inbox first run: notifications ask on the first-run screen; your sent reply in your own words by @backnotprop in #2148
- guides.show: retry viewer uploads, publish entries last, verify every file by @backnotprop in #2150
- Live proxy port: tests for PLANNOTATOR_LIVE_PORT, one-line errors for EACCES by @backnotprop in #2151
- chore(deps): bun minor and patch group by @backnotprop in #2152
- fix: offer manual Inbox notes for Cursor by @utpalsinghdev in #2153
- Decision mode: the agent contract lines on the Queue card by @backnotprop in #2154
- fix: watch directories instead of files on Linux by @utpalsinghdev in #2155
- Inbox: the onboarding tour by @backnotprop in #2156
- fix(mod): only take ExitPlanMode PermissionRequest events by @backnotprop in #2160
- feat: use the gh account that can see the PR by @backnotprop in #2161
- fix: Linux folder watches keep working past the cap and unreadable folders by @backnotprop in #2163
- Inbox: step files on a phone with the toolbar pill and a swipe by @backnotprop in #2164
- Inbox reminder reaches Team/Enterprise sessions and survives compaction by @backnotprop in #2167
- Inbox: say plainly which agents a reply wakes by @backnotprop in #2168
- fix: scrubbed env vars no longer reach child processes by @backnotprop in #2169
- Tailnet reviews from the plugin tool, with Ask this session for the machine's owner by @backnotprop in #2170
- Code review: Cursor agent jobs never start another program named agent by @backnotprop in #2173
- Inbox: nudge agents to attach a screenshot for something visual by @backnotprop in #2175
- Claude Code mod: never steer into or abort another plugin's turn by @backnotprop in #2176
- Inbox: draw an image the window cannot load as its alt text by @backnotprop in #2177
- Inbox tour: fix the QA findings; never write over an unreadable config.json or pins.json by @backnotprop in #2178
- Inbox: keep the pill on the Recommended tag, not on images or code in a choice by @backnotprop in #2179
- Code review: show the diff after a switch through an empty diff; name a rejected GH_TOKEN by @backnotprop in #2180
New Contributors
- @utpalsinghdev made their first contribution in #2126
Community
- @utpalsinghdev: the live app proxy port, Linux folder watches, the Cursor note and the Pi Ask AI fix (#2145, #2155, #2153, #2126)
- @serpi4: asked for tailnet reviews from the plugin tool (#2166)
- @tobeycodes: reported reviews failing with two gh accounts (#2157)
- @spawnia: reported the Team/Enterprise hook notices and the missing Inbox reminder (#2159)
- @vladmarchuk: asked for a fixed live proxy port (#2109)
- @aniravi24: reported inotify exhaustion on large repositories (#1439)
- @kyletruong: asked for the agent note in Cursor (#1991)
- @pstanton237: reported the Pi Ask AI interrupt (#2038)
- @zane668: reported the multi-file Back position and the image wheel zoom (#2128, #2127)
Full Changelog: v0.28.30...v0.28.31



