Token导航 LogoToken导航

Agent Skill · 开发

plannotator(plannotator 命令行)

plannotator 用于处理浏览器自动化、网页检查和页面信息提取,适合在 Codex、Claude、Cursor、Gemini CLI 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

plannotator 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描有未通过项,按安装量在开发类的 21,746 个 Skill 里排第 127。

总安装 247,104周安装 10,375GitHub Stars 88下载 86,528核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:plannotator(plannotator 命令行)
来源仓库:https://github.com/supercent-io/skills-template
仓库路径:skills/plannotator
安装命令:
npx skills add https://github.com/supercent-io/skills-template --skill plannotator
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/supercent-io/skills-template --skill plannotator

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

视觉计划和差异审查 UI,具有结构化反馈、注释和自动保存到 Obsidian 或 Bear Notes 的功能。

通过挂钩或插件与 Claude Code、Gemini CLI、Codex CLI 和 OpenCode 集成;当客服人员退出计划模式时自动打开 支持三种注释类型(删除、插入、替换、注释),对于计划和代码差异均具有行级精度 包括用于 UI/UX 反馈的图像注释和用于代码审查的拆分/统一差异视图 使用 YAML frontmatter、标签和可自定义文件夹组织将批准的计划自动保存到 ObsidianVaults 或 Bear Notes 在远程模式(SSH、devcontainer、WSL)下工作,具有可配置端口和自定义浏览器支持

来源仓库内路径:skills/plannotator

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/supercent-io/skills-template --skill plannotat…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

plannotator 怎么安装?

在终端执行 npx skills add https://github.com/supercent-io/skills-template --skill plannotator。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

plannotator 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

plannotator 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

plannotator 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

plannotator 用的人多吗?

公开数据是累计安装 247,104 次,近一周安装 10,375 次,下载 86,528 次,GitHub 88 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

plannotator 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
plannotator

plannotator 命令行 · 本页

247,10488接触敏感数据未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

plannotator — Interactive Plan & Diff Review

Keyword: plan | Source: https://github.com/backnotprop/plannotator Annotate and review AI coding agent plans visually, share with your team, send feedback with one click. Works with Claude Code, OpenCode, Gemini CLI, and Codex CLI.

When to use this skill

  • You want to review an AI agent's implementation plan BEFORE it starts coding
  • You want to annotate a git diff after the agent makes changes
  • You need a feedback loop: visually mark up what to change, then send structured feedback back
  • You want to share plan reviews with teammates via a link
  • You want to auto-save approved plans to Obsidian or Bear Notes

Scripts (Automated Patterns)

All patterns have a corresponding script in scripts/. Run them directly or let the agent call them.

ScriptPatternUsage
scripts/install.shCLI InstallOne-command install; --all sets up every AI tool
scripts/setup-hook.shClaude Code HookConfigure Claude Code ExitPlanMode hook
scripts/setup-gemini-hook.shGemini CLI HookConfigure Gemini CLI ExitPlanMode hook + GEMINI.md
scripts/setup-codex-hook.shCodex CLI SetupConfigure Codex CLI developer_instructions + prompt
scripts/setup-opencode-plugin.shOpenCode PluginRegister plugin + slash commands
scripts/check-status.shStatus CheckVerify all integrations and configuration
scripts/configure-remote.shRemote ModeSSH / devcontainer / WSL configuration
scripts/review.shCode ReviewLaunch diff review UI

Pattern 1: Install

# Install CLI only (macOS / Linux / WSL)
bash scripts/install.sh

# Install CLI and get Claude Code plugin commands
bash scripts/install.sh --with-plugin

# Install CLI + configure Gemini CLI
bash scripts/install.sh --with-gemini

# Install CLI + configure Codex CLI
bash scripts/install.sh --with-codex

# Install CLI + register OpenCode plugin
bash scripts/install.sh --with-opencode

# Install CLI + all AI tool integrations at once
bash scripts/install.sh --all

What it does:

  • Detects OS (macOS / Linux / WSL / Windows)
  • Checks for Obsidian and shows install link if missing: https://obsidian.md/download
  • Installs via https://plannotator.ai/install.sh
  • Verifies install and PATH
  • Optionally runs integration scripts for each AI tool
  • On Windows: prints PowerShell / CMD commands to run manually

Pattern 2: Hook Setup (Plan Review trigger)

# Add hook to ~/.claude/settings.json
bash scripts/setup-hook.sh

# Preview what would change (no writes)
bash scripts/setup-hook.sh --dry-run

What it does:

  • Checks plannotator CLI is installed
  • Merges ExitPlanMode hook into ~/.claude/settings.json safely (backs up first)
  • Skips if hook already configured
  • Restart Claude Code after running this

Alternative: Claude Code Plugin (no manual hook needed)

Run inside Claude Code:

/plugin marketplace add backnotprop/plannotator
/plugin install plannotator@plannotator
# IMPORTANT: Restart Claude Code after plugin install

Pattern 3: Plan Review (Before Coding)

Triggered automatically via hook when Claude Code exits plan mode.

When your agent finishes planning (Claude Code: Shift+Tab×2 to enter plan mode), plannotator opens automatically:

  1. View the agent's plan in the visual UI
  2. Annotate with clear intent:

- delete — remove risky or unnecessary step - insert — add missing step - replace — revise incorrect approach - comment — clarify constraints or acceptance criteria

  1. Submit one outcome:

- Approve → agent proceeds with implementation - Request changes → your annotations are sent back as structured feedback for replanning


Pattern 4: Code Review (After Coding)

# Review all uncommitted changes
bash scripts/review.sh

# Review a specific commit
bash scripts/review.sh HEAD~1

# Review branch diff
bash scripts/review.sh main...HEAD

What it does:

  • Checks CLI and git repo state
  • Shows diff summary before opening
  • Launches plannotator review UI
  • In the UI: select line numbers to annotate, switch unified/split views, attach images

Pattern 5: Remote / Devcontainer Mode

# Interactive setup (SSH, devcontainer, WSL)
bash scripts/configure-remote.sh

# View current configuration
bash scripts/configure-remote.sh --show

# Set port directly
bash scripts/configure-remote.sh --port 9999

What it does:

  • Detects shell profile (.zshrc, .bashrc, .profile)
  • Writes PLANNOTATOR_REMOTE=1 and PLANNOTATOR_PORT to shell profile
  • Shows SSH and VS Code port-forwarding instructions
  • Optionally sets custom browser or share URL

Manual environment variables:

export PLANNOTATOR_REMOTE=1    # No auto browser open
export PLANNOTATOR_PORT=9999   # Fixed port for forwarding
VariableDescription
PLANNOTATOR_REMOTERemote mode (no auto browser open)
PLANNOTATOR_PORTFixed local/forwarded port
PLANNOTATOR_BROWSERCustom browser path/app
PLANNOTATOR_SHARE_URLCustom share portal URL

Pattern 6: Status Check

bash scripts/check-status.sh

Checks all of:

  • CLI installed and version
  • Claude Code hook in ~/.claude/settings.json (or plugin detected)
  • Gemini CLI hook in ~/.gemini/settings.json
  • Codex CLI ~/.codex/config.toml developer_instructions
  • OpenCode plugin in opencode.json + slash commands
  • Obsidian installation
  • Environment variables configured
  • Git repo available for diff review

Pattern 7: Gemini CLI Integration

# Configure Gemini CLI (hook + GEMINI.md instructions)
bash scripts/setup-gemini-hook.sh

# Preview what would change (no writes)
bash scripts/setup-gemini-hook.sh --dry-run

# Only update settings.json hook (skip GEMINI.md)
bash scripts/setup-gemini-hook.sh --hook-only

# Only update GEMINI.md (skip settings.json)
bash scripts/setup-gemini-hook.sh --md-only

What it does:

  • Checks plannotator CLI is installed
  • Merges ExitPlanMode hook into ~/.gemini/settings.json (same format as Claude Code)
  • Appends plannotator usage instructions to ~/.gemini/GEMINI.md
  • Backs up existing files before modifying

Usage in Gemini CLI after setup:

# Enter planning mode (hook fires when you exit)
gemini --approval-mode plan

# Manual plan review (validated format)
python3 -c "
import json
plan = open('plan.md').read()
print(json.dumps({'tool_input': {'plan': plan, 'permission_mode': 'acceptEdits'}}))
" | plannotator > /tmp/plannotator_feedback.txt 2>&1 &

# Code review after implementation
plannotator review
Note: Gemini CLI supports gemini hooks migrate --from-claude to auto-migrate existing Claude Code hooks.

Pattern 8: Codex CLI Integration

# Configure Codex CLI (developer_instructions + prompt file)
bash scripts/setup-codex-hook.sh

# Preview what would change (no writes)
bash scripts/setup-codex-hook.sh --dry-run

What it does:

  • Adds plannotator instruction to developer_instructions in ~/.codex/config.toml
  • Creates ~/.codex/prompts/plannotator.md (invoke with /prompts:plannotator)
  • Backs up existing config before modifying

Usage in Codex CLI after setup:

# Use the plannotator agent prompt
/prompts:plannotator

# Manual plan review (validated format)
python3 -c "
import json
plan = open('plan.md').read()
print(json.dumps({'tool_input': {'plan': plan, 'permission_mode': 'acceptEdits'}}))
" | plannotator > /tmp/plannotator_feedback.txt 2>&1 &

# Code review after implementation
plannotator review HEAD~1
Note: plannotator plan - with heredoc/echo can fail with Failed to parse hook event from stdin. Use the python3 JSON format above.

Pattern 10: Manual Save via Export → Notes Tab

Save the current plan to Obsidian or Bear Notes at any time — without approving or denying.

How to access

  1. Click Export button in the plannotator UI toolbar
  2. Click the Notes tab (not Share or Annotations)
  3. You see:

- Obsidian row with configured vault path and Save button - Bear row with Save button - Save All button to save both at once

  1. A green dot next to each row means that integration is configured
  2. Clicking Save shows Saved when complete

When to use

  • Save work-in-progress plans without committing to Approve/Deny
  • Quick archive after reviewing without final decision
  • Save annotated plans for team reference

Requirements

  • plannotator must be running in hook mode (normal Claude Code ExitPlanMode hook invocation = hook mode)
  • Obsidian/Bear must be configured in Settings (⚙️) → Saving tab
  • Settings are stored in cookies (not localStorage) and persist across restarts
Note: The Notes tab uses POST /api/save-notes which writes directly to the vault filesystem (Obsidian) or calls bear://x-callback-url/create (Bear). This endpoint is only available in hook mode.

Recommended Workflow

Quick Start (all AI tools)

# 1. Install CLI + configure all AI tool integrations at once
bash scripts/install.sh --all

# 2. Verify everything
bash scripts/check-status.sh

# 3. Restart your AI tools (Claude Code, Gemini CLI, OpenCode, Codex)

Claude Code (manual)

1. bash scripts/install.sh --with-plugin
   └─ Installs CLI + shows plugin install commands

2. bash scripts/setup-hook.sh          ← skip if using plugin
   └─ Configures automatic plan review trigger

3. bash scripts/check-status.sh
   └─ Confirm everything is ready

4. [Code with agent in plan mode → Shift+Tab×2]
   └─ plannotator opens automatically

5. bash scripts/review.sh              ← after agent finishes coding
   └─ Opens visual diff review

Gemini CLI (manual)

1. bash scripts/install.sh
2. bash scripts/setup-gemini-hook.sh
3. gemini --approval-mode plan          ← work in plan mode
   └─ plannotator fires on exit

Codex CLI (manual)

1. bash scripts/install.sh
2. bash scripts/setup-codex-hook.sh
3. /prompts:plannotator                 ← inside Codex session

OpenCode Setup

# Automated (recommended)
bash scripts/setup-opencode-plugin.sh

# Or add manually to opencode.json:
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["@plannotator/opencode@latest"]
}

After setup, restart OpenCode. Available slash commands:

  • /plannotator-review — open code review UI for current git diff
  • /plannotator-annotate <file.md> — annotate a markdown file

The submit_plan tool is automatically available to the agent for plan submission.


Pattern 9: Obsidian Integration Setup

Auto-save approved plans to your Obsidian vault with YAML frontmatter and tags.

Prerequisites

  1. Install Obsidian: https://obsidian.md/download
  2. Create a Vault: Open Obsidian → Create new vault → Choose location

- Example: ~/Documents/Obsidian/MyVault

  1. Verify Vault Exists: Obsidian creates obsidian.json config after first vault creation
# Check Obsidian installation (macOS)
ls /Applications/Obsidian.app

# Check Obsidian config exists (vault detection depends on this)
# macOS
cat ~/Library/Application\ Support/obsidian/obsidian.json
# Linux
cat ~/.config/obsidian/obsidian.json
# Windows
cat %APPDATA%/obsidian/obsidian.json

Step-by-Step Setup

# Step 1: Verify Obsidian is installed and has at least one vault
bash scripts/check-status.sh

# Step 2: Trigger a plan review (any method)
# Claude Code: Shift+Tab×2 → plan mode → exit plan mode
# Gemini CLI: gemini --approval-mode plan
# OpenCode: Agent creates a plan

# Step 3: In the plannotator UI:
#   1. Click ⚙️ (Settings gear icon)
#   2. Go to "Saving" tab
#   3. Toggle ON "Obsidian Integration"
#   4. Select your vault from dropdown (auto-detected)
#      - Or enter custom path if vault not detected
#   5. Set folder name (default: "plannotator")

# Step 4: Approve a plan to test the integration
#   - Click "Approve" in the plannotator UI
#   - Check your vault for the saved file

Obsidian Configuration Options

SettingDescriptionDefault
VaultPath to Obsidian vaultAuto-detected
FolderSubfolder in vault for plansplannotator
Custom PathManual path if auto-detect fails-

Saved File Format

Files are saved with human-readable names and YAML frontmatter:

Filename: {Title} - {Month} {Day}, {Year} {Hour}-{Minute}{am/pm}.md
Example:  User Authentication - Feb 22, 2026 10-45pm.md
---
created: 2026-02-22T22:45:30.000Z
source: plannotator
tags: [plannotator, project-name, typescript, ...]
---

[[Plannotator Plans]]

# Original plan content...

Tag extraction:

  • plannotator — always included
  • Project name — from git repo or directory
  • Title words — first 3 meaningful words from H1 heading
  • Languages — from code blocks (```typescript → typescript)

Folder Organization

Organize plans within the vault using subfolders:

vault/plannotator/
├── approved/          ← approved plans
├── denied/            ← rejected plans
└── 2026-02/           ← monthly archive

Create subfolders manually (Obsidian detects them automatically):

mkdir -p ~/path/to/vault/plannotator/approved
mkdir -p ~/path/to/vault/plannotator/denied
mkdir -p ~/path/to/vault/plannotator/2026-02

Or write directly to any subfolder:

cp ~/.plannotator/plans/<name>-approved.md ~/path/to/vault/plannotator/approved/

Bear Notes (Alternative)

If you prefer Bear Notes over Obsidian:

  1. Toggle ON "Bear Notes" in Settings → Saving tab
  2. Plans are saved via bear://x-callback-url/create
  3. Tags are appended as hashtags
  4. Validate callback from terminal:
open "bear://x-callback-url/create?title=Plannotator%20Check&text=Bear%20callback%20OK"
FeatureObsidianBear
StorageFile systemx-callback-url
FrontmatterYAMLNone (hashtags)
PlatformsmacOS/Win/LinuxmacOS/iOS

Troubleshooting

Vault not detected:

# 1. Check Obsidian config exists
ls ~/Library/Application\ Support/obsidian/obsidian.json  # macOS

# 2. If missing, open Obsidian and create a vault first
open /Applications/Obsidian.app

# 3. After creating vault, restart plannotator

Plans not saving:

# Check write permissions on vault folder
ls -la ~/path/to/vault/plannotator/

# Check browser console for errors (F12 → Console)

Export → Notes tab Save buttons require hook mode:

  • Export → Notes tab Save buttons require plannotator running in hook mode (stdin JSON input). In CLI review/annotate modes, the /api/save-notes endpoint is not active. Normal Claude Code hook invocation (ExitPlanMode hook) always runs in hook mode.

Settings not visible in automated/headless browsers:

  • Obsidian Integration settings must be configured in the system browser that plannotator auto-opens. Settings are stored in cookies (not localStorage). Automated/headless browser profiles (Playwright, Puppeteer) use isolated cookie jars and will not see these settings.

Bear export not working:

  • Confirm Bear app is installed and opened at least once
  • Confirm open "bear://x-callback-url/create?..." works from terminal
  • Use system browser session for plannotator settings; automated/headless sessions can block custom URI handlers

Settings not persisting:

  • Settings are stored in cookies (not localStorage)
  • Ensure cookies are enabled for localhost
  • Settings persist across different ports

Auto-save (Summary)

Obsidian integration is optional — plans can still be reviewed and approved without it.

Best Practices

  1. Use plan review BEFORE the agent starts coding — catch wrong approaches early
  2. Keep each annotation tied to one concrete, actionable change
  3. Include acceptance criteria in "request changes" feedback
  4. For diff review, annotate exact line ranges tied to expected behavior changes
  5. Use image annotation for UI/UX feedback where text is insufficient

References

平台分布

Codex

37.77%
按下载量换算32,682

Claude

29.03%
按下载量换算25,119

Cursor

17.9%
按下载量换算15,489

Gemini CLI

9.4%
按下载量换算8,134

安全审计

Gen Agent Trust Hub

未通过

Socket

可疑

Snyk

未通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills