Follow @plannotator on X for updates
Missed recent releases?
Release
Highlights
v0.28.40
Update works with update checks off, the thread bar shows the thread's name, agents before the project in list rows
v0.28.39
Reply from full screen, thread names lead the Inbox list, one project per Claude Code session, a redesigned code review sidebar, Call flow as cards
v0.28.38
Attach files to a reply in the Inbox, swipe through a question's picture choices, easier-to-read list rows, code on hover in Call Flow and Semantic Changes
v0.28.37
DeepSeek Harness support, save plans to Notion, AsciiDoc in annotate, browse the whole repository in code review, Go to File and Go to Definition, Tidy and hand-offs in the Inbox
v0.28.36
Qwen Code support, plans open in the Clean look, live HTML and diagrams in Inbox messages, a Feedback button, plannotator inbox status, stop and restart
v0.28.35
Updates check the download against checksums Plannotator fetches itself, a failed check changes nothing
v0.28.34
Start a Grok Build session from the Inbox, action items in your reply, a tidier Board, Settings → Capabilities, a failed feedback send is shown
v0.28.33
Pi updates no longer get stuck on 0.28.31
v0.28.32
A security update (built on Bun 1.4.4, eMudhra certificates), the Inbox Board, custom Inbox prompts, hover cards for issue and PR links, rich-text Copy
v0.28.31
An onboarding tour for the Inbox, pinned threads, picture choices in questions, palettes in Inbox Settings, tailnet reviews from the plugin tool
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
What's New in v0.28.42
Choose how your Inbox list looks, find your place in a long document from its contents, and link the Inboxes on two computers. Plannotator's servers now keep files outside the session's folders away from other sites and remote readers. 33 PRs, 8 of them from @utpalsinghdev, @BenNewman100 and @juanibiapina, who makes a first contribution.
Plannotator Inbox
Choose how your list looks
The list's ⋮ menu has three new options: Highlight thread subject, Compact rows (two lines per row) and Hide agent icons. All three are off by default, and each browser keeps its own choice.
Existing Inbox users see a one-time "Choose how your list looks" dialog that previews the options. It shows only on the list, never over an open thread. Keep as it is, or Escape, changes nothing.
Contents for long documents
A plan or Markdown file with 4 or more headings shows a column of ticks in its right margin. Click one to open the contents and go to that section. On a phone, a Contents button sits at the top right. In Side by side on a laptop, the text column is a little narrower to make room.
Link your machines
Link the Inboxes on two computers with a code from Settings → Machines (or plannotator inbox link), and each Inbox shows the threads of both. An answer to a machine that is asleep waits and is sent once when it wakes. Linking uses Tailscale. Until you link a machine, the new Machines section in Settings is the only change.
Clearer search
Each search result starts with a 20 px mark: the agent's mark for a message, a person for your reply, a speech bubble for a thread, and an icon for a file, a guided review or a project. The panel is solid, matched words are underlined, the selected row is easier to see, and on a desktop a footer lists the keys. Results and their order do not change.
Action items you can act on
The thread foot's button counts open action items as well as questions ("3 questions, 2 action items"), and its list takes you to each one. Agents now put each command in its own code block, so every command has a copy button. Text you select in an action or question card stays selected.
Smaller changes
- Unread thread names in the list are bigger and bolder, and go back to normal once read. #2396
- A relative link to a
.mdfile in an attachment opens that document in the viewer, not the Inbox's front page. By @utpalsinghdev, closing #2230 from @zane668. #2363 - Toasts fit long names and errors on phones, tablets and desktop, and on a phone they sit above the reply bar. Agent names longer than 40 characters are shortened with "…". #2409
- On a phone, full-screen files, sheets and Decision mode end above the keyboard, so the reply and comment boxes stay in view. #2388
- On a phone, no dark band shows between the composer and the keyboard. #2386
- New message's To row stays on one line, and the phone's picker shows when each session started. #2400
- In Side by side, the viewer's Download button is an icon. #2399
Plannotator
Documents outside the project
A document in a folder you added in Settings → Files, or one that a document links outside the project, now opens instead of failing with "Access denied". Code and data files, such as .json or .yaml, stay inside the session's folders for every reader.
Another site's page, or a remote reader (remote mode, --tailscale, a proxy), can no longer list or read files outside the session's folders, in the Files sidebar and Obsidian vaults too. For a remote reader, the vault browser opens only the vaults Obsidian lists on the machine running Plannotator.
- #2415, #2418, closing #2291 from @PassionZale
Find the data folder
plannotator data-dir prints the folder where Plannotator keeps plans, history and settings. The skills now ask for it instead of naming ~/.plannotator, so an agent no longer makes a stray folder that hides your data.
When ~/.plannotator holds no data and $XDG_DATA_HOME/plannotator does, Plannotator now uses the XDG folder.
- #2411, #2420, closing #2305 from @silopolis
Uninstall finds every hook
plannotator uninstall now finds hooks with options, such as plannotator --browser Safari, and leaves your other hooks alone.
If a Claude Code, Codex, Gemini or Vibe hook still runs Plannotator, uninstall keeps the binary, stops, and names the file, the field and the fix. Edit that file and run uninstall again.
- #2226 by @utpalsinghdev, closing #1179
Smaller changes
- After a reload in annotate, Draft Recovered offers the saved comments of every document in the session, not only the open one, and Send clears only what that page saw. By @BenNewman100. #2393
- Code review no longer breaks when Expand unchanged is on. By @utpalsinghdev, closing #2264 from @thomasaull. #2361
- A new dark theme: Tokyo Night Moon. By @juanibiapina. #2336
- The repository and branch chips above a plan or document use the room they have, and on Windows the file chip shows the file's name. By @BenNewman100. #2389
- On Windows, relative images and links in an annotated document load from the document's folder. By @BenNewman100. #2390
- On Windows, Guided Review with Pi starts. Closing #2372 from @Mathias-Givskov. #2406
- On Windows, the review app builds from source. By @BenNewman100. #2385
- On Team and Enterprise accounts, Claude Code no longer says Plannotator's
prompt.contextorclassic.SessionStarthook was skipped. Part of #2243 from @sshevlyagin. #2413 - The
plannotatortool accepts the empty optional fields that GitHub Copilot's Responses models send. Closing #2292 from @alexshpunt. #2405
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 npm:@plannotator/pi-extensionOpenCode: Re-run the install script above. It also clears the OpenCode 2 plugin cache.
What's Changed
- Inbox: paint the phone page canvas with the composer's colour (no dark band above the keyboard) by @backnotprop in #2386
- references: @plannotator/references, the open read side of reference integrations by @backnotprop in #2387
- Inbox: the Workspaces contents rail, moved into @plannotator/ui, for documents by @backnotprop in #2384
- Inbox: full-screen reply and comment boxes stay above the phone keyboard by @backnotprop in #2388
- Inbox: unread thread names bigger in the list by @backnotprop in #2396
- Inbox: thread foot counts open action items by @backnotprop in #2394
- Inbox: action-item commands get copy buttons; selecting text in a card sticks by @backnotprop in #2395
- Inbox: the viewer header's Download becomes icon-only by @backnotprop in #2399
- Inbox: compose To row stays one clean line on phones by @backnotprop in #2400
- Inbox: link machines (server engine, Tailscale) by @backnotprop in #2375
- Inbox: list options in the ⋮ menu (highlight, compact, hide agents) by @backnotprop in #2401
- Inbox: link machines, the window (stack 2/2) by @backnotprop in #2382
- fix(plannotator-tool): read empty optional fields as absent (Copilot Responses, #2292) by @backnotprop in #2405
- fix(review): prevent partial diffs from crashing code review by @utpalsinghdev in #2361
- fix(skills): find the data dir with plannotator data-dir; a stray ~/.plannotator no longer hides an XDG install by @backnotprop in #2411
- fix(review): build the diagram engine on Windows by @BenNewman100 in #2385
- fix(annotate): resolve relative images and links from the document's folder on Windows by @BenNewman100 in #2390
- feat(ui): add the Tokyo Night Moon palette by @juanibiapina in #2336
- fix(annotate): a reload offers every document's saved comments, and a send clears only what that page saw by @BenNewman100 in #2393
- Inbox: a one-time dialog that introduces the list options by @backnotprop in #2404
- fix(inbox): open relative Markdown links in attachments by @utpalsinghdev in #2363
- fix(inbox): keep the tailnet door until an unreached unlink is heard by @backnotprop in #2410
- fix(agent-jobs): Guided Review with Pi on Windows: start .cmd shims as Ask AI does (#2372) by @backnotprop in #2406
- fix: close uninstall host integration recovery gaps by @utpalsinghdev in #2226
- Inbox toasts: fit long data on phones, tablets and desktop by @backnotprop in #2409
- fix(ui): the document card's chips name the file on Windows and use the room they have by @BenNewman100 in #2389
- Contents rail: keep a picked heading marked after the scroll snaps to a whole pixel by @backnotprop in #2419
- fix(mod): no prompt.context or classic.SessionStart hook, so a guard has nothing to skip (#2243) by @backnotprop in #2413
- Skills: fall back when plannotator data-dir prints nothing by @backnotprop in #2420
- Open documents outside the project root from this machine (#2291) by @backnotprop in #2415
- Gate the Files sidebar and Obsidian routes by reader by @backnotprop in #2418
- Inbox search: a mark on every row, a solid panel, a visible selected row by @backnotprop in #2417
- Inbox: show the list options intro only on the list by @backnotprop in #2421
New Contributors
- @juanibiapina made their first contribution in #2336
Contributors
- @utpalsinghdev: the uninstall hook checks in #2226, the Expand unchanged fix in #2361, and relative Markdown links in Inbox attachments in #2363
- @BenNewman100: four Windows and annotate fixes, the diagram engine build in #2385, image and link paths in #2390, comments kept across a reload in #2393, and the document chips in #2389
- @juanibiapina: the Tokyo Night Moon theme in #2336
Community
- @PassionZale: reported and diagnosed the Files sidebar 403 (#2291), and added a screenshot to #2264
- @silopolis: reported skills that wrote to
~/.plannotatoron an XDG install (#2305) - @thomasaull: reported the Expand unchanged crash (#2264); @paxsonsa asked about the newer
@pierre/diffsin #2361 - @zane668: reported relative
.mdlinks in Inbox attachments (#2230) - @Mathias-Givskov: reported Guided Review with Pi failing on Windows (#2372)
- @alexshpunt: reported the
plannotatortool failing on GitHub Copilot's Responses models (#2292) - @sshevlyagin and @oronbz: reported and confirmed the skipped-hook notices on Team and Enterprise accounts (#2243)
- @ashish921998: commented on the uninstall recovery issue (#1179)
Full Changelog: v0.28.40...v0.28.42