mcpField
S
Stickies

Stickies

本地服务
github.com/dumbspacecookie记忆与知识112 周前更新

关于 Stickies

Stickies 是面向 Claude Code 的项目级持久便笺插件。用户可手动记录会过期的决策、阻碍和待办,并在后续会话中查看仍相关的内容。

主要功能

  1. 01项目级持久便笺
  2. 02从回复文本自动捕获
  3. 03按重要性生成会话摘要
  4. 04命令行与浏览器面板
  5. 05可选的 Git 同步

适用场景

  1. 01在 Claude Code 会话间延续决策
  2. 02跟踪项目阻碍和待办
  3. 03在面板中查看项目便笺

MCP 相关

Stickies 通过 MCP 工具向 Claude Desktop 和其他 MCP 客户端提供便笺读写功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"stickies-160673": {
"command": "npx",
"args": [
"-y",
"stickies-mcp"
],
"env": {
"STICKIES_DB": "<STICKIES_DB>",
"STICKIES_DISCORD_WEBHOOK": "<STICKIES_DISCORD_WEBHOOK>",
"STICKIES_SYNC_REPO": "<STICKIES_SYNC_REPO>"
}
}
}
}
启动命令npx -y stickies-mcp
需要配置的环境变量
STICKIES_DBPath to the SQLite store (default ~/.stickies/stickies.db).
STICKIES_DISCORD_WEBHOOK密钥Optional Discord webhook URL to mirror sticky lifecycle events.
STICKIES_SYNC_REPOPath to a git clone you own, used as the opt-in cross-machine sync store.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmstickies-mcp0.14.2

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
tagsarray否可选字符串标签(最多 20 个,每个不超过 40 个字符)。
contentstring是自由格式的便笺文本,最多 500 个字符。
categoryenum是decision(决策)| blocker(阻碍)| preference(偏好)| context(背景)| todo(待办)(用于设置 TTL)。decision | blocker | preference | context | todo
importanceenum否P1 严重,P2 普通,P3 轻微。P1 | P2 | P3
project_pathstring|null否此笔记所属项目的绝对根目录。全局笔记请省略或设为 null。

详细介绍

Stickies(Claude Code 插件)

npm MCP Registry License: MIT Node

为 Claude Code 提供持久便笺。 你可以固定一条便笺——一项决策、一个阻碍或一个待办——即使会话重置、执行 /clear 或关闭终端,它也会保留下来。下次你在该项目中打开 Claude 时,仍然有用的便笺会自动交给它。

Stickies 不是记忆系统,也无意成为记忆系统。 它不会监视你的会话并自行决定要记住什么。恰恰相反:只有少量由你(或应你要求的 Claude)主动写下的便笺,它们会自行过期,而且你可以查看、清理并信赖它们。没有向量、没有大模型摘要,也没有云端服务。如果你想要一个能自动记住一切的 AI,请使用 Claude Code 内置记忆功能——它默认已开启。Stickies 适合那些只想保留二十条真正重要的便笺,并希望它们能过期的人。


快速开始(60 秒)

你需要 Node ≥ 22.5(运行 node -v 检查——这是内置 SQLite 所需的版本)。

claude plugin marketplace add dumbspacecookie/stickies
claude plugin install stickies@stickies --scope user

重启 Claude Code。就这么简单——只需安装一次,即可在每个项目中使用。现在试试:

  • 让 Claude 记住某件事: “pin a P1 todo: fix the auth leak before release.” Claude 会记下来;下次会话时,你就能看到它。
  • 查看便笺: 在 Claude Code 中输入 /stickies。更喜欢使用 Shell?运行 npm i -g stickies-mcp 即可获得 stickies 命令,然后运行 stickies list。
  • 在浏览器中打开看板: 运行 /stickies dashboard,然后运行 stickies dashboard --link 获取授权 URL(看板会提供你的便笺,因此只会响应你允许访问的浏览器)。

所有内容都留在你的设备上。所有数据都是磁盘上的本地 SQLite 文件,除非你启用可选的 Git 同步。


适用场景

便笺属于项目,而非你正在使用的应用——它们存储在一个本地数据库中,并按项目划分范围。不同使用场景之间的区别在于自动化程度。

使用场景你可以获得方式
终端(Claude Code CLI)✅ 完整流程——自动捕获、会话开始摘要、/stickies、状态栏、看板安装插件
Claude Desktop(聊天应用)✅ 通过 MCP 工具读取 / 写入(没有钩子;需传入项目路径)将 MCP 服务添加到 claude_desktop_config.json
iPhone / Web(Remote Control)✅ 完整流程——手机控制在你的设备上运行的会话在你的设备上运行 claude remote-control
iPhone / Web(云沙箱)✅ 通过 repo-mode 使用完整流程——便笺会提交到仓库stickies init-repo(见 Repo-mode)
任何 MCP 客户端✅ 读取 / 写入已加入 MCP Registry,标识为 io.github.dumbspacecookie/stickies
任何位置,只读✅ 快速查看看板Discord 摘要 / 看板卡片

这里有两项其他地方找不到的功能

  • 零轮次捕获。 Claude 只需在本来就在写的回复中写下一行,就能保存便笺——!!sticky todo P1 :: fix the auth leak——Stop 钩子会持久化保存。无需额外工具调用、无需额外轮次,也不会在往返过程中消耗令牌。(见自动捕获。)
  • 按重要性分级注入。 会话开始摘要会按重要性逐级精简,而不是按位置:P1 完整保留,P2 截断,P3 仅显示数量。它绝不会简单地在 N 行处截断列表。

Flow Board

如果你的项目使用 .planning/ROADMAP.md(GSD 规划约定)来安排工作,Stickies 还会根据该路线图直接生成一个实时看板——待办 / 进行中 / 已完成,并将你的便笺交叉链接到相关阶段。这是对计划的实时投影,因此永远不会与计划脱节。

同一个看板有四种查看方式,选择最适合当前场景的方式:

位置命令适用场景
在 GitHub / 手机上stickies board → 提交 BOARD.md在手机浏览器中快速查看进度——BOARD.md 可直接在 github.com 上渲染,无需服务或应用
在浏览器中(本地)stickies dashboard → 打开 /board交互式看板;/graph 显示计划的依赖 DAG
在 Discord 中stickies board --discord可快速查看的推送卡片——进度、各列计数和各阶段状态
在状态栏中(参见 状态栏)常驻显示的精简摘要 📋 ▶2 ☐1 ✓2(进行中 / 待办 / 已完成)
stickies board                     # write BOARD.md in the project root (commit it → view on GitHub)
stickies board --out docs/BOARD.md # write it somewhere else
stickies board --discord           # post the board to your Discord webhook instead

每个阶段都会显示其进度(3/4)、波次、是否已交付(✓ shipped 4/4)以及是否受阻(⛔)。在没有 .planning/ 的云端 / 移动会话中,已提交的 .flow/ 快照可让看板独立运行——与笔记采用相同的仓库模式。


日常命令

在 Claude Code 中(/stickies 斜杠命令):

命令作用
/stickies列出此项目的活动笔记(+ 全局笔记)
/stickies all列出所有项目的笔记
/stickies add <text>手动添加笔记
/stickies dismiss <id>清除一条笔记(待办事项在清除后即视为“已完成”)
/stickies dashboard打开本地网页看板
/stickies sync通过 Git 仓库同步(如果已配置)

在任何 Shell 中(CLI——使用相同的引擎)。运行 npm i -g stickies-mcp 安装,即可在 PATH 中使用 stickies 命令,然后:

stickies list                          # active notes for this dir + globals
stickies list --all                    # every project + globals
stickies add "ship the release" -c todo -i P1     # add a P1 todo to this project
stickies add "pay invoice" -c todo --due 2d       # a deadline (30m/2h/1d/1w/tomorrow/YYYY-MM-DD)
stickies add "call the bank" -c todo -p global    # a global todo — shows up everywhere
stickies dismiss <id> -r "done"        # clear it
stickies dashboard --open              # local web board, open the browser
stickies board                         # write a GitHub-viewable BOARD.md
stickies status                        # the one-line statusline summary
stickies sync                          # pull → merge → commit (push needs STICKIES_SYNC_PUSH=1)
stickies notify                        # push the open list to Discord
stickies init-repo                     # make notes work in cloud/mobile (repo-mode)

自动捕获

最省力的使用方式:Claude 在回复中写下一行内容,记录需要长期保留的信息;Stop Hook 会将其保存,无需调用工具,也无需额外轮次。

!!sticky <category> [P1|P2|P3] [global] [#tag ...] :: <content>
!!sticky decision P1 #storage :: storage is node:sqlite, no native deps
!!sticky todo P1 global :: cut the npm release

category 为必填项;重要性默认为 P2;重复笔记会自动去重。global 和 #tags 为可选项,可以按任意顺序出现。不带 global 时,笔记仅适用于当前项目;带上后,笔记会显示在每个项目中。

Hook 会扫描整个已完成的轮次,因此,即使指令写在 Claude 调用更多工具之前,也会被保存。子 Agent 回复中的指令会被忽略。保存时会清除密钥等敏感信息。


状态栏

将 Claude Code 状态栏指向 Stickies,即可随时查看摘要。这是可选功能——在 settings.json 中添加以下内容:

{ "statusLine": { "type": "command", "command": "stickies status" } }

(它使用 npm i -g stickies-mcp 安装的 stickies 命令)

默认显示精简信息——数量加紧急标记,例如 🟨 2!·19(19 条中有 2 条紧急)。它不会显示便笺文本(这样敏感信息就不会进入提示词);如果也想显示置顶便笺的文本,请设置 STICKIES_STATUSLINE_VERBOSE=1。

浅色/深色。 状态栏无法重新绘制终端背景——它只能为自身文本着色——因此主题的任务是在你现有的任意背景上保持易读。深色调色板(默认)使用终端自身的亮色;浅色调色板则换用更深的真彩色值,以适应白色背景(经过调整,可达到 WCAG AA 文本对比度标准)。在环境中设置 STICKIES_THEME=light(或 dark)即可选择,也可以在调用时使用 stickies status --light / --theme dark。在提供 $COLORFGBG 的 macOS/Linux 终端中,程序也会自动检测;Windows Terminal / PowerShell 不会设置该变量,因此在 Windows 上使用浅色终端时,请显式设置 STICKIES_THEME。仪表板(/、/board、/graph)是真正的网页,因此它有完整的 ☾/☀ 切换按钮,可以切换整个背景——这是它能控制的网页,与状态栏不同。

可点击链接。 在支持 OSC-8 超链接的终端(Windows Terminal、iTerm2、WezTerm、Kitty、Ghostty)中,该部分会变成一个 Ctrl+单击即可打开仪表板的链接。它需要满足两个条件:

  • 仪表板必须正在运行——执行 stickies dashboard --detach。只有仪表板正在运行时,该部分才会成为链接;没有仪表板运行时,仍会显示计数,只是不带下划线,也无法点击。这是有意为之:指向已关闭端口的链接看起来有效,只有点击时才会失败,还会让你误以为是浏览器出了问题。除非你主动启用,否则不会自动启动,因此全新安装时默认没有链接。如果该部分无法点击,而你认为它应该可以点击,stickies doctor 会说明是哪种情况。
  • 在 Windows Terminal 上,Claude Code 不会自动检测超链接支持,因此请在启动 Claude Code 之前,在环境中设置 FORCE_HYPERLINK=1(例如执行 setx FORCE_HYPERLINK 1,然后重新启动)。否则该部分会显示,但无法点击。

在 tmux 下,链接会自动跳过(tmux 会破坏 OSC-8);使用 --no-link 可禁用链接,其端口由 STICKIES_DASHBOARD_PORT 指定。


仪表板

stickies dashboard                 # http://127.0.0.1:7317/
stickies dashboard --open          # and open the browser
stickies dashboard --detach        # run in the background
stickies dashboard --link          # print an authorized URL for a browser
stickies dashboard --stop          # stop the running one

仅限环回访问(绝不会离开 127.0.0.1)。路由:/ 是笔记板,/board 是 Flow Board 看板, /graph 是计划依赖 DAG。一个仪表板涵盖你记录笔记的所有项目——标题栏中的切换器可在项目间切换,因此你无需为每个文件夹单独运行一个仪表板。

只有在你提出要求时才会启动。 安装 Stickies 不会在你的机器上启动服务。如果你希望每个 Claude 会话都自动启动一个服务,请设置 STICKIES_DASHBOARD_AUTOSTART=1 (无论如何,CI 和远程会话都会跳过)。

“未授权”? 这是预期行为,不是 Bug。仪表板提供你的笔记和规划文档,因此只会响应经过你授权的浏览器:

stickies dashboard --link          # → paste into your browser

……或者按住 Ctrl 并点击状态栏中的 Stickies 部分,该链接包含授权信息。打开链接会设置 Cookie;只有 Cookie 会持续有效。链接本身会在几分钟后过期,因此滚动记录中的旧链接会被拒绝——请获取新链接。想让授权一直有效?设置 STICKIES_DASHBOARD_AUTH=0。

默认情况下,无法在看板上编辑计划。 设置 STICKIES_BOARD_WRITEBACK=1 后,拖动卡片会重写 .planning/ROADMAP.md 中该阶段的 **Status:** 行,并在 .flow/roadmap-backups/ 中保留编辑前的副本。如果移动操作与阶段的计划复选框矛盾,则会拒绝操作,而不会写入。

遇到异常?stickies doctor 会一次性报告完整配置:正在运行的内容、所用端口,以及已安装的插件副本是否过时。输出中的主目录会缩写为 ~,方便你安全地粘贴分享。


来源

每条笔记都会记录写入位置——💻 终端、🖥️ 桌面或 📱 移动设备——因此你可以在仪表板上分辨出哪条笔记是你用手机随手记下的,哪条是 Claude 在你的桌面上记录的。这是每个入口根据自身已知信息尽力添加的标记;无需配置。


同步(基于 Git,选择启用)

通过你自己的 Git 仓库同步——不需要第三方服务,也无需新建账号。这是唯一会访问网络的功能,而且只有在你指定远程仓库后才会访问。

export STICKIES_SYNC_REPO=/path/to/your/stickies-data   # a git clone you control
stickies sync           # pull → merge (last-writer-wins) → export → commit (push: STICKIES_SYNC_PUSH=1)

# or offline, through any file channel:
stickies export -f notes.json
stickies import -f notes.json

每条笔记都会携带一个与机器无关的键,该键根据项目的 Git 远程仓库生成(SSH 和 HTTPS 地址会映射到同一个键),因此即使项目在不同机器上的检出路径不同,笔记也会随项目在机器间同步。合并以 updated_at 为依据,针对整个记录采用最后写入者获胜策略——无冲突且与顺序无关。

自动同步(同样需选择启用):在设置 STICKIES_SYNC_REPO 的同时设置 STICKIES_AUTO_SYNC=1,Stickies 就会在会话开始时拉取,并在回合记录笔记时提交。不设置该变量,就不会自动同步。

推送需要第三次选择启用。 记录笔记会将其提交到你的同步仓库,到此为止——设置 STICKIES_SYNC_PUSH=1 才会执行 git push。未设置时,笔记只会在本地进行版本管理,绝不会离开这台机器,因此另一台机器永远看不到这些笔记。推送会以裸命令执行(不指定远程仓库和 refspec),由你自己的 Git 配置决定推送位置;我们自行推导推送目标曾三次出错,其中一次把一个意外分支写入了共享的 main。


Repo 模式(云端 / 移动端)

该插件位于 ~/.claude,因此云端会话中没有它(iPhone app / claude.ai/code 会在临时 VM 中运行,只能访问它们克隆的仓库)。Repo 模式让 Stickies 也能在这些环境中工作——无需插件,也无需安装任何内容:

stickies init-repo         # run inside the repo you want notes in

这会提交一个独立、零依赖的引擎,并完成以下配置:

  • .stickies/notes.json — 存储文件,以及便于人类阅读的 .stickies/NOTES.md 镜像
  • .claude/settings.json — SessionStart hook(摘要)和 Stop hook(捕获 !!sticky)
  • CLAUDE.md — 向 Claude 说明 !!sticky 约定
  • .github/workflows/stickies-sync.yml — 将每个会话分支中的便笺汇总到 main

云端会话会写入各自的分支;随附的 Action 会将每条便笺合并到 main(取并集 + 以取消为准 + 去重)——每个仓库只需一个汇总后的看板,无需手动操作。本地插件和这里使用相同的 !!sticky 语法和相同的脱敏规则。

运行前有两点值得注意:便笺保存在该仓库中,因此其公开程度与仓库相同;如果某个步骤无法安全完成——最常见的是无法解析 .claude/settings.json,通常是因为尚未解决合并冲突——该文件会保持原样,命令会发出警告并以非零状态码退出,而不会替换它。


Sticky 模型

字段:id、content(≤ 500 个字符)、category、importance(P1/P2/P3)、 project_path(绝对路径,或全局时为 null)、tags[]、origin、时间戳、expires_at、 source(auto/manual)、status(active/stale/dismissed)。

默认 TTL: decision 为 30d · blocker 为 7d · preference 为 90d · context 为 14d · todo 永不过期 (任务完成后应将其取消,而不是等计时器到期)。正因如此,todo + global 才能构成真正的跨项目任务列表——未完成的任务不会悄然消失。

**存储:**所有项目共用一个 SQLite 文件,并按项目划分范围——若设置了 $STICKIES_DB,则使用该路径;否则使用 ~/.stickies/stickies.db。它使用 Node 内置的 SQLite(node:sqlite,因此要求 Node ≥ 22.5),所以插件没有编译依赖,并且在任何机器上都能适应 Claude Code 插件缓存副本。

**会话开始摘要:**完整显示 P1,P2 缩减至约 100 个字符,P3 显示数量。摘要通过 SessionStart hook 的 additionalContext 传递给 Claude——模型可以获取摘要,而无需写入任何文件。


Claude Desktop(仅 MCP)

Claude Desktop 支持 MCP 工具(stickies_write / stickies_read / stickies_dismiss),但不支持 hooks 或斜杠命令,因此不会在其中自动捕获或生成摘要——需要手动添加,并明确传入项目路径。在 claude_desktop_config.json 中配置(Windows 路径为 %APPDATA%\Claude\, macOS 路径为 ~/Library/Application Support/Claude/):

{
  "mcpServers": {
    "stickies": {
      "command": "node",
      "args": ["--disable-warning=ExperimentalWarning", "/abs/path/to/stickies/src/server.js"]
    }
  }
}

两个客户端读取同一个 ~/.stickies/stickies.db,因此在一个客户端中写入的便笺会直接显示在另一个客户端中,无需同步。


组件(参考)

组件文件用途
MCP 服务src/server.js工具 stickies_write / stickies_read / stickies_dismiss
SessionStart hooksrc/session-start.js通过 additionalContext 注入摘要(不接触任何文件)
Stop hook(自动捕获)src/auto-capture.js, src/directives.js保存 !!sticky … 指令,并进行去重
本地仪表板src/dashboard.js, src/dashboard-page.js环回 Web UI:便笺、/board、/graph
Flow Boardsrc/flow/根据 .planning/ROADMAP.md 生成 Kanban 看板;导出 BOARD.md;保存 .flow/ 快照
斜杠命令commands/stickies.md/stickies …
CLIsrc/cli.js为斜杠命令提供支持;也可直接使用
存储 / DBsrc/store.js, src/db.jsCRUD + 架构 + TTL + 去重 + 来源信息
同步src/sync.js, src/git-sync.js导出 / 导入 + git pull→merge→commit(push 需选择启用)
脱敏src/redact.js写入时清除内容中的机密信息
Repo 模式src/repo-mode/已提交的存储 + hooks + 用于云端 / 移动端的协调 Action

安装与开发

# use it:
claude plugin marketplace add dumbspacecookie/stickies
claude plugin install stickies@stickies --scope user     # restart Claude Code after

# work on it:
git clone https://github.com/dumbspacecookie/stickies
cd stickies
npm test        # 27 suites, 558 assertions, no network

在用户级别安装一次,即可在每个项目中使用;项目级范围通过每条笔记上的 project_path 设置,而不是通过单独安装到每个项目中。


Stickies 对比

为 Claude Code 提供持久化笔记的方案已经很多了。坦白说:

  • Claude Code 内置记忆 — 默认开启,由模型决定保存什么;不会过期,没有重要性级别,也没有跨项目全局记忆,只限于单个代码库。Stickies 是一种确定性、由人编写且会过期的替代方案,适合关闭了内置记忆的人。
  • 知识图谱 / 向量记忆服务(mem0、OpenMemory、server-memory、basic-memory)— 对你说过的所有内容进行模糊检索。用途不同。Stickies 存储的是一小组类型化内容,而不是嵌入索引。
  • 基于 Hook 的记忆插件 — 已有好几种,其中一些很出色。Stickies 的重点是上述这些:零轮次的 !!sticky 记录、按重要性分级注入、可跨项目显示的全局级别,以及根据计划生成的 Flow Board。

如果你想自动回忆全部历史记录,请使用其中一种。Stickies 适合用来保存简短、可信、会自动清理的列表,以及一块可随时用手机查看的看板。


MIT · 由 dumbspacecookie 构建

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。