Releases: backnotprop/plannotator
v0.8.5
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.8.2 | BROWSER env var fix for macOS and WSL devcontainers |
| v0.8.1 | Devcontainer BROWSER fallback, mermaid clipping fix, annotation toolbar focus guard |
| v0.8.0 | Open source (MIT/Apache-2.0), annotate command, self-hosted share portal, resizable panels, mermaid controls, auto-close on approval, documentation site |
| v0.7.0 | TOC sidebar, sticky actions, save to notes without approving, import teammate reviews, viewed file tracking |
| v0.6.8 | Mermaid diagram rendering, repo/branch info display |
| v0.6.7 | Quick Comment mode, type-to-comment shortcut, smart agent detection |
| v0.6.6 | OpenCode sub-agent fix, CVE-2026-22812 security update |
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
What's New in v0.8.5
This release adds Pi coding agent support, a configurable auto-close countdown, and a security fix for the image serving endpoint. It also fixes a packaging regression in v0.8.3 where the @plannotator/opencode npm package shipped with an unresolvable workspace:* dependency.
Pi Coding Agent Support
Plannotator's third platform integration. Pi is a coding agent by Mario Zechner that supports extensions via its plugin API, and Plannotator now ships a first-class extension for it.
The Pi extension introduces a file-based plan mode where the agent writes plans to a PLAN.md file on disk — git-trackable and visible in your editor at all times. When the agent calls exit_plan_mode, the browser-based review UI opens for you to annotate, approve, or deny the plan, just like on Claude Code and OpenCode.
What's included:
- Plan review with the full annotation UI — text selection, comments, deletions, replacements, image attachments
- Code review via
/plannotator-review— opens git diffs in the review editor - Markdown annotation via
/plannotator-annotate <file.md>— annotate any markdown file - Bash safety gating — during planning, the agent is restricted to read-only commands. Destructive operations like
rm,mv,git push, andnpm installare blocked until you approve the plan - Progress tracking — a status line widget shows checklist completion as the agent executes (
3/5), with live strikethrough on completed items - State persistence — the current phase (idle, planning, executing) survives session restarts via Pi's entry API
Ctrl+Alt+Pkeyboard shortcut and/plannotatorcommand to toggle plan mode
The extension uses Node.js HTTP servers instead of Bun.serve(), since Pi loads extensions via jiti.
pi install npm:@plannotator/pi-extension
pi --plan # Start a session in plan mode(#168)
Auto-Close Countdown
The auto-close behavior introduced in v0.8.0 now supports a configurable delay. Instead of a binary on/off toggle, you can choose from four options: Off (default), Immediately, After 3 seconds, or After 5 seconds. When a delay is set, the completion overlay shows a live countdown before the tab closes.
More importantly, the feature is now discoverable. When auto-close is off, the completion overlay surfaces an opt-in checkbox — right at the moment you'd benefit from it most. One click enables it with a 3-second default, and you can fine-tune the delay in Settings whenever you like.
The implementation also handles browser restrictions gracefully. Since window.close() only works on tabs opened by script (and Plannotator opens via OS commands), a failed close now shows a friendly fallback message instead of silently doing nothing.
Under the hood, the duplicated completion overlay code from both the plan editor and review editor has been extracted into a shared CompletionOverlay component with a useAutoClose hook, cleaning up both apps.
- Thanks to @flex-yj-kim for the contribution (#162)
Image Endpoint Security Fix
The /api/image endpoint in all three servers (plan, review, annotate) previously served files from the local filesystem based on a user-provided path query parameter with no validation. Since the HTTP server runs on localhost without authentication, any process or browser tab could read arbitrary files — including SSH keys, AWS credentials, and other sensitive data. The server's 4-day hook timeout made the exposure window particularly wide.
This is now locked down with a shared validation module applied across all three servers:
-
Image extension allowlist — only known image formats are served (
png,jpg,gif,webp,svg, and others) -
Path normalization —
path.resolve()eliminates../traversal sequences -
Upload validation — the
/api/uploadendpoint now enforces the same allowlist -
Thanks to @dor-tzur-lmnd for identifying and fixing this vulnerability (#164)
OpenCode Package Fix
The @plannotator/opencode npm package in v0.8.3 included @plannotator/server as a runtime dependency using workspace:*, which is unresolvable outside the monorepo and caused install failures for all consumers. The dependency has been moved to devDependencies — the build already bundles it into dist/index.js, so consumers never need to resolve it at install time.
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}Pi: Install or update the extension:
pi install npm:@plannotator/pi-extensionWhat's Changed
- fix(server): prevent arbitrary file read via /api/image endpoint by @dor-tzur-lmnd in #164
- feat: Add auto-close countdown delay to completion overlay by @flex-yj-kim in #162
- feat: add Pi coding agent extension by @backnotprop in #168
- fix(opencode): move @plannotator/server to devDependencies to fix npm install by @rcdailey in #169
New Contributors
- @dor-tzur-lmnd made their first contribution in #164
Full Changelog: v0.8.2...v0.8.5
v0.8.4
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.8.3 | Pi coding agent support, auto-close countdown, image endpoint security fix |
| v0.8.2 | BROWSER env var fix for macOS and WSL devcontainers |
| v0.8.1 | Devcontainer BROWSER fallback, mermaid clipping fix, annotation toolbar focus guard |
| v0.8.0 | Open source (MIT/Apache-2.0), annotate command, self-hosted share portal, resizable panels, mermaid controls, auto-close on approval, documentation site |
| v0.7.0 | TOC sidebar, sticky actions, save to notes without approving, import teammate reviews, viewed file tracking |
| v0.6.8 | Mermaid diagram rendering, repo/branch info display |
| v0.6.7 | Quick Comment mode, type-to-comment shortcut, smart agent detection |
| v0.6.6 | OpenCode sub-agent fix, CVE-2026-22812 security update |
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
What's New in v0.8.4
This is a patch release for v0.8.3. The @plannotator/opencode npm package in v0.8.3 shipped with a workspace:* dependency on @plannotator/server, which caused install failures for all consumers. The dependency has been moved to devDependencies — this is safe because the build already bundles it into dist/index.js. All features below were introduced in v0.8.3.
Pi Coding Agent Support
Plannotator's third platform integration. Pi is a coding agent by Mario Zechner that supports extensions via its plugin API, and Plannotator now ships a first-class extension for it.
The Pi extension introduces a file-based plan mode where the agent writes plans to a PLAN.md file on disk — git-trackable and visible in your editor at all times. When the agent calls exit_plan_mode, the browser-based review UI opens for you to annotate, approve, or deny the plan, just like on Claude Code and OpenCode.
What's included:
- Plan review with the full annotation UI — text selection, comments, deletions, replacements, image attachments
- Code review via
/plannotator-review— opens git diffs in the review editor - Markdown annotation via
/plannotator-annotate <file.md>— annotate any markdown file - Bash safety gating — during planning, the agent is restricted to read-only commands. Destructive operations like
rm,mv,git push, andnpm installare blocked until you approve the plan - Progress tracking — a status line widget shows checklist completion as the agent executes (
3/5), with live strikethrough on completed items - State persistence — the current phase (idle, planning, executing) survives session restarts via Pi's entry API
Ctrl+Alt+Pkeyboard shortcut and/plannotatorcommand to toggle plan mode
The extension uses Node.js HTTP servers instead of Bun.serve(), since Pi loads extensions via jiti. Install from npm once published, or from git today:
pi install npm:@plannotator/pi-extension
pi --plan # Start a session in plan mode(#168)
Auto-Close Countdown
The auto-close behavior introduced in v0.8.0 now supports a configurable delay. Instead of a binary on/off toggle, you can choose from four options: Off (default), Immediately, After 3 seconds, or After 5 seconds. When a delay is set, the completion overlay shows a live countdown before the tab closes.
More importantly, the feature is now discoverable. When auto-close is off, the completion overlay surfaces an opt-in checkbox — right at the moment you'd benefit from it most. One click enables it with a 3-second default, and you can fine-tune the delay in Settings whenever you like.
The implementation also handles browser restrictions gracefully. Since window.close() only works on tabs opened by script (and Plannotator opens via OS commands), a failed close now shows a friendly fallback message instead of silently doing nothing.
Under the hood, the duplicated completion overlay code from both the plan editor and review editor has been extracted into a shared CompletionOverlay component with a useAutoClose hook, cleaning up both apps.
- Thanks to @flex-yj-kim for the contribution (#162)
Image Endpoint Security Fix
The /api/image endpoint in all three servers (plan, review, annotate) previously served files from the local filesystem based on a user-provided path query parameter with no validation. Since the HTTP server runs on localhost without authentication, any process or browser tab could read arbitrary files — including SSH keys, AWS credentials, and other sensitive data. The server's 4-day hook timeout made the exposure window particularly wide.
This is now locked down with a shared validation module applied across all three servers:
-
Image extension allowlist — only known image formats are served (
png,jpg,gif,webp,svg, and others) -
Path normalization —
path.resolve()eliminates../traversal sequences -
Upload validation — the
/api/uploadendpoint now enforces the same allowlist -
Thanks to @dor-tzur-lmnd for identifying and fixing this vulnerability (#164)
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}Pi: Install or update the extension:
pi install npm:@plannotator/pi-extensionWhat's Changed
- fix(opencode): move @plannotator/server to devDependencies to fix npm install (#169)
- fix(server): prevent arbitrary file read via /api/image endpoint by @dor-tzur-lmnd in #164
- feat: Add auto-close countdown delay to completion overlay by @flex-yj-kim in #162
- feat: add Pi coding agent extension by @backnotprop in #168
New Contributors
- @dor-tzur-lmnd made their first contribution in #164
Full Changelog: v0.8.2...v0.8.4
v0.8.3
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.8.2 | BROWSER env var fix for macOS and WSL devcontainers |
| v0.8.1 | Devcontainer BROWSER fallback, mermaid clipping fix, annotation toolbar focus guard |
| v0.8.0 | Open source (MIT/Apache-2.0), annotate command, self-hosted share portal, resizable panels, mermaid controls, auto-close on approval, documentation site |
| v0.7.0 | TOC sidebar, sticky actions, save to notes without approving, import teammate reviews, viewed file tracking |
| v0.6.8 | Mermaid diagram rendering, repo/branch info display |
| v0.6.7 | Quick Comment mode, type-to-comment shortcut, smart agent detection |
| v0.6.6 | OpenCode sub-agent fix, CVE-2026-22812 security update |
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
What's New in v0.8.3
Plannotator now supports a third coding agent. Pi users get full plan review, code review, and markdown annotation — the same browser-based workflow available on Claude Code and OpenCode, adapted for Pi's extension API. This release also brings a configurable auto-close countdown and a security hardening fix for the image serving endpoint.
Pi Coding Agent Support
Plannotator's third platform integration. Pi is a coding agent by Mario Zechner that supports extensions via its plugin API, and Plannotator now ships a first-class extension for it.
The Pi extension introduces a file-based plan mode where the agent writes plans to a PLAN.md file on disk — git-trackable and visible in your editor at all times. When the agent calls exit_plan_mode, the browser-based review UI opens for you to annotate, approve, or deny the plan, just like on Claude Code and OpenCode.
What's included:
- Plan review with the full annotation UI — text selection, comments, deletions, replacements, image attachments
- Code review via
/plannotator-review— opens git diffs in the review editor - Markdown annotation via
/plannotator-annotate <file.md>— annotate any markdown file - Bash safety gating — during planning, the agent is restricted to read-only commands. Destructive operations like
rm,mv,git push, andnpm installare blocked until you approve the plan - Progress tracking — a status line widget shows checklist completion as the agent executes (
3/5), with live strikethrough on completed items - State persistence — the current phase (idle, planning, executing) survives session restarts via Pi's entry API
Ctrl+Alt+Pkeyboard shortcut and/plannotatorcommand to toggle plan mode
The extension uses Node.js HTTP servers instead of Bun.serve(), since Pi loads extensions via jiti. Install from npm once published, or from git today:
pi install npm:@plannotator/pi-extension
pi --plan # Start a session in plan mode(#168)
Auto-Close Countdown
The auto-close behavior introduced in v0.8.0 now supports a configurable delay. Instead of a binary on/off toggle, you can choose from four options: Off (default), Immediately, After 3 seconds, or After 5 seconds. When a delay is set, the completion overlay shows a live countdown before the tab closes.
More importantly, the feature is now discoverable. When auto-close is off, the completion overlay surfaces an opt-in checkbox — right at the moment you'd benefit from it most. One click enables it with a 3-second default, and you can fine-tune the delay in Settings whenever you like.
The implementation also handles browser restrictions gracefully. Since window.close() only works on tabs opened by script (and Plannotator opens via OS commands), a failed close now shows a friendly fallback message instead of silently doing nothing.
Under the hood, the duplicated completion overlay code from both the plan editor and review editor has been extracted into a shared CompletionOverlay component with a useAutoClose hook, cleaning up both apps.
- Thanks to @flex-yj-kim for the contribution (#162)
Image Endpoint Security Fix
The /api/image endpoint in all three servers (plan, review, annotate) previously served files from the local filesystem based on a user-provided path query parameter with no validation. Since the HTTP server runs on localhost without authentication, any process or browser tab could read arbitrary files — including SSH keys, AWS credentials, and other sensitive data. The server's 4-day hook timeout made the exposure window particularly wide.
This is now locked down with a shared validation module applied across all three servers:
-
Image extension allowlist — only known image formats are served (
png,jpg,gif,webp,svg, and others) -
Path normalization —
path.resolve()eliminates../traversal sequences -
Upload validation — the
/api/uploadendpoint now enforces the same allowlist -
Thanks to @dor-tzur-lmnd for identifying and fixing this vulnerability (#164)
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}Pi: Install or update the extension:
pi install npm:@plannotator/pi-extensionWhat's Changed
- fix(server): prevent arbitrary file read via /api/image endpoint by @dor-tzur-lmnd in #164
- feat: Add auto-close countdown delay to completion overlay by @flex-yj-kim in #162
- feat: add Pi coding agent extension by @backnotprop in #168
New Contributors
- @dor-tzur-lmnd made their first contribution in #164
Full Changelog: v0.8.2...v0.8.3
v0.8.2
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.8.1 | Devcontainer BROWSER fallback, mermaid clipping fix, annotation toolbar focus guard |
| v0.8.0 | Open source (MIT/Apache-2.0), annotate command, self-hosted share portal, resizable panels, mermaid controls, auto-close on approval, documentation site |
| v0.7.0 | TOC sidebar, sticky actions, save to notes without approving, import teammate reviews, viewed file tracking |
| v0.6.8 | Mermaid diagram rendering, repo/branch info display |
| v0.6.7 | Quick Comment mode, type-to-comment shortcut, smart agent detection |
| v0.6.6 | OpenCode sub-agent fix, CVE-2026-22812 security update |
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
What's New in v0.8.2
A targeted fix for the BROWSER environment variable handling introduced in v0.8.1. The devcontainer browser-opening feature now works correctly on macOS and WSL.
BROWSER Environment Variable Fix
v0.8.1 added support for the standard BROWSER environment variable so devcontainer users get automatic browser opening without any Plannotator-specific configuration. However, the implementation treated BROWSER the same as PLANNOTATOR_BROWSER across all platforms — which broke on macOS (where open -a expects an application name, not a script path) and WSL (where cmd.exe /c start can't execute Linux paths).
PLANNOTATOR_BROWSER and BROWSER now have distinct semantics. PLANNOTATOR_BROWSER is a platform-native application reference: an app name for open -a on macOS, a Windows executable for cmd.exe /c start on WSL. BROWSER is always executed directly as $BROWSER <url>, matching the Unix convention that VS Code and other tools expect.
- Thanks to @rerorero for the fix (#163)
- Original feature request by @siomporas (#119)
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}What's Changed
New Contributors
Full Changelog: v0.8.1...v0.8.2
v0.8.1
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.8.0 | Open source (MIT/Apache-2.0), annotate command, self-hosted share portal, resizable panels, mermaid controls, auto-close on approval, documentation site |
| v0.7.0 | TOC sidebar, sticky actions, save to notes without approving, import teammate reviews, viewed file tracking |
| v0.6.8 | Mermaid diagram rendering, repo/branch info display |
| v0.6.7 | Quick Comment mode, type-to-comment shortcut, smart agent detection |
| v0.6.6 | OpenCode sub-agent fix, CVE-2026-22812 security update |
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
What's New in v0.8.1
A focused patch release: devcontainer users get automatic browser opening out of the box, mermaid diagrams render at full size, and the annotation toolbar no longer hijacks keystrokes from other inputs.
Devcontainer Browser Detection
Plannotator now respects the standard BROWSER environment variable as a fallback when PLANNOTATOR_BROWSER is not set. VS Code automatically sets BROWSER in devcontainers to a helper script that opens URLs on your local machine — so the plan review UI opens automatically with zero Plannotator-specific configuration. No more manually setting PLANNOTATOR_REMOTE=1 and forwarding ports just to use Plannotator inside a devcontainer.
The fallback chain is: PLANNOTATOR_BROWSER (explicit override) > BROWSER (standard convention) > system default (open / xdg-open / cmd.exe).
- Thanks to @siomporas for requesting this (#119)
Mermaid Diagram Clipping Fix
Mermaid diagrams that exceeded their container were being clipped due to fixed SVG width/height attributes and an inline max-width constraint. Diagrams now render at full size within the container while preserving zoom and pan controls from v0.8.0.
Annotation Toolbar Focus Fix
The type-to-comment shortcut — where you start typing in the toolbar's menu step to auto-transition into a comment — was capturing keystrokes globally. If you clicked the global comment textarea (or any other input) while the toolbar was open, your keystrokes would get swallowed by the toolbar instead of reaching the input you were typing in. The toolbar now checks whether the active element is an input, textarea, select, or contenteditable before intercepting keys. Also adds IME composition safety for international keyboard input.
- Thanks to @blue-poolyum for the fix (#157)
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}What's Changed
- feat: use BROWSER env var as fallback for opening UI by @backnotprop in #153
- fix: mermaid diagrams clipped due to fixed SVG dimensions by @j-token in #156
- fix(ui): prevent annotation toolbar from stealing global comment focus by @blue-poolyum in #157
New Contributors
- @blue-poolyum made their first contribution in #157
Full Changelog: v0.8.0...v0.8.1
v0.8.0
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.7.0 | TOC sidebar, sticky actions, save to notes without approving, import teammate reviews, viewed file tracking |
| v0.6.8 | Mermaid diagram rendering, repo/branch info display |
| v0.6.7 | Quick Comment mode, type-to-comment shortcut, smart agent detection |
| v0.6.6 | OpenCode sub-agent fix, CVE-2026-22812 security update |
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
What's New in v0.8.0
Plannotator is now fully open source under MIT/Apache-2.0. This release adds a new annotate command for reviewing any markdown file, a self-hosted share portal option, resizable panels, mermaid diagram controls, auto-close on approval, and a full documentation site at plannotator.ai.
Open Source — MIT / Apache-2.0
Plannotator is now dual-licensed under MIT and Apache-2.0, replacing the previous BSL-1.1 license. Use it however you want — no restrictions, no time-delayed open source. (#144)
Annotate Any Markdown File
A new /plannotator-annotate <file.md> slash command opens any markdown file in the annotation UI. Useful for reviewing specs, ADRs, or any document that lives alongside your code. Combined with named image references — attach images to annotations and reference them by name (e.g., "login-mockup") so the agent knows exactly what you're pointing at.
- Thanks to @theflysurfer for requesting the annotate command (#109), with input from @deviantony, @ChrisEdwards, and @arieh
- Thanks to @luketych for requesting named image references (#67)
Self-Hosted Share Portal
Set PLANNOTATOR_SHARE_URL to point share links at your own instance of the share portal instead of share.plannotator.ai. Build the portal with bun run build:portal and deploy it anywhere — S3, Nginx, Vercel, Cloudflare Pages. All data still lives in the URL hash; the portal is a static page.
Resizable Side Panels
The annotation sidebar and TOC panels can now be resized by dragging. Panel widths persist across sessions.
- Thanks to @flex-yj-kim for the contribution (#141)
Mermaid Diagram Controls
Mermaid diagrams now support zoom, pan, and drag — making large or complex diagrams navigable without squinting. Built on the rendering support added in v0.6.8.
- Thanks to @j-token for the contribution (#134)
- Thanks to @poor-defined for reporting the display issue (#125)
Auto-Close Tab on Approval
The browser tab now closes automatically after you approve a plan. One fewer thing to manage when you're deep in a review cycle. Configurable in Settings.
- Thanks to @senxd for the contribution (#128)
- Thanks to @jellydn for the feature request (#41), with input from @ovitrif and @thoroc
Quality of Life
- ESC closes annotation toolbar — dismiss the toolbar without clicking away. Thanks to @flex-yj-kim (#149)
CLAUDE_CONFIG_DIRhonored in install scripts — custom Claude config directories are now respected during installation. Thanks to @daFish for reporting (#136)
Documentation Site
plannotator.ai now has full documentation and a blog. Installation guides for Claude Code, OpenCode, and remote/devcontainer setups. Reference pages for environment variables, keyboard shortcuts, and API endpoints. Guides for sharing, Obsidian integration, and self-hosting. Built with Astro 5 — static HTML, fast, searchable. (#150)
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}What's Changed
- feat: add zoom, pan, and drag controls to mermaid diagrams by @j-token in #134
- fix: honor CLAUDE_CONFIG_DIR in install scripts by @backnotprop in #137
- Add the ability to auto close the tab on approval by @senxd in #128
- feat: add resizable side panels by @flex-yj-kim in #141
- chore: relicense from BSL-1.1 to dual MIT/Apache-2.0 by @backnotprop in #144
- feat: add configurable share URL for self-hosted portals by @backnotprop in #146
- feat: named image references and annotate command by @backnotprop in #147
- feat: close annotation toolbar on ESC key press by @flex-yj-kim in #149
- feat: migrate marketing site to Astro with docs and blog by @backnotprop in #150
New Contributors
- @j-token made their first contribution in #134
- @senxd made their first contribution in #128
- @flex-yj-kim made their first contribution in #141
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.6.8 | Mermaid diagram rendering, repo/branch info display |
| v0.6.7 | Quick Comment mode, type-to-comment shortcut, smart agent detection |
| v0.6.6 | OpenCode sub-agent fix, CVE-2026-22812 security update |
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
| v0.6.1 | Obsidian custom paths, disable sharing config |
| v0.6.0 | Permission mode support, inline annotation editing, code review |
What's New in v0.7.0
Table of Contents & Sticky Actions
A new sidebar for navigating larger plans, plus sticky action buttons that stay visible while scrolling:
-
Table of Contents — collapsible sidebar showing H2–H5 headings with click-to-scroll navigation
-
Active section tracking — highlights the current section as you scroll
-
Sticky action buttons — Images, Global Comment, and Copy Plan stay pinned while scrolling
-
First-run setup dialog — new and existing users see a one-time prompt to enable/disable these features (configurable later in Settings)
Save to Notes Without Approving
Obsidian and Bear note saving is now decoupled from plan approval — save your plans whenever you want:
-
Notes tab in the Export dialog with per-integration save buttons
-
Quick actions dropdown on the Export button — Copy Share Link, Download Diff, Save to Obsidian/Bear
-
Cmd/Ctrl+S keyboard shortcut for saving to your configured default
-
Default Save Action setting in Settings > Saving
-
Thanks to @bman654 for the feature request and @jasonkuhrt for the original issue (#127)
Import Teammate Review
Sharing is now bidirectional. Import annotations from a teammate's share link directly into your current review session:
-
Import Review option in the Export dropdown menu
-
Paste a teammate's share URL to load their annotations
-
Automatic deduplication — skips annotations that already exist
-
Merges imported annotations alongside your own
Persist Editor Mode
Your preferred editor mode (Selection, Comment, or Redline) now persists between plan reviews — no more re-selecting each time.
Code Review: Viewed File Tracking
GitHub-style "viewed" tracking for code reviews:
-
Checkbox on each file to mark it as reviewed
-
Progress indicator in the file tree (e.g., "3/10 viewed")
-
Toggle to hide viewed files for focused review
-
Thanks to @blue-poolyum for the contribution (#130)
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}What's Changed
- feat: persist editor mode selection between plan reviews by @rcdailey in #126
- feat: add GitHub-style viewed file tracking to code review by @blue-poolyum in #130
- feat: TOC sidebar, sticky actions, and UI improvements by @thoroc in #122
- feat: save to notes without approving by @backnotprop in #132
- feat: UI features setup dialog for TOC and sticky actions by @backnotprop in #133
- feat: import teammate review from share link by @razbenya in #131
Full Changelog: v0.6.8...v0.7.0
v0.6.8
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.6.7 | Quick Comment mode, type-to-comment shortcut, smart agent detection |
| v0.6.6 | OpenCode sub-agent fix, CVE-2026-22812 security update |
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
| v0.6.1 | Obsidian custom paths, disable sharing config |
What's New in v0.6.8
Mermaid Diagram Rendering
Plans with mermaid code blocks can now be rendered as interactive diagrams. Toggle between source and rendered view on hover.
Repository Info Display
Plans now show the current repository and branch in the upper-left corner:
-
Displays
org/repoformat (parsed from git remote) -
Shows current branch with git icon
-
Fallback chain: git remote → repo root name → directory name
-
Subtle badge styling that doesn't clutter the UI
OpenCode: Improved Sub-Agent Filtering
Refined the sub-agent exclusion logic for prompt injection:
-
Now excludes the "build" agent in addition to sub-agents
-
Uses dynamic API check for sub-agent detection
-
Safer fallback behavior on detection failure
-
Thanks to @metaphorics for the contribution (#98)
Windows Install Fix
Cleaned up old installation locations to prevent PATH conflicts:
- Removes stale binaries from
~/.local/binbefore installing - Fixes issues where old installs took precedence over new ones
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}What's Changed
- fix(opencode-plugin): exclude sub-agents and build agent from prompt injection by @metaphorics in #98
- fix: clean up old Windows install locations by @backnotprop in #101
- feat: add mermaid.js diagram rendering support by @backnotprop in #116
- feat: display repo and branch info in plan document by @backnotprop in #117
Full Changelog: v0.6.7...v0.6.8
v0.6.7
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.6.6 | OpenCode sub-agent fix, CVE-2026-22812 security update |
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
| v0.6.1 | Obsidian custom paths, disable sharing config |
| v0.6.0 | Permission mode support, inline annotation editing |
What's New in v0.6.7
Quick Comment Mode
A faster way to add comments. Two new features for quick annotation:
- Comment Mode - New editor mode where selecting text immediately shows the comment input (no toolbar menu)
- Type-to-Comment - In Selection mode, just start typing after selecting text to create a comment
start_to_comment.mov
OpenCode: Smart Agent Detection
The agent switcher now queries OpenCode for available agents instead of using a hardcoded list:
- Shows warning banner when saved agent doesn't exist in your OpenCode config
- Dynamic dropdown populated with your actual agents
- Fallback to hardcoded options when API unavailable
OpenCode: Primary Tools Fix
Improved sub-agent blocking using OpenCode's native mechanism:
- Uses
experimental.primary_toolsconfig (the intended approach) - Properly hides
submit_planfrom ALL sub-agents (including custom ones) - Fixes v0.6.6 message persistence bug
Thanks to @metaphorics for the detailed analysis (#86), and tarquin_dan and spoons.420 from Discord for testing and feedback.
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}What's Changed
- fix: use primary_tools config for sub-agent blocking by @backnotprop in #95
- fix: smart detection for agent switching in OpenCode by @backnotprop in #96
- feat: add Comment mode and type-to-comment shortcut by @backnotprop in #97
Full Changelog: v0.6.6...v0.6.7
v0.6.6
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.6.5 | Cmd+C shortcut, newline preservation, hook timeout fix |
| v0.6.4 | Cmd+Enter keyboard shortcut |
| v0.6.3 | OpenCode npm package fix, cache path fix |
| v0.6.2 | OpenCode title generation fix, WSL browser detection |
| v0.6.1 | Obsidian custom paths, disable sharing config |
| v0.6.0 | Permission mode support, inline annotation editing |
What's New in v0.6.6
OpenCode: Sub-Agent Fix
Sub-agents ("general", "explore") were incorrectly triggering plannotator during autonomous tasks. Fixed by:
- Targeted prompt injection - Planning instructions now only inject for the
planagent, not sub-agents - Runtime blocking - Sub-agents are blocked from calling
submit_planwith a helpful message
| Agent | Sees instruction? | Can use tool? |
|---|---|---|
| plan | ✅ Yes | ✅ Yes |
| build | ❌ No | ✅ Yes |
| general | ❌ No | ❌ Blocked |
| explore | ❌ No | ❌ Blocked |
- Thanks to @kanlanc for the original report (#15)
- Thanks to @metaphorics for the detailed analysis (#86)
OpenCode: Security Update (CVE-2026-22812)
Bumped @opencode-ai/plugin dependency to >=1.1.10 to address a critical RCE vulnerability in OpenCode versions < 1.1.10.
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}What's Changed
- fix: OpenCode plugin updates (CVE + sub-agent fix) by @backnotprop in #90
Full Changelog: v0.6.5...v0.6.6