github backnotprop/plannotator v0.16.0

7 hours ago

Follow @plannotator on X for updates


Missed recent releases?
Release Highlights
v0.15.5 Custom display names, GitHub viewed file sync, expand/collapse all in file tree, search performance, WSL fix
v0.15.2 Compound Planning skill, folder annotation, /plannotator-archive slash command, skill installation via platform installers
v0.15.0 Live AI chat in code review, plan archive browser, folder file viewer, resizable split pane, Pi full feature parity
v0.14.5 GitLab merge request review, login page image fix, Windows install path fix
v0.14.4 GitHub review submission, repo identifier in tab title, nested code fence parser fix, Pi paste URL wiring
v0.14.3 PR context panel, diff search in code review, OpenCode permission normalization, landing page redesign
v0.14.2 OpenCode plan mode prompt replacement, Windows non-ASCII path fix, Pi link fix
v0.14.1 Single submit_plan with auto-detect, viewed-file draft persistence, Bear nested tag fix
v0.14.0 PR review via GitHub URL, /plannotator-last for annotating agent messages, OpenCode plan mode permissions fix, VS Code SSH proxy fix
v0.13.1 OpenCode plan mode rewrite, Obsidian save fix
v0.13.0 Built-in themes, annotatable plan diffs, file-scoped code review comments, Octarine integration, unified review core, Pi remote sessions

What's New in v0.16.0

v0.16.0 adds GitHub Copilot CLI as Plannotator's fifth runtime, an external annotations API for integration (stay tuned...), bot callback URLs for Slack-style approval workflows, interactive plan checkboxes, print support, and configurable diff display options. 11 PRs, 3 from external contributors, 2 first-timers.

GitHub Copilot CLI Integration

Plannotator now works with GitHub Copilot CLI, contributed by @Yecats. Plan review, code review, and markdown annotation all function the same way they do in Claude Code. The Copilot plugin hooks into exit_plan_mode to intercept plans, and the same /plannotator-review, /plannotator-annotate, and /plannotator-last commands are available.

Install the binary, then in Copilot CLI:

/plugin marketplace add backnotprop/plannotator
/plugin install plannotator-copilot@plannotator

A follow-up PR added environment-variable-based agent detection so the UI correctly identifies which agent launched Plannotator, fixing the badge display that was previously hardcoded to Claude Code.

External Annotations API

Any external program can now push annotations into a live Plannotator session. Linters, AI tools, or custom scripts send annotations via HTTP POST to /api/external-annotations, and they appear in the browser UI in real-time through Server-Sent Events. The API supports single and batch annotation creation, field updates via PATCH, deletion by ID or source, and version-gated polling as a fallback for environments where SSE isn't practical.

This is the foundation for integrating Plannotator with external toolchains. A linter could annotate code review diffs with warnings. A CI pipeline could push review comments. An AI assistant could highlight sections of a plan it has questions about.

All three server types (plan, review, annotate) expose the same endpoints, and the Pi extension has full parity.

Interactive Checkboxes

Task checkboxes in rendered plans are now clickable. Checking or unchecking a box creates a COMMENT annotation that captures the action, the section context, and the task text. Toggling back to the original state removes the override and deletes the annotation. This means your checkbox interactions become part of the feedback sent to the agent.

Print Support

Plans can now be printed directly from the review UI. An export dropdown menu in the toolbar offers a print option, and Ctrl+P / Cmd+P works as a keyboard shortcut. A dedicated print stylesheet produces clean white-paper output with A4 formatting, hiding the toolbar, sidebar, and interactive elements.

Diff Display Options

The code review diff viewer now exposes display settings that were previously locked to defaults. You can configure overflow behavior (scroll vs word wrap), toggle diff indicators and line numbers, control inline diff granularity, and show or hide diff backgrounds. All settings are persisted via the ConfigStore system (cookies + ~/.plannotator/config.json) and accessible from a new Display tab in the review Settings dialog.

Bot Callback URL Parameters

Plannotator share URLs now support callback parameters for bot integrations. When a bot (e.g., a Slack bot) generates a plan and posts the Plannotator URL, it can embed ?cb=<callback_url>&ct=<auth_token> so the approval decision is sent back to the bot automatically. The user reviews and approves in Plannotator, and the bot receives the result without any copy-paste.

Additional Changes

  • OpenCode startup performance. Replaced compile-time HTML embedding with lazy readFileSync getters and background preloading. Bundle size drops from 21.25 MB to 0.81 MB (96% reduction), cold-start module load from ~160ms to ~35ms (#411, closing #410 reported by @DRBragg)
  • Markdown parser fixes. Indented closing fences (inside list items), trailing text after fence closers, and false table detection on lines with pipes are all fixed (#429, closing #427 reported by @jhillyerd)
  • PR/MR platform test coverage. Regression tests for URL parsing, labels, display helpers, and CLI selection across GitHub and GitLab, including self-hosted GitLab (#426 by @sudorest)
  • Compound skill description fix. Trimmed to fit Claude Code 2.1.86's 250-character limit and added disable-model-invocation frontmatter (#430, closing #412 reported by @arogulin)
  • Copilot on marketing site. The landing page harness selector now includes a Copilot button with install instructions, in alphabetical order alongside the other five runtimes.

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

Copilot CLI:

/plugin marketplace add backnotprop/plannotator
/plugin install plannotator-copilot@plannotator

OpenCode: Clear cache and restart:

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

Then in opencode.json:

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

Pi: Install or update the extension:

pi install npm:@plannotator/pi-extension

What's Changed

  • feat: GitHub Copilot CLI integration by @Yecats in #409
  • perf(opencode): lazy-load HTML to fix plugin startup time by @backnotprop in #411
  • feat: bot callback URL params for seamless plan review by @aviadshiber in #416
  • fix: detect calling agent via env vars and centralize agent config by @Yecats in #418
  • feat: print support with export menu integration and keyboard shortcut by @Yecats in #420
  • feat: interactive checkboxes with annotation tracking by @Yecats in #423
  • test: cover PR/MR platform helpers by @sudorest in #426
  • feat(review): diff display options with ConfigStore integration by @backnotprop in #428
  • fix(parser): indented fences, trailing text, table detection, and escaped pipes by @backnotprop in #429
  • fix(skill): trim compound skill description under 250-char limit by @backnotprop in #430
  • feat: external annotations API with real-time SSE by @backnotprop in #400

New Contributors

Contributors

@Yecats authored four PRs in this release: GitHub Copilot CLI integration (#409), agent detection fix (#418), print support (#420), and interactive checkboxes (#423). First contribution to the project, and immediately one of the most prolific single-release contributors.

@aviadshiber authored the bot callback URL system (#416), enabling Plannotator integration with external bot workflows. First contribution.

@sudorest added PR/MR platform test coverage (#426), protecting the multi-platform review routing.

Community members who reported issues that drove changes in this release:

Full Changelog: v0.15.5...v0.16.0

Don't miss a new plannotator release

NewReleases is sending notifications on new releases.