Releases: backnotprop/plannotator
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
v0.6.5
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| 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.5
Cmd+C Keyboard Shortcut & Newline Preservation
Copy selected plan text with Cmd+C (Ctrl+C on Windows/Linux). Text is now properly captured before DOM modification, so newlines between paragraphs are preserved when pasting into external apps like Slack or your terminal.
Also fixed: Cmd+C no longer intercepts copy operations when you're focused in an input field (like annotation comments).
We forked the upstream web-highlighter library to @plannotator/web-highlighter to properly capture selection text before DOM modification and enable better copy/selection behavior.
Extended Hook Timeout
Increased the hook timeout from 30 minutes to 4 days. The browser UI will no longer become unresponsive after leaving a plan open for extended periods.
To get this fix: Update the Claude Code plugin by running /plugin, find plannotator, and click "Update now". The new timeout is configured in the plugin's hooks.json.
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: Add to opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}What's Changed
- fix: preserve newlines in copy and add Cmd+C shortcut by @backnotprop in #87
- fix: increase hook timeout to 4 days by @backnotprop in #88
Full Changelog: v0.6.4...v0.6.5
v0.6.4
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| 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.4
Cmd+Enter Keyboard Shortcut
Quickly submit your review with Cmd+Enter (Ctrl+Enter on Windows/Linux):
- No annotations → Approve (proceed with implementation)
- With annotations → Send Feedback (request revision)
Works in both plan review and code review UIs. Respects input focus so Cmd+Enter to save annotation edits still works as expected.
Install
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexOpenCode: Also add to opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}What's Changed
- feat: add Cmd+Enter keyboard shortcut to submit by @backnotprop in #81
Full Changelog: v0.6.3...v0.6.4
v0.6.3
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.6.1 | Obsidian custom paths, disable sharing config |
| v0.6.0 | Permission mode support, inline annotation editing |
| v0.5.7 | Agent auto-responds to code review feedback |
What's New in v0.6.3
OpenCode: Fix Missing HTML Files in npm Package
The OpenCode plugin's package.json was missing plannotator.html and review-editor.html from the files array, causing them to be omitted from npm publishes. This is why users were stuck on old versions even after updating.
If you're on an old version, clear the cache and reinstall:
# macOS/Linux
rm -rf ~/.bun/install/cache/@plannotator
# Windows
Remove-Item -Recurse -Force "$env:USERPROFILE\.bun\install\cache\@plannotator"Then restart OpenCode to pull the latest.
Also in this release (from v0.6.2)
OpenCode: Fix Title Generation Prompt Injection
OpenCode's title generation was incorrectly receiving the Plan Submission system prompt, causing unexpected behavior. This fix skips the prompt transformation for title generation requests.
- Thanks to @stranger2904 for the fix (#78)
WSL Browser Detection
Plannotator now correctly detects WSL environments and opens the browser on the Windows host instead of failing silently.
Install
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexOpenCode: Also add to opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}v0.6.2
Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.6.1 | Obsidian custom paths, disable sharing config |
| v0.6.0 | Permission mode support, inline annotation editing |
| v0.5.7 | Agent auto-responds to code review feedback |
| v0.5.6 | Agent switch fix |
| v0.5.5 | Version display fix |
| v0.5.4 | Windows support, win32 platform fix |
What's New in v0.6.2
OpenCode: Fix Title Generation Prompt Injection
OpenCode's title generation was incorrectly receiving the Plan Submission system prompt, causing unexpected behavior. This fix skips the prompt transformation for title generation requests.
Obsidian: Custom Folder Paths
Thanks to @luketych for the feature request!
Save plans to any folder, not just registered Obsidian vaults.
When vaults are detected, select "Custom path..." from the dropdown to enter any directory. Plans still get frontmatter and backlinks—perfect for users who want Obsidian-style markdown without a formal vault setup.
Disable URL Sharing
Deployments requiring privacy can now disable the sharing feature entirely.
Claude Code:
export PLANNOTATOR_SHARE=disabledOpenCode (opencode.json):
{
"share": "disabled"
}When disabled, the Quick Share button and Share tab are hidden from the UI.
WSL Browser Detection
Plannotator now correctly detects WSL environments and opens the browser on the Windows host instead of failing silently.
Thanks
- @stranger2904 — OpenCode title generation fix (#78), XDG environment variables fix (#73)
- @luketych — Obsidian custom path feature request (#68)
- @0rdep — WSL browser detection (#74)
Install
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexOpenCode: Also add to opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}