Skip to content

Releases: backnotprop/plannotator

v0.8.1

17 Feb 15:52

Choose a tag to compare

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).

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.


Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@plannotator

Then 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

Full Changelog: v0.8.0...v0.8.1

v0.8.0

13 Feb 22:07

Choose a tag to compare

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.

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.

  • Thanks to @ffmmjj for the original feature request (#12)

Resizable Side Panels

The annotation sidebar and TOC panels can now be resized by dragging. Panel widths persist across sessions.

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.

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.

Quality of Life

  • ESC closes annotation toolbar — dismiss the toolbar without clicking away. Thanks to @flex-yj-kim (#149)
  • CLAUDE_CONFIG_DIR honored 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 | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@plannotator

Then in opencode.json:

{
  "plugin": ["@plannotator/opencode@latest"]
}

What's Changed

New Contributors

Full Changelog: v0.7.0...v0.8.0

v0.7.0

09 Feb 20:48

Choose a tag to compare

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)

  • Thanks to @thoroc for the contribution (#122)

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

  • Thanks to @razbenya for the contribution (#131)

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 | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@plannotator

Then 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

29 Jan 16:45

Choose a tag to compare

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/repo format (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

  • Thanks to @ovitrif for the feature request (#104)

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/bin before installing
  • Fixes issues where old installs took precedence over new ones

Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@plannotator

Then 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

19 Jan 20:13

Choose a tag to compare

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:

  1. Comment Mode - New editor mode where selecting text immediately shows the comment input (no toolbar menu)
  2. 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_tools config (the intended approach)
  • Properly hides submit_plan from 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 | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@plannotator

Then 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

18 Jan 17:16

Choose a tag to compare

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:

  1. Targeted prompt injection - Planning instructions now only inject for the plan agent, not sub-agents
  2. Runtime blocking - Sub-agents are blocked from calling submit_plan with a helpful message
Agent Sees instruction? Can use tool?
plan ✅ Yes ✅ Yes
build ❌ No ✅ Yes
general ❌ No ❌ Blocked
explore ❌ No ❌ Blocked

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 | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@plannotator

Then 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

17 Jan 22:45

Choose a tag to compare

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 | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude 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

Full Changelog: v0.6.4...v0.6.5

v0.6.4

16 Jan 04:56

Choose a tag to compare

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 | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

OpenCode: Also add to opencode.json:

{
  "plugin": ["@plannotator/opencode@latest"]
}

What's Changed

Full Changelog: v0.6.3...v0.6.4

v0.6.3

15 Jan 18:05

Choose a tag to compare

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.

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 | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

OpenCode: Also add to opencode.json:

{
  "plugin": ["@plannotator/opencode@latest"]
}

v0.6.2

15 Jan 15:55

Choose a tag to compare

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=disabled

OpenCode (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


Install

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

OpenCode: Also add to opencode.json:

{
  "plugin": ["@plannotator/opencode@latest"]
}