Follow @plannotator on X for updates
Missed recent releases?
Release
Highlights
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
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
What's New in v0.28.37
DeepSeek Harness joins Plannotator, plans can be saved to Notion, and AsciiDoc files open in annotate. Code review can now browse and search the whole repository, with Go to File and Go to Definition. In the Inbox: Tidy, handing a thread to another agent, and copying a message or a thread. 42 PRs, 18 of them from 16 community contributors, 9 of them first-timers.
Plannotator Inbox
Tidy
Tidy, in the ⋯ menu of the list and the Board, sends a short prompt to each live agent that may owe you something: an old open question, a Board card that has not moved, or a reply of yours it has not answered. Each agent tidies its own threads, and one with nothing to change sends nothing. You choose which agents to ask.
Ask, add or hand off a tagged agent
After you tag an agent in the reply box, a line under it says what Send does: Ask it (as before), Add it to the thread, or Hand off the thread to it. A hand-off has Undo.
Copy a message or a thread
Each message has a ⋯ menu with Copy message, Copy link to message and Copy thread. The thread header and the list row menu copy the whole thread as Markdown, and a copied message ends with the names of its attached files.
One set of keyboard shortcuts
J and K now move between threads; Shift+J and Shift+K move between messages. F opens full screen, ? shows every key, and Settings → General → Keyboard turns single-key shortcuts off.
/plannotator-inbox teaches your agent the Inbox
The command still opens the Inbox and shows its address. It now also gives your agent a short briefing on how to send you messages and questions there. With the Claude Code plugin, Pi and OpenCode 2, the briefing stays hidden and starts no turn. On OpenCode 2 it goes into the system prompt, so that session's prompt cache misses once.
Smaller changes
- The Inbox no longer starts Grok Build sessions. Old Grok Build threads still read as before, and a reply there waits until the session is back. A leftover
inboxRun.groksetting is ignored. #2308 - The agent's mark is back on the left in two-line and phone rows. #2309
- Images in a Markdown attachment now load when the file links them by a relative path. #2285, for #2228
- Qwen Code is named in wake lines, not "another agent". #2304
Plannotator
Browse the whole repository in code review
The file tree has a Changes | All files switch. All files lists every file at the revision under review and updates as files change on disk. Open any file in a tab, switch a changed file to Whole file, and comment on any line, even outside the diff.
Renamed: the diff choice "All files" is now "Every file" ("Every file (HEAD)" in Git), and the Diff line of exported feedback uses the new name.
Go to File and Go to Definition
⌘P (Ctrl+P) finds any file in the repository. F12 opens a definition in a tab, Shift+F12 lists references, and Back and Forward retrace your steps. The keys match VS Code and are listed in Settings → Shortcuts.
Explain a review agent's finding
A review agent's findings have an Explain button. Ask AI checks the finding against the code, explains it, and suggests a fix when it holds. By @leoreisdias.
DeepSeek Harness support
Plan review opens when a DeepSeek Harness (0.2.1-rc.2 or later) agent leaves plan mode. Add @plannotator/dsh from DSH's Plugins page, or run dsh plugin --profile <profile> add @plannotator/dsh. /plannotator-review, /plannotator-annotate and /plannotator-last work in DSH too. By @Nyarlathoteppppp.
Save plans to Notion
Notion joins Obsidian, Bear and Octarine as a place to save plans. Each save creates a page under a parent page you pick in Settings → Notion. Plannotator reads your token from NOTION_TOKEN and never stores it. By @franktronics.
AsciiDoc files
plannotator annotate opens .adoc and .asciidoc files, and the folder browser and linked documents show them too. By @fabriziosestito.
Jujutsu review defaults
Settings → Git is now Settings → Review, with separate defaults for Git and Jujutsu. A Jujutsu review can open on Current change, Line of work, Last change, Evolution diff or All files. By @graemefolk.
Link to a heading from a comment
Write # and a heading's exact text in a comment, like #3.1 Scope, and it becomes a link that scrolls to that heading. A new opt-in plannotator-markup skill shows agents how to leave comments on a document you are annotating. By @centraldogma99.
Pick the document's font
Settings → Display → Document font sets the font of plan review and annotate documents: a preset or any font on your computer. Code keeps its monospace font. By @ilja.
Faster page loads on a slow link
Plannotator now sends a small page first and loads the rest (syntax highlighting, diagrams, math, fonts) when it is needed. A remote session on a phone opens in seconds instead of minutes. By @giladbarnea.
Smaller changes
- Unsent code review comments survive in local Git reviews after edits, commits, refreshes and restarts. A comment whose lines changed shows as Outdated. By @oorestisime. #1645, closing #1590
- The top of the code review sidebar reads as one line, like
All changes since main, and each word opens its menu. The +/− counts are easier to read in every theme. #1998 - Behind a reverse proxy,
PLANNOTATOR_PUBLIC_URLsets the full address a remote session gives out, for Cloudflare Tunnel, nginx and the like. By @Whamp. #1266 - Keep Plannotator's cookies away from other local apps with
PLANNOTATOR_URL_HOST=plannotator.localhost(or"urlHost"inconfig.json). Nothing changes unless you set it. By @utpalsinghdev. #2188, closing #2184 --tailscalesays plainly when Tailscale Serve is off for your tailnet, with Tailscale's link to turn it on. #2303- OpenCode plugin sessions show in
plannotator sessions. By @TheRealAlexV. #1567 - The OpenCode 2 update command no longer fails with "Plugin is not configured". By @utpalsinghdev. #2277
- Annotate and review feedback starts a turn on an idle oh-my-pi instead of waiting. By @LoneExile. #1423
- Long file and folder names show in full on hover in the annotate file browser. By @MarwanBz. #2236, closing #2195
- The comment box no longer flickers while you type with an IME (Korean, Japanese, Chinese). By @wnduqrla. #2239
- VS Code extension 0.17.0 reads a Guided Review in one Guide tab, with hover, Go to Definition and Ask on selected lines. In its panel, a key the review uses no longer also runs VS Code's command. #2134, #2130, #1964
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: Ask, Add or Hand off from the reply box's tag line (A2) by @backnotprop in #2297
- fix: load local images in Inbox Markdown attachments by @utpalsinghdev in #2285
- fix(opencode): wait for plugins before the OpenCode 2 update command by @utpalsinghdev in #2277
- test(perf): add reproducible plan load benchmark by @corrius in #1198
- Add font and size controls to Annotate by @ilja in #1657
- fix(pi-extension): start a turn for annotate feedback on idle oh-my-pi by @LoneExile in #1423
- feat: support reverse-proxy public URLs by @Whamp in #1266
- feat(opencode-plugin): register embedded sessions for discovery by @TheRealAlexV in #1567
- Inbox: one keyboard system (phase 2) by @backnotprop in #2257
- test(pi): stop network test leaking PLANNOTATOR_BROWSER by @backnotprop in #2302
- fix(review): recover local Git drafts after diff changes by @oorestisime in #1645
- fix(inbox): name Qwen Code in wake lines by @backnotprop in #2304
- CI: fix a mislabeled pin, setup-node v7.1.0, no Renovate Ubuntu runner bumps by @backnotprop in #2300
- fix(ui): show full file-browser names on hover by @MarwanBz in #2236
- test: fix the top CI flakes (dictation paste, Mark read hang, Windows workspace timeout) by @backnotprop in #2301
- feat: add Notion notes integration by @franktronics in #1032
- test(e2e): stop the ref-cards-review code review flake by @backnotprop in #2307
- VS Code Guided Reviews: our guide reader in one tab by @backnotprop in #2134
- VS Code panel: forward only keys the review did not take (explorer step 0) by @backnotprop in #1964
- feat: add DeepSeek Harness (DSH) support by @Nyarlathoteppppp in #2158
- feat: add adoc support by @fabriziosestito in #1009
- fix(tailscale): say plainly when Tailscale Serve is off, with Tailscale's link by @backnotprop in #2303
- Inbox rows: agent mark back on the left of line 2 by @backnotprop in #2309
- fix: support isolated localhost preference cookies by @utpalsinghdev in #2188
- Code review: Changes | All files in the tree (explorer step 1) by @backnotprop in #1966
- CI: parallel Test lanes, sharded Inbox e2e, no duplicate tests in the Release dry run by @backnotprop in #2235
- chore(vscode): release 0.17.0 (Guided Reviews, Ask the agent) by @backnotprop in #2130
- ci: stop the guide viewer manifest from conflicting across PRs by @backnotprop in #2310
- Inbox: Tidy, from the list's and the Board's ⋯ menu by @backnotprop in #2296
- Code review: any file in a tab, Changes | Whole file, comments on any line (explorer step 2) by @backnotprop in #1969
- feat(review): add Jujutsu review defaults by @graemefolk in #1500
- CI: fast tier on every push, heavy tier behind the ci:full label; Deploy on workflow_run by @backnotprop in #2313
- feat(inbox): copy a message, copy a thread by @backnotprop in #2312
- feat(review): explain agent-generated findings with Ask AI by @leoreisdias in #1181
- feat: link
#Headingsection references in annotation text, and a skill that uses them by @centraldogma99 in #1419 - fix(ui): stop the comment composer flickering while typing with an IME by @wnduqrla in #2239
- Code review: Go to File, Go to Definition / References into tabs, Back / Forward, next change (explorer step 3) by @backnotprop in #1976
- Inbox: remove the Grok Build runner until Launch agents settles its approach by @backnotprop in #2308
- /plannotator-inbox: brief the agent on using the Inbox by @backnotprop in #2311
- feat(inbox): name attached files at the end of a copied message by @backnotprop in #2314
- Code review: the sidebar's top reads as one sentence (approved review-sidebar-header) by @backnotprop in #1998
- perf(app): serve the lazy chunks from the single-file bundles instead of inlining them (12x improvement) by @giladbarnea in #1618
New Contributors
- @fabriziosestito made their first contribution in #1009
- @corrius made their first contribution in #1198
- @LoneExile made their first contribution in #1423
- @TheRealAlexV made their first contribution in #1567
- @ilja made their first contribution in #1657
- @Nyarlathoteppppp made their first contribution in #2158
- @MarwanBz made their first contribution in #2236
- @wnduqrla made their first contribution in #2239
- @giladbarnea made their first contribution in #1618
Community
- @Nyarlathoteppppp: DeepSeek Harness support in #2158
- @NourEldin-Osama: asked for DeepSeek Harness support in #1432
- @franktronics: the Notion integration in #1032
- @kurtextrem: asked for Notion in #434, with @ajsharma in the discussion
- @fabriziosestito: AsciiDoc support in #1009
- @leoreisdias: Explain on review agent findings in #1181
- @graemefolk: Jujutsu review defaults in #1500, on the provider refactor in #1499
- @centraldogma99: heading links in comments and the
plannotator-markupskill in #1419 - @ilja: the document font setting in #1657
- @oorestisime: draft recovery for local Git reviews in #1645
- @RobertoArtiles: reported in #1590 that unsent review comments were lost when the diff changed
- @Whamp:
PLANNOTATOR_PUBLIC_URLfor reverse proxies in #1266 - @utpalsinghdev: separate local cookies in #2188, the OpenCode 2 update command in #2277, and Inbox attachment images in #2285
- @PassionZale: reported in #2184 that Plannotator's cookies reached every app on localhost
- @zane668: reported in #2228 that images in Inbox Markdown attachments did not load
- @Duo-Huang: reported the
submit_planmissing-edits error in #2227, which #2277 now tests - @TheRealAlexV: OpenCode plugin sessions in
plannotator sessionsin #1567, part of #899 - @LoneExile: the idle oh-my-pi fix in #1423
- @MarwanBz: reported and fixed cut-off file names in #2195 and #2236
- @wnduqrla: the IME flicker fix in #2239
- @corrius: a repeatable plan load benchmark in #1198
- @ZBQtesla: reported the slow plan page load in #926, which that benchmark measures
- @giladbarnea: reported slow remote loads on a phone in #1617 and fixed them in #1618
Full Changelog: v0.28.36...v0.28.37