Follow @plannotator on X for updates
Missed recent releases?
Release
Highlights
v0.28.9
Large Inbox messages through plannotator inbox mcp fixed, an Inbox sidebar you can close and resize, Edit Mode in reviews of several files, the new Pi logo
v0.28.8
The Plannotator Inbox (preview): messages, questions, files and guided reviews from your agents in one local window
v0.28.7
Ask this session keeps your drafts as drafts, image comments survive a reload, hostname check on every server
v0.28.6
Ask AI names the lines you selected, reorder quick labels and edit their emoji, Pi fixed-port crash fixed, OpenCode 2 subagent notice fixed
v0.28.5
Several files in one review, the plannotator tool on Pi and OpenCode 2, decisions name the exact file, Ask this session reconnects after sleep
v0.28.4
Comments come back after the agent edits a file, the agent can list and close its reviews, PR-description feedback no longer dropped, Pi thinking levels
v0.28.3
Typing into your agent while it answers an Ask no longer streams into Plannotator
v0.28.2
Question cards show wrapped choices and tables, pinned images named by their file, Done with nothing to send starts no agent turn
v0.28.1
Ask AI from diagram comments, pinned images named for the agent, OpenCode 1 URL toasts and one reply per feedback, folder feedback sent once
v0.28.0
Ask this session in Claude Code, Pi and OpenCode 2, Claude Code mod on by default, Pi plan review no longer blocks, first-run demo
v0.27.25
Code review works with color.diff = always, Bitbucket review fixes, wide tables no longer collapse in Firefox, install script fix
v0.27.24
Image previews stay in the all-files view, PR comment previews open on the commented line
What's New in v0.28.10
A small Inbox release. You can now open the Inbox from your other devices over Tailscale, images in agent messages load, and a click anywhere on an attachment tile opens the file.
Open the Inbox over your tailnet
The Inbox only listens on this computer, so until now the only way to reach it from a phone or another machine was to set up tailscale serve by hand, which let every device on the tailnet in, including the agent connection. Now one flag does it:
plannotator inbox --tailscaleThe command prints an address such as https://studio.tail1234.ts.net:52817/. Open it on any device signed in to your tailnet.
- Tailnet only, never public. The Inbox stays bound to this computer.
tailscale servepublishes it over HTTPS inside your tailnet. The Inbox never usestailscale funnel. - Only your own login gets in. The Inbox lets in the Tailscale login that owns this computer and refuses everyone else, including tagged devices. To let in another login, add it to
~/.plannotator/config.json:{ "inboxTailscaleAllow": ["you@example.com"] }. An allowed login can reply and send New messages, and those become turns in your live agent sessions on this computer, where agents run commands. Allow only people you would let run your agents. - Agent connections stay local. MCP and the reply wake answer only on this computer, never over the tailnet.
- On for one run or for good.
--tailscalepublishes until the Inbox stops, and works with--backgroundand--no-open. If the Inbox is already running, the command asks it to publish. To publish at every start, including when an agent starts the Inbox, turn on Over your tailnet in the Inbox's Settings (or set{ "inboxTailscale": true }in config.json).PLANNOTATOR_INBOX_TAILSCALE=0keeps it off whatever the flag or the switch says. - Tailscale missing or signed out? The Inbox still runs on this computer, and Settings and the terminal say why it could not publish.
The address uses the Inbox's own port and is removed when the Inbox stops or restarts. If the Inbox is killed (kill -9, a reboot), the address stays in Tailscale until the next start removes it; run tailscale serve --https=<port> off to remove it sooner. Full details: plannotator.ai/docs/reference/inbox.
- #1818, requested by an Inbox user who wanted to reach it over their tailnet
Images in agent messages load
An agent's message with  showed a broken image, because the Inbox had no route for it. Images in messages now load when the file is inside the message's project: a path relative to the folder the agent sent from, or an absolute path inside the project. This covers markdown images, <img> tags and images in question context. PNG, JPEG, GIF, WebP, SVG, AVIF, BMP and ICO files up to 10 MB are served. The Inbox serves only images the message itself references, so the route cannot be used to read other files. Images from the web (https://…) still do not load.
- #1819, closing #1813 reported by @hexsprite
Additional Changes
- Click anywhere on an attachment tile. The tiles under an agent message opened only from the small "Open" text. The whole tile now opens the file, and keyboard focus outlines the whole tile (#1817)
Behavior changes
/mcpneeds a loopback address with the Inbox's own port. An HTTP MCP client must reachhttp://127.0.0.1:<port>/mcpdirectly. Anssh -Lforward to a different local port is now refused.plannotator inbox mcpover stdio is unaffected.- Use
--backgroundto keep a published Inbox running.nohup plannotator inbox --tailscale &stops when the terminal closes while the Inbox is published. Runplannotator inbox --tailscale --backgroundinstead.
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: The plugin and the plannotator binary update separately, so run the install script above as well. In a terminal:
claude plugin marketplace update plannotator
claude plugin update plannotator@plannotatorThen restart Claude Code. Inside Claude Code, run /plugin marketplace update plannotator, then open /plugin → Installed → plannotator → Update now.
Pi:
pi update --extensionsOpenCode: Re-run the install script above. It now also clears the OpenCode 2 plugin cache.
What's Changed
- Inbox over your tailnet: plannotator inbox --tailscale (owner-only) by @backnotprop in #1818
- Inbox: images in agent messages load (fixes #1813) by @backnotprop in #1819
- Inbox: clicking anywhere on an attachment tile opens it by @backnotprop in #1817
Community
- @hexsprite reported that images in Inbox messages never loaded in #1813, with the exact repro and the cause traced to the missing route.
Full Changelog: v0.28.9...v0.28.10