开发者为 Claude Code/Codex CLI 打造的工具,解决写 prompt 时 Claude 还在工作、想法被打断、常用 prompt 重复复制粘贴三个痛点,双快捷键覆盖三种场景。
我每天大部分时间都在用 Claude Code(Codex CLI 也是),有三个小问题一直妨碍着我。
第一个:当我还在等上一个 prompt 执行完时,我已经快写完下一个 prompt 了。然后我注意到它朝着错误的方向走,或者我意识到需要先问点别的东西。我的草稿就躺在输入框里。我要么删掉它之后重新打,要么复制到笔记软件里之后再粘贴回来。Claude Code 的 Ctrl+S 有点帮助,但它只存一份草稿, session 结束时就没了。
第二个问题跟代码的关系没那么大。当我在构建东西时,脑子里会不断冒出想法,而此时 Claude 正在忙:「我们应该加这个功能」,「这个页面可以有不同的做法」,「回头再研究一下」。我不想打断 Claude 在做的事,但也不想忘掉这些想法。
第三个:我反复使用的那些 prompt,比如「review my staged changes for bugs and missing tests」。我保存在一个笔记文件里,但要用的时候意味着要切换窗口、找到它、复制、回来、粘贴。
所以我做了 prompt-shelf。

你照常运行 claude(或 codex)。多了两个快捷键,覆盖三种场景。
需要等待的草稿。你正在写一个 prompt,但需要先引导一下 Claude。先 Ctrl+F,再回车:草稿被存放起来,输入框清空。之后 Ctrl+Q 会在输入框上方打开一个列表,选中草稿,回车,它就回到框里了。想存多少份都行,关掉 session 也不会丢。
不想忘掉的想法。「我们应该加这个功能。」「这个页面可以有不同的做法。」把它打到框里,按 Ctrl+F,用左右方向键选一个列表,比如「Ideas」或「To explore」,回车。它从你脑子里搬出去了,也不再干扰 Claude,随时在那个列表里等你下次打开 Ctrl+Q。
反复使用的 prompt。把它放到一个列表里,比如「Common」。需要用的时候:Ctrl+Q,选中,回车。它进到框里,同时留在列表里供下次再用。
你可以创建自己的列表,在 Ctrl+Q 视图里直接重命名(r)或删除(D)。还有一个 Skills 标签页,展示 Claude 在当前文件夹里能用的技能。存放的草稿按仓库独立保存,列表则在所有仓库里通用。
Claude Code 和 Codex 都没有给输入框提供 API,所以 prompt-shelf 采用了夹层方案。claude 解析为一个很小的 shim,启动真正的二进制文件,运行在一个伪终端里(node-pty)。你的按键和它的输出直接穿透,所以 agent 的行为和它自己跑的时候完全一样。
在侧面,prompt-shelf 用一个无头 xterm 维护着自己的一份屏幕副本。当你按 Ctrl+F 时,一个针对那个 agent 的小适配器从副本里找到输入框并读出其中的文字。把草稿放回去就是一个普通的粘贴。不会有任何内容被发送给 agent。
比预期更难的部分
agent 会不断重绘它们的 UI,每一个关于输入框长什么样的假设迟早都会失效:看起来像文字的 placeholder、粘贴长文本后显示为「[Pasted text #1 +12 lines]」、一行文字折行到了两行。单元测试没能捕获大部分问题。真正有效的方式是用脚本驱动真实的 Claude Code 和 Codex session,按下真实的按键,然后检查屏幕上显示的是什么。
npm i -g prompt-shelf && stash enable
或者用 Homebrew:brew install sourabhshegane/tap/prompt-shelf,然后 stash enable。打开一个新的终端标签页,照常运行 claude 或 codex。它是免费的,MIT 许可,已在 macOS 上测试通过。
代码和文档:https://github.com/sourabhshegane/prompt-shelf
你们现在是怎么处理这些的?如果有我漏掉的内置方式,或者你希望它能做到什么,我很想知道。