Pin Memo:Claude Code 置顶备忘与待办,固定在输入框上方
用 /pin 在 Claude Code 输入框上方置顶备忘和可点击的待办复选框,按会话保存。
权限
- 修改界面在 Claude Code 界面中绘制内容:横条、面板、状态文字、弹出通知(ui.render / $.ui.*)。
- 添加命令/工具注册新的斜杠命令或工具,供你或 Claude 调用($.command.register / $.tool.register)。
- 存储数据在插件的私有存储中跨会话保存数据($.store.*)。
- 实测版本
- v2.1.303
- 最近实测
- 需要
- Claude Code ≥ 2.1.287
- 显示位置
- 输入框上方
这个插件能做什么?
Pin Memo 是一款提供 Claude Code 置顶备忘的社区插件,作者是 YeonwooSung(GitHub),属于 my-claude-code-mods 合集中的一个插件。输入 /pin Remember to run tests,这条备忘就会留在输入框上方的青色边框横条里,对话滚动过去之后依然看得到。
备忘也可以是待办。/pin - [ ] Check login flow 会添加一个未勾选的项目,/pin - [x] Update docs 会添加一个已完成的项目。已完成的待办仍然可见,只是变暗并加上删除线,横条标题会统计置顶总数和已完成数。你可以点击 [ ] 方框、用 ctrl+x tab 聚焦横条,或者用 /pin toggle <id> 来勾选。
这份清单属于会话。它按工作目录和会话 ID 保存在插件自己的存储中,所以在同一目录恢复同一个会话会找回备忘,而新会话或 /clear 则从空列表开始。它和我们的 After 插件思路相近,但它只是一份普通清单:不安排任何任务,也从不把备忘发给 Claude。横条绘制在终端和桌面应用中;作者说明 VS Code 聊天和无界面会话可以使用命令和已保存的清单。
演示
录屏中,我们在小型演示项目里启动加载了该插件的 Claude Code,并运行四条 /pin 命令,没有模型轮次。先用 /pin Remember to run tests 置顶一条普通备忘:Claude Code 确认“메모 #1 고정”(备忘 #1 已置顶),横条出现,标题为“핀 1 (완료 0)”。接着添加两个待办 - [ ] Check login flow 和 - [ ] Update docs,横条变成三行。最后 /pin toggle 3 勾选最后一个待办:标题变为“핀 3 (완료 1)”,该行变暗并带有删除线。录屏中,复选框按钮绘制在每个待办文字上一行。
安装
使用安装区块中的任意一种方式;它们都直接从作者自己的插件市场安装。置顶任意内容后横条就会出现,/pin 在会话开始时注册。
$ install pin-memo
需要 Claude Code ≥ 2.1.287
从作者自己的 marketplace 安装: YeonwooSung/my-claude-code-mods
1.在 Claude Code 中一行安装
/plugin install pin-memo --marketplace YeonwooSung/my-claude-code-mods粘贴到正在运行的会话中(v2.1.275+)。Claude Code 会先询问是否添加该插件市场。
2.从终端安装
claude plugin marketplace add YeonwooSung/my-claude-code-mods claude plugin install pin-memo@my-claude-code-mods然后在所有已打开的会话中运行 /reload-plugins。
3.免安装试用
git clone https://github.com/YeonwooSung/my-claude-code-mods claude --plugin-dir ./my-claude-code-mods/pin-memo仅在当前会话中加载该插件,不会写入你的设置。
工作原理
hooks/register.tsx 中的适配层在 session.start 时注册 /pin,在 command.run 时响应它,并在 AbovePrompt 位置渲染横条。存储键由目录和会话 ID 组成,位于 hooks/core/controller.ts:
export function storeKey(cwd: string, id: string): string {
if (!cwd || !id || !/^(?:\/|[A-Za-z]:[\\/])/.test(cwd)) throw new Error('세션 폴더와 ID를 확인할 수 없습니다.')
// ...trailing slashes are trimmed from the folder...
return `pin-memo:v1:${JSON.stringify([folder, id])}`
}命令由 hooks/core/memo.ts 中的纯函数解析,并通过队列依次执行,所以连续输入的命令都会保存。变更先写入存储,然后才报告完成;如果写入失败,之前的状态保持不变,并弹出错误提示。校验失败的已保存文档会显示为错误,在你运行 /pin clear 之前不会被覆盖。旧的复选框句柄会与当前会话核对,因此过期的点击无法修改另一个会话的清单。当提示词上方打开了问卷时,横条会让位。
自定义
/config 中没有任何选项。可用命令有 /pin <memo>、/pin add <memo>(用于以命令词开头的文字)、/pin list、/pin toggle|check|uncheck|remove <id>、/pin edit <id> <memo>、/pin clear 和 /pin help。编辑备忘时不带复选框标记,会把待办变回普通备忘。若要改变外观,请编辑 register.tsx 中的颜色(边框 #62B8AD,背景 #1D2029),或 hooks/core/view.ts 和 hooks/core/memo.ts 中的韩文标签。
权限与安全
在运行之前,我们读过了插件可以执行的每一个文件:.claude-plugin/plugin.json、hooks/hooks.json、hooks/register.tsx、hooks/core/controller.ts、memo.ts 和 view.ts,以及测试。插件没有 package.json、安装脚本、二进制文件或打包代码,也没有未读取的部分。
修改界面对应的是输入框上方的横条。添加命令对应的是 /pin。插件用 $.session.cwd 和 $.session.id 构造存储键,用 $.store 保存清单。它不使用网络,不运行进程或 shell 命令,不写文件,不读取环境变量或机密,不发送遥测,不运行后台服务,不拦截或改写工具调用与提示词,也不向模型上下文添加文字。需要知道的一点是:备忘以纯 JSON 形式保存在插件存储中,所以不要置顶机密。仓库根目录有 Apache-2.0 的 LICENSE,允许再分发。claude plugin validate 没有报告任何错误或警告,作者的 29 个测试在 Claude Code 2.1.303 上全部通过。
- 修改界面
- 在 Claude Code 界面中绘制内容:横条、面板、状态文字、弹出通知(ui.render / $.ui.*)。
- 添加命令/工具
- 注册新的斜杠命令或工具,供你或 Claude 调用($.command.register / $.tool.register)。
- 存储数据
- 在插件的私有存储中跨会话保存数据($.store.*)。
兼容性与故障排除
已在 macOS 上使用 Claude Code 2.1.303 检查(validate、测试和演示录制);作者的 README 写的是 2.1.292。如果有异常:
- 什么都没出现:只有至少存在一条备忘时才会显示横条,先运行
/pin help并置顶一条内容。 - 备忘不见了:新会话或
/clear有自己的清单;在同一目录恢复之前的会话即可找回旧清单。通过不同符号链接进入的目录会被视为不同目录。 - 横条不会显示在 VS Code 聊天或无界面运行中;
/pin list在那里仍然可用。 - 出现“会话已更改”或“无法读取已保存备忘”的提示,表示无法读取目录或会话 ID,或者已保存的文档已损坏。请重试命令,或运行
/pin clear重置损坏的清单。 - 两个进程同时编辑同一会话没有实时同步,以最后一次写入为准。
常见问题
- 置顶的备忘会发送给模型吗?
- 不会。作者的 README 说明备忘不会自动进入模型上下文,我们在代码中也没有发现把它们加入提示词的地方。它们只显示在横条和 /pin list 的输出中。
- 备忘保存在哪里?
- 通过 $.store 保存在插件自己的存储中,键由工作目录和会话 ID 组成。插件自己不写任何文件,也没有网络或 shell 代码。
- 重启 Claude Code 后备忘还在吗?
- 只有在同一目录中恢复同一个会话时才在。新会话或 /clear 会得到空列表,恢复旧会话则会带回它的备忘。
- 最多可以置顶多少条?
- 最多 100 条,每条最多 2000 个字符。删除后编号不会被重用,也没有自动过期。
- 为什么横条是韩文?
- 作者把界面文字写成了韩文,例如标题“핀 3 (완료 1)”表示“置顶 3 条(已完成 1 条)”,以及每条命令之后的确认信息。命令、你的备忘内容和复选框可以使用任何语言,固定的只有这些标签。
# 相关插件
精选After
Claude Code 的提示词队列:/after 会在当前这一轮结束后运行你的下一个任务,不会干扰正在进行的工作。
- 输入框上方
- 面板
- 弹出通知
- 状态栏
- 调用模型(消耗你的额度)
- 读取你的提示词
- 修改界面
- 添加命令/工具
- 存储数据
已在 v2.1.303 实测