Persistent, expiring, importance-graded sticky notes for Claude Code.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Persistent sticky notes for Claude Code. You pin a note β a decision, a blocker, a todo β
and it survives session resets, /clear, and closing the terminal. Next time you open Claude
in that project, the notes that still matter are handed back to it automatically.
Stickies is not a memory system, and it doesn't try to be one. It won't watch your session and decide what to remember. It's the opposite: a handful of notes you (or Claude, on request) write down on purpose, that expire on their own, and that you can read, prune, and trust. No vectors, no LLM summarization, no cloud. If you want an AI that auto-remembers everything, use Claude Code's built-in memory β it's on by default. Stickies is for when you want the twenty notes that actually matter, and you want them to expire.
You need Node β₯ 22.5 (node -v to check β it's for the built-in SQLite).
Restart Claude Code. That's it β install once, it works in every project. Now try it:
/stickies in Claude Code. Prefer a shell? npm i -g stickies-mcp
gives you a stickies command β then stickies list./stickies dashboard, then stickies dashboard --link for an
authorized URL (the board serves your notes, so it only answers a browser you've let in).Nothing leaves your machine. Everything is a local SQLite file on your disk until you turn on optional git sync.
Notes belong to the project, not the app you're in β one local database, scoped by project. What changes between surfaces is how much happens automatically.
| Surface | What you get | How |
|---|---|---|
| Terminal (Claude Code CLI) | β
the full loop β auto-capture, session-start digest, /stickies, statusline, dashboard | install the plugin |
| Claude Desktop (chat app) | β read / write via MCP tools (no hooks; pass the project path) | add the MCP server to claude_desktop_config.json |
| iPhone / web (Remote Control) | β full loop β the phone drives a session running on your machine | run claude remote-control on your machine |
| iPhone / web (cloud sandbox) | β full loop via repo-mode β notes committed into the repo | stickies init-repo (see Repo-mode) |
| Any MCP client | β read / write | it's on the MCP Registry as io.github.dumbspacecookie/stickies |
| Anywhere, read-only | β a glance at your board | Discord digest / board card |
!!sticky todo P1 :: fix the auth leak β and a Stop hook persists it. No extra tool
call, no extra turn, no tokens spent on a round-trip. (See Auto-capture.)If your project plans work in a .planning/ROADMAP.md (the GSD planning convention), Stickies also
gives you a live Kanban board derived straight from that roadmap β
To-Do / Doing / Done β with your stickies cross-linked onto the phases they're about. It's a
projection of your plan, derived on the fly, so it can never drift out of sync with it.
Four places to see the same board, pick whichever fits where you are:
| Where | Command | Good for |
|---|---|---|
| On GitHub / your phone | stickies board β commit BOARD.md | glancing at progress from a phone browser β BOARD.md renders natively on github.com, no server, no app |
| In a browser (local) | stickies dashboard β open /board | an interactive Kanban; /graph shows the plan's dependency DAG |
| In Discord | stickies board --discord | a push-glanceable card β progress, column counts, per-phase status |
| In your statusline | (see Statusline) | a tiny always-on π βΆ2 β1 β2 (doing / to-do / done) |
Each phase shows its progress (3/4), its wave, whether it shipped (β shipped 4/4) and whether
it's blocked (β). In a cloud/mobile session with no .planning/, a committed .flow/ snapshot
keeps the board self-sufficient β same repo-mode idea as the notes.
In Claude Code (the /stickies slash command):
| Command | Does |
|---|---|
/stickies | list this project's active notes (+ globals) |
/stickies all | list every project's notes |
/stickies add <text> | add a note by hand |
/stickies dismiss <id> | clear a note (a todo is "done" when dismissed) |
/stickies dashboard | open the local web board |
/stickies sync | sync through your git repo (if configured) |
In any shell (the CLI β same engine). Install it with npm i -g stickies-mcp to get the
stickies command on your PATH, then:
The lowest-friction way in: Claude captures a durable fact by writing one line in its reply, and a Stop hook persists it β no tool call, no extra turn.
category is required; importance defaults to P2; notes are deduped. global and #tags
are optional and may appear in any order. Without global, a note is scoped to the current
project; with it, the note surfaces in every project.
The hook scans the whole completed turn, so a directive written before Claude runs more tools still gets saved. Directives inside subagent replies are ignored. Secrets are scrubbed on write.
Point your Claude Code statusline at Stickies to get an always-on summary. It's opt-in β add
this to your settings.json:
(that uses the stickies command from npm i -g stickies-mcp)
By default it's compact β a count plus an urgency flag, e.g. π¨ 2!Β·19 (2 urgent of 19). It
deliberately does not print note text (so nothing sensitive lands in your prompt); set
STICKIES_STATUSLINE_VERBOSE=1 if you want the top note's text too.
Light / dark. A statusline can't repaint your terminal's background β it can only colour
its own text β so the theme's job is to stay legible on whatever background you already have.
The dark palette (default) uses the terminal's own bright colours; the light palette swaps in
darker truecolour values that survive a white background (tuned to clear WCAG AA text contrast).
Pick it with STICKIES_THEME=light (or dark) in your environment, or per-invocation with
stickies status --light / --theme dark. On macOS/Linux terminals that publish $COLORFGBG it also
autodetects; Windows Terminal / PowerShell don't set that variable, so on Windows set
STICKIES_THEME explicitly if you run a light terminal. The dashboard (/, /board, /graph)
is a real web page, so it gets a full βΎ/β toggle that flips the whole background β that's a
page it owns, unlike the statusline.
Clickable link. In a terminal that supports OSC-8 hyperlinks (Windows Terminal, iTerm2, WezTerm, Kitty, Ghostty) the segment becomes a Ctrl+click link that opens the dashboard. Two things it needs:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/stickies)<a href="https://allmcps.com/mcp/stickies"><img src="https://allmcps.com/api/badge/stickies?style=directory" alt="Stickies on AllMCPs" /></a>