{"_id":"stickies-mcp","_rev":"10-d46b4b086547b8c2c043b8f0f64664e1","name":"stickies-mcp","dist-tags":{"latest":"0.14.2"},"versions":{"0.9.0":{"name":"stickies-mcp","version":"0.9.0","author":{"name":"dumbspacecookie"},"license":"MIT","_id":"stickies-mcp@0.9.0","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"homepage":"https://github.com/dumbspacecookie/stickies","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"dist":{"shasum":"9316cad87b9ee4835452ccd1ddad0f6a575e95d7","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.9.0.tgz","fileCount":34,"integrity":"sha512-GJ1FGLoJPtNg2/yJBuAgF9gHeGLjbNpgvnlWZYSDPxRZYiTm4DYLWMgzwVtgYZ/NqOojtG7INT9OopZWN+LJMg==","signatures":[{"sig":"MEYCIQCUb9dMonN8i3P8U0v2mfO1uXWqpZbRKOJ7ZUzPSqI3xwIhAMvHXF+ivGDAv0kj4UOgUcH3U+IaPdzNHCpc7xMlajxq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171422},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"499398870d9b12e445f58ef290206b14a38ce405","mcpName":"io.github.dumbspacecookie/stickies","scripts":{"cli":"node --disable-warning=ExperimentalWarning src/cli.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","test":"node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","start":"node --disable-warning=ExperimentalWarning src/server.js","test:mcp":"node test/mcp-smoke.mjs","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs"},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"repository":{"url":"git+https://github.com/dumbspacecookie/stickies.git","type":"git"},"_npmVersion":"11.6.2","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.4.3","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stickies-mcp_0.9.0_1784154708543_0.2421857511059915","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"stickies-mcp","version":"0.10.0","author":{"name":"dumbspacecookie"},"license":"MIT","_id":"stickies-mcp@0.10.0","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"homepage":"https://github.com/dumbspacecookie/stickies","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"dist":{"shasum":"4d43a91b57b580f4f4c6718ddd0fe13d3684bc42","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.10.0.tgz","fileCount":34,"integrity":"sha512-t9R78HNRRwoymmdCiN5bYGlubEO+3liyVtLTHwTyTM7Tk/+MYCTF9TPDH77yCOeyO1O8YbnY3nuuBJJYZfGC4w==","signatures":[{"sig":"MEYCIQDyGNwNoP0g5DorwvsZyJ79NuTplQXbrsnc8njUl81GIAIhAMtc/Ccc3A9y0miuHLETOz4CP0WM6ZUZvhmhCDK2UGmq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173960},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"1163c2c52a09ce66b9fb6ba1b2633cb693877c6d","mcpName":"io.github.dumbspacecookie/stickies","scripts":{"cli":"node --disable-warning=ExperimentalWarning src/cli.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","test":"node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","start":"node --disable-warning=ExperimentalWarning src/server.js","test:mcp":"node test/mcp-smoke.mjs","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs"},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"repository":{"url":"git+https://github.com/dumbspacecookie/stickies.git","type":"git"},"_npmVersion":"11.6.2","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.4.3","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stickies-mcp_0.10.0_1784219807411_0.41670604571932746","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"stickies-mcp","version":"0.11.0","author":{"name":"dumbspacecookie"},"license":"MIT","_id":"stickies-mcp@0.11.0","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"homepage":"https://github.com/dumbspacecookie/stickies","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"dist":{"shasum":"3bd8ae93a2ace6f37d34b5d209058f3bb59969cd","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.11.0.tgz","fileCount":47,"integrity":"sha512-AhNJQ9nBkSV1yWWKKBCTCZT5a/46Wjk8dFBB/F5gSPz7ZpiJSusVRDiGzSeKWvlhl+XpQlK7U72uhAIyD2t/Bg==","signatures":[{"sig":"MEUCIQCV6aZKmTqPrr6MzEbalXj2i13dQfHSR+ty9mKWGppGxQIgJ5XYDsCCx4AtskH136MXIlmRtC/PPTUgjxtx9JZtmw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281087},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"130cbe63b556229f6f94cb702cfb55560e40c2a3","mcpName":"io.github.dumbspacecookie/stickies","scripts":{"cli":"node --disable-warning=ExperimentalWarning src/cli.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","test":"node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs && node --disable-warning=ExperimentalWarning test/flow-test.mjs && node --disable-warning=ExperimentalWarning test/flow-docs-test.mjs && node --disable-warning=ExperimentalWarning test/flow-phasedoc-test.mjs && node --disable-warning=ExperimentalWarning test/flow-graph-test.mjs && node --disable-warning=ExperimentalWarning test/flow-gsddoc-test.mjs && node --disable-warning=ExperimentalWarning test/relative-time-test.mjs && node --disable-warning=ExperimentalWarning test/cross-link-test.mjs && node --disable-warning=ExperimentalWarning test/flow-status-test.mjs && node --disable-warning=ExperimentalWarning test/statusline-test.mjs","start":"node --disable-warning=ExperimentalWarning src/server.js","test:mcp":"node test/mcp-smoke.mjs","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","test:crosslink":"node --disable-warning=ExperimentalWarning test/cross-link-test.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:flowstatus":"node --disable-warning=ExperimentalWarning test/flow-status-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:statusline":"node --disable-warning=ExperimentalWarning test/statusline-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:relativetime":"node --disable-warning=ExperimentalWarning test/relative-time-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs"},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"repository":{"url":"git+https://github.com/dumbspacecookie/stickies.git","type":"git"},"_npmVersion":"11.6.2","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.4.3","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stickies-mcp_0.11.0_1784253395016_0.9180895344389985","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"stickies-mcp","version":"0.11.1","author":{"name":"dumbspacecookie"},"license":"MIT","_id":"stickies-mcp@0.11.1","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"homepage":"https://github.com/dumbspacecookie/stickies","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"dist":{"shasum":"eee548da5ddb07922849c278c4f92ee3b3d90b37","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.11.1.tgz","fileCount":47,"integrity":"sha512-Q5W3i/hTHVSYUIBghLQmku00wOlXqqdbQ/F/AhCfEzFwMRcByIj7WpQ+z/woarG5yoz90r3FMDt/MHqNgLUxQQ==","signatures":[{"sig":"MEUCIQCzpNxDVgszymOPb6S5LXPej1YjwaG5IBV4YTXHvy5sMQIgSgRfyOgA9qZT77R8/yOcBf/FCNK0P60DurYp+Go9pb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":282503},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"745a82007ef6299138eea8818587192ccf34a597","mcpName":"io.github.dumbspacecookie/stickies","scripts":{"cli":"node --disable-warning=ExperimentalWarning src/cli.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","test":"node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs && node --disable-warning=ExperimentalWarning test/flow-test.mjs && node --disable-warning=ExperimentalWarning test/flow-docs-test.mjs && node --disable-warning=ExperimentalWarning test/flow-phasedoc-test.mjs && node --disable-warning=ExperimentalWarning test/flow-graph-test.mjs && node --disable-warning=ExperimentalWarning test/flow-gsddoc-test.mjs && node --disable-warning=ExperimentalWarning test/relative-time-test.mjs && node --disable-warning=ExperimentalWarning test/cross-link-test.mjs && node --disable-warning=ExperimentalWarning test/flow-status-test.mjs && node --disable-warning=ExperimentalWarning test/statusline-test.mjs","start":"node --disable-warning=ExperimentalWarning src/server.js","test:mcp":"node test/mcp-smoke.mjs","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","test:crosslink":"node --disable-warning=ExperimentalWarning test/cross-link-test.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:flowstatus":"node --disable-warning=ExperimentalWarning test/flow-status-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:statusline":"node --disable-warning=ExperimentalWarning test/statusline-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:relativetime":"node --disable-warning=ExperimentalWarning test/relative-time-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs"},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"repository":{"url":"git+https://github.com/dumbspacecookie/stickies.git","type":"git"},"_npmVersion":"11.6.2","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.4.3","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stickies-mcp_0.11.1_1784257538737_0.4012367475109002","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"stickies-mcp","version":"0.12.0","author":{"name":"dumbspacecookie"},"license":"MIT","_id":"stickies-mcp@0.12.0","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"homepage":"https://github.com/dumbspacecookie/stickies","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"dist":{"shasum":"ec7e6b4d520e6baff222d52dac569cdce9bb1a61","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.12.0.tgz","fileCount":52,"integrity":"sha512-uE90UYqONmT7copb6qSt9LsvHObL4CWienEkTuzq6XiFCkqkamPzZp7J1PfaKgbgJn+jafF+/8vv2xJx3D5qYQ==","signatures":[{"sig":"MEUCIQC9XrMSkUL/2NEUVj6+HZ1j2brh1wxoD3AmK8UEeMPiOQIgMBs0LiSMTFQbu8jGK98uVs/SYyIpJ+FiUMklVWzjsY8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332043},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"bab893c8a8580f7c898d77909d8975662ee166b1","mcpName":"io.github.dumbspacecookie/stickies","scripts":{"cli":"node --disable-warning=ExperimentalWarning src/cli.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","test":"node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/scratch-db-guard-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/due-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs && node --disable-warning=ExperimentalWarning test/flow-test.mjs && node --disable-warning=ExperimentalWarning test/flow-docs-test.mjs && node --disable-warning=ExperimentalWarning test/flow-phasedoc-test.mjs && node --disable-warning=ExperimentalWarning test/flow-graph-test.mjs && node --disable-warning=ExperimentalWarning test/flow-gsddoc-test.mjs && node --disable-warning=ExperimentalWarning test/relative-time-test.mjs && node --disable-warning=ExperimentalWarning test/cross-link-test.mjs && node --disable-warning=ExperimentalWarning test/flow-status-test.mjs && node --disable-warning=ExperimentalWarning test/statusline-test.mjs","start":"node --disable-warning=ExperimentalWarning src/server.js","test:mcp":"node test/mcp-smoke.mjs","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","test:crosslink":"node --disable-warning=ExperimentalWarning test/cross-link-test.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:flowstatus":"node --disable-warning=ExperimentalWarning test/flow-status-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:statusline":"node --disable-warning=ExperimentalWarning test/statusline-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:relativetime":"node --disable-warning=ExperimentalWarning test/relative-time-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs"},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"repository":{"url":"git+https://github.com/dumbspacecookie/stickies.git","type":"git"},"_npmVersion":"11.6.2","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.4.3","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stickies-mcp_0.12.0_1784321412549_0.5311480486127029","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"stickies-mcp","version":"0.12.1","author":{"name":"dumbspacecookie"},"license":"MIT","_id":"stickies-mcp@0.12.1","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"homepage":"https://github.com/dumbspacecookie/stickies","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"dist":{"shasum":"31dbe7517ad8cd9db4ea5a125b423ac3cea473c6","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.12.1.tgz","fileCount":55,"integrity":"sha512-ajGjlyZLK341wDtMEK/AHz7ZWF6jm+i2tybFEXREvEOWm4QjmWeP4G7nk+WyAFVU4RDPdqJgIyaZWuynHeLs2w==","signatures":[{"sig":"MEUCIQDU0QfBxAOCLujFSRz1sIljqKWc64wCYBWcIeT/M3ZOZgIgYr6Hmb2r42NfjjtnUc/UdMnbEX6vThdVNWDCHavd8ng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378513},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"650cb9470edd9df713be981899d338591c27ab67","mcpName":"io.github.dumbspacecookie/stickies","scripts":{"cli":"node --disable-warning=ExperimentalWarning src/cli.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","test":"node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/scratch-db-guard-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/due-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs && node --disable-warning=ExperimentalWarning test/mcp-quiet-test.mjs && node --disable-warning=ExperimentalWarning test/redaction-parity-test.mjs && node --disable-warning=ExperimentalWarning test/repo-mode-install-test.mjs && node --disable-warning=ExperimentalWarning test/flow-test.mjs && node --disable-warning=ExperimentalWarning test/flow-docs-test.mjs && node --disable-warning=ExperimentalWarning test/flow-phasedoc-test.mjs && node --disable-warning=ExperimentalWarning test/flow-graph-test.mjs && node --disable-warning=ExperimentalWarning test/flow-gsddoc-test.mjs && node --disable-warning=ExperimentalWarning test/relative-time-test.mjs && node --disable-warning=ExperimentalWarning test/cross-link-test.mjs && node --disable-warning=ExperimentalWarning test/flow-status-test.mjs && node --disable-warning=ExperimentalWarning test/statusline-test.mjs","start":"node --disable-warning=ExperimentalWarning src/server.js","test:mcp":"node test/mcp-smoke.mjs","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","test:crosslink":"node --disable-warning=ExperimentalWarning test/cross-link-test.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:flowstatus":"node --disable-warning=ExperimentalWarning test/flow-status-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:statusline":"node --disable-warning=ExperimentalWarning test/statusline-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:relativetime":"node --disable-warning=ExperimentalWarning test/relative-time-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs"},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"repository":{"url":"git+https://github.com/dumbspacecookie/stickies.git","type":"git"},"_npmVersion":"11.6.2","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.4.3","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stickies-mcp_0.12.1_1785365749054_0.9623347966385711","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"stickies-mcp","version":"0.13.0","author":{"name":"dumbspacecookie"},"license":"MIT","_id":"stickies-mcp@0.13.0","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"homepage":"https://github.com/dumbspacecookie/stickies","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"dist":{"shasum":"619921d0847ce141b8693c01b799d789040773f6","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.13.0.tgz","fileCount":62,"integrity":"sha512-4V4qwbPa1nbuqmzzrHSobGoFGNfMjVzkCwBHwscAF50PXqOhJHuBEhpAUuAXAGn+IYyTRHgIHlMM7sG36sn+6g==","signatures":[{"sig":"MEUCIHqfBBeSponyZZfJi3PAHvAv2obrZ7FP+y5ULi5fu4H/AiEAyD39YctBNlnXlBAvCn68LIRUdqPASKK2TAYwl4V0/2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":546489},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"36665413af3e3e4961373d590f1354fd8d325849","mcpName":"io.github.dumbspacecookie/stickies","scripts":{"cli":"node --disable-warning=ExperimentalWarning src/cli.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","test":"node --disable-warning=ExperimentalWarning test/devonly-guard-test.mjs && node --disable-warning=ExperimentalWarning test/template-literal-test.mjs && node --disable-warning=ExperimentalWarning test/imports-test.mjs && node --disable-warning=ExperimentalWarning test/nav-seam-test.mjs && node --disable-warning=ExperimentalWarning test/mcp-quiet-test.mjs && node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/untrusted-input-test.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/session-marker-test.mjs && node --disable-warning=ExperimentalWarning test/project-scope-unit-test.mjs && node --disable-warning=ExperimentalWarning test/project-scope-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-autostart-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-auth-test.mjs && node --disable-warning=ExperimentalWarning test/doctor-test.mjs && node --disable-warning=ExperimentalWarning test/board-client-test.mjs && node --disable-warning=ExperimentalWarning test/writeback-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/scratch-db-guard-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/path-identity-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/due-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs && node --disable-warning=ExperimentalWarning test/redaction-parity-test.mjs && node --disable-warning=ExperimentalWarning test/repo-mode-install-test.mjs && node --disable-warning=ExperimentalWarning test/flow-test.mjs && node --disable-warning=ExperimentalWarning test/flow-docs-test.mjs && node --disable-warning=ExperimentalWarning test/flow-phasedoc-test.mjs && node --disable-warning=ExperimentalWarning test/flow-graph-test.mjs && node --disable-warning=ExperimentalWarning test/flow-gsddoc-test.mjs && node --disable-warning=ExperimentalWarning test/relative-time-test.mjs && node --disable-warning=ExperimentalWarning test/cross-link-test.mjs && node --disable-warning=ExperimentalWarning test/flow-status-test.mjs && node --disable-warning=ExperimentalWarning test/statusline-test.mjs && node --disable-warning=ExperimentalWarning test/board-browser-test.mjs","start":"node --disable-warning=ExperimentalWarning src/server.js","test:mcp":"node test/mcp-smoke.mjs","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","test:crosslink":"node --disable-warning=ExperimentalWarning test/cross-link-test.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:flowstatus":"node --disable-warning=ExperimentalWarning test/flow-status-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:statusline":"node --disable-warning=ExperimentalWarning test/statusline-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:relativetime":"node --disable-warning=ExperimentalWarning test/relative-time-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs"},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"repository":{"url":"git+https://github.com/dumbspacecookie/stickies.git","type":"git"},"_npmVersion":"11.6.2","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.4.3","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stickies-mcp_0.13.0_1785443266250_0.9312520159927618","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"stickies-mcp","version":"0.14.0","author":{"name":"dumbspacecookie"},"license":"MIT","_id":"stickies-mcp@0.14.0","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"homepage":"https://github.com/dumbspacecookie/stickies","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"dist":{"shasum":"f6a501380e8e321a50a3ee355190d6ae68d1ad0e","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.14.0.tgz","fileCount":64,"integrity":"sha512-pSv/XgCJax9w53M56HpEE/OrPjQOTlTiy9Rp5GabOA966F/tuXzgUfx/PNZMOPh87VwQvBMfgVxaxq8cj5rVwA==","signatures":[{"sig":"MEUCIQDIihRrNEmt/g0qvY7kaLy4QprHWiYhgd+WVrjwHG6aEAIgaoOjQjeOfOhIjOq+P4EmsbvNhf9jU8QgG+iAcQgIOTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":715978},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"f071e8a4e937e69afacdfb7e555c44464e04c549","mcpName":"io.github.dumbspacecookie/stickies","scripts":{"cli":"node --disable-warning=ExperimentalWarning src/cli.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","gate":"node --disable-warning=ExperimentalWarning scripts/gate.mjs","test":"node --disable-warning=ExperimentalWarning test/devonly-guard-test.mjs && node --disable-warning=ExperimentalWarning test/template-literal-test.mjs && node --disable-warning=ExperimentalWarning test/imports-test.mjs && node --disable-warning=ExperimentalWarning test/nav-seam-test.mjs && node --disable-warning=ExperimentalWarning test/mcp-quiet-test.mjs && node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/untrusted-input-test.mjs && node --disable-warning=ExperimentalWarning test/injection-regression-test.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/session-marker-test.mjs && node --disable-warning=ExperimentalWarning test/project-scope-unit-test.mjs && node --disable-warning=ExperimentalWarning test/project-scope-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-autostart-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-auth-test.mjs && node --disable-warning=ExperimentalWarning test/doctor-test.mjs && node --disable-warning=ExperimentalWarning test/board-client-test.mjs && node --disable-warning=ExperimentalWarning test/writeback-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/scratch-db-guard-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/path-identity-test.mjs && node --disable-warning=ExperimentalWarning test/project-case-aggregate-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/due-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs && node --disable-warning=ExperimentalWarning test/redaction-parity-test.mjs && node --disable-warning=ExperimentalWarning test/engine-generated-test.mjs && node --disable-warning=ExperimentalWarning test/engine-reconcile-test.mjs && node --disable-warning=ExperimentalWarning test/engine-hardening-test.mjs && node --disable-warning=ExperimentalWarning test/repo-mode-install-test.mjs && node --disable-warning=ExperimentalWarning test/flow-test.mjs && node --disable-warning=ExperimentalWarning test/flow-docs-test.mjs && node --disable-warning=ExperimentalWarning test/flow-phasedoc-test.mjs && node --disable-warning=ExperimentalWarning test/flow-graph-test.mjs && node --disable-warning=ExperimentalWarning test/flow-snapshot-containment-test.mjs && node --disable-warning=ExperimentalWarning test/flow-gsddoc-test.mjs && node --disable-warning=ExperimentalWarning test/relative-time-test.mjs && node --disable-warning=ExperimentalWarning test/cross-link-test.mjs && node --disable-warning=ExperimentalWarning test/flow-status-test.mjs && node --disable-warning=ExperimentalWarning test/statusline-test.mjs && node --disable-warning=ExperimentalWarning test/board-browser-test.mjs && node --disable-warning=ExperimentalWarning test/sync-safety-test.mjs && node --disable-warning=ExperimentalWarning test/fenced-heading-test.mjs && node --disable-warning=ExperimentalWarning test/capture-guard-test.mjs && node --disable-warning=ExperimentalWarning test/frontmatter-rule-test.mjs && node --disable-warning=ExperimentalWarning test/doctor-diagnostics-test.mjs && node --disable-warning=ExperimentalWarning test/gate-test.mjs","start":"node --disable-warning=ExperimentalWarning src/server.js","prepare":"git config core.hooksPath .githooks || exit 0","test:mcp":"node test/mcp-smoke.mjs","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","test:auth":"node --disable-warning=ExperimentalWarning test/dashboard-auth-test.mjs","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:doctor":"node --disable-warning=ExperimentalWarning test/doctor-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","build:engine":"node --disable-warning=ExperimentalWarning scripts/build-engine.mjs","gate:release":"node --disable-warning=ExperimentalWarning scripts/gate.mjs --release","test:browser":"node --disable-warning=ExperimentalWarning test/board-browser-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","prepublishOnly":"node --disable-warning=ExperimentalWarning scripts/gate.mjs --release","test:autostart":"node --disable-warning=ExperimentalWarning test/dashboard-autostart-test.mjs","test:crosslink":"node --disable-warning=ExperimentalWarning test/cross-link-test.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:writeback":"node --disable-warning=ExperimentalWarning test/writeback-test.mjs","test:flowstatus":"node --disable-warning=ExperimentalWarning test/flow-status-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:statusline":"node --disable-warning=ExperimentalWarning test/statusline-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","gate:agents-done":"node --disable-warning=ExperimentalWarning scripts/gate.mjs --agents-done --no-tests","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:captureguard":"node --disable-warning=ExperimentalWarning test/capture-guard-test.mjs","test:projectscope":"node --disable-warning=ExperimentalWarning test/project-scope-test.mjs","test:relativetime":"node --disable-warning=ExperimentalWarning test/relative-time-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs"},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"repository":{"url":"git+https://github.com/dumbspacecookie/stickies.git","type":"git"},"_npmVersion":"11.6.2","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.4.3","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stickies-mcp_0.14.0_1785554422650_0.48425253619048125","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"stickies-mcp","version":"0.14.1","author":{"name":"dumbspacecookie"},"license":"MIT","_id":"stickies-mcp@0.14.1","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"homepage":"https://github.com/dumbspacecookie/stickies","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"dist":{"shasum":"1522af5f9af468a820ab69eaf4030a176a71b3e6","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.14.1.tgz","fileCount":64,"integrity":"sha512-64mQWBm1OQ2SASE828qzRkwXI3NZil0zullrWjtWOAZ23KNOFjZ3zxYcpFhg3OgpN9H3u+xRr1eaxYkrYs9vPQ==","signatures":[{"sig":"MEQCIEwh5E4e+P8SPVOFP1o14ziGgnC6Gg2Ij2Mb+1Mc+U2nAiBamKk++YOJGfn+wN9zAkc0zz2+ebkke+LjDiCxykHY6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":727497},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"d994a8e4b9be55e879e7cf6bc8cc329e39aafaa0","mcpName":"io.github.dumbspacecookie/stickies","scripts":{"cli":"node --disable-warning=ExperimentalWarning src/cli.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","gate":"node --disable-warning=ExperimentalWarning scripts/gate.mjs","test":"node --disable-warning=ExperimentalWarning test/devonly-guard-test.mjs && node --disable-warning=ExperimentalWarning test/template-literal-test.mjs && node --disable-warning=ExperimentalWarning test/imports-test.mjs && node --disable-warning=ExperimentalWarning test/nav-seam-test.mjs && node --disable-warning=ExperimentalWarning test/mcp-quiet-test.mjs && node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/untrusted-input-test.mjs && node --disable-warning=ExperimentalWarning test/injection-regression-test.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/session-marker-test.mjs && node --disable-warning=ExperimentalWarning test/project-scope-unit-test.mjs && node --disable-warning=ExperimentalWarning test/project-scope-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-autostart-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-auth-test.mjs && node --disable-warning=ExperimentalWarning test/doctor-test.mjs && node --disable-warning=ExperimentalWarning test/board-client-test.mjs && node --disable-warning=ExperimentalWarning test/writeback-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/scratch-db-guard-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/path-identity-test.mjs && node --disable-warning=ExperimentalWarning test/project-case-aggregate-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/due-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs && node --disable-warning=ExperimentalWarning test/redaction-parity-test.mjs && node --disable-warning=ExperimentalWarning test/engine-generated-test.mjs && node --disable-warning=ExperimentalWarning test/engine-reconcile-test.mjs && node --disable-warning=ExperimentalWarning test/engine-hardening-test.mjs && node --disable-warning=ExperimentalWarning test/repo-mode-install-test.mjs && node --disable-warning=ExperimentalWarning test/flow-test.mjs && node --disable-warning=ExperimentalWarning test/flow-docs-test.mjs && node --disable-warning=ExperimentalWarning test/flow-phasedoc-test.mjs && node --disable-warning=ExperimentalWarning test/flow-graph-test.mjs && node --disable-warning=ExperimentalWarning test/flow-snapshot-containment-test.mjs && node --disable-warning=ExperimentalWarning test/flow-gsddoc-test.mjs && node --disable-warning=ExperimentalWarning test/relative-time-test.mjs && node --disable-warning=ExperimentalWarning test/cross-link-test.mjs && node --disable-warning=ExperimentalWarning test/flow-status-test.mjs && node --disable-warning=ExperimentalWarning test/statusline-test.mjs && node --disable-warning=ExperimentalWarning test/board-browser-test.mjs && node --disable-warning=ExperimentalWarning test/sync-safety-test.mjs && node --disable-warning=ExperimentalWarning test/fenced-heading-test.mjs && node --disable-warning=ExperimentalWarning test/capture-guard-test.mjs && node --disable-warning=ExperimentalWarning test/frontmatter-rule-test.mjs && node --disable-warning=ExperimentalWarning test/doctor-diagnostics-test.mjs && node --disable-warning=ExperimentalWarning test/gate-test.mjs","start":"node --disable-warning=ExperimentalWarning src/server.js","prepare":"git config core.hooksPath .githooks || exit 0","test:mcp":"node test/mcp-smoke.mjs","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","test:auth":"node --disable-warning=ExperimentalWarning test/dashboard-auth-test.mjs","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:doctor":"node --disable-warning=ExperimentalWarning test/doctor-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","build:engine":"node --disable-warning=ExperimentalWarning scripts/build-engine.mjs","gate:release":"node --disable-warning=ExperimentalWarning scripts/gate.mjs --release","test:browser":"node --disable-warning=ExperimentalWarning test/board-browser-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","prepublishOnly":"node --disable-warning=ExperimentalWarning scripts/gate.mjs --release","test:autostart":"node --disable-warning=ExperimentalWarning test/dashboard-autostart-test.mjs","test:crosslink":"node --disable-warning=ExperimentalWarning test/cross-link-test.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:writeback":"node --disable-warning=ExperimentalWarning test/writeback-test.mjs","test:flowstatus":"node --disable-warning=ExperimentalWarning test/flow-status-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:statusline":"node --disable-warning=ExperimentalWarning test/statusline-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","gate:agents-done":"node --disable-warning=ExperimentalWarning scripts/gate.mjs --agents-done --no-tests","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:captureguard":"node --disable-warning=ExperimentalWarning test/capture-guard-test.mjs","test:projectscope":"node --disable-warning=ExperimentalWarning test/project-scope-test.mjs","test:relativetime":"node --disable-warning=ExperimentalWarning test/relative-time-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs"},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"repository":{"url":"git+https://github.com/dumbspacecookie/stickies.git","type":"git"},"_npmVersion":"11.6.2","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.4.3","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stickies-mcp_0.14.1_1785692320113_0.7040562741218042","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"stickies-mcp","version":"0.14.2","mcpName":"io.github.dumbspacecookie/stickies","description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","type":"module","author":{"name":"dumbspacecookie"},"license":"MIT","homepage":"https://github.com/dumbspacecookie/stickies","repository":{"type":"git","url":"git+https://github.com/dumbspacecookie/stickies.git"},"bin":{"stickies":"src/cli.js","stickies-mcp":"src/server.js"},"scripts":{"start":"node --disable-warning=ExperimentalWarning src/server.js","cli":"node --disable-warning=ExperimentalWarning src/cli.js","dashboard":"node --disable-warning=ExperimentalWarning src/dashboard.js","demo":"node --disable-warning=ExperimentalWarning demo/showcase.mjs","test":"node --disable-warning=ExperimentalWarning test/devonly-guard-test.mjs && node --disable-warning=ExperimentalWarning test/template-literal-test.mjs && node --disable-warning=ExperimentalWarning test/imports-test.mjs && node --disable-warning=ExperimentalWarning test/nav-seam-test.mjs && node --disable-warning=ExperimentalWarning test/mcp-quiet-test.mjs && node --disable-warning=ExperimentalWarning test/redteam.mjs && node --disable-warning=ExperimentalWarning test/untrusted-input-test.mjs && node --disable-warning=ExperimentalWarning test/injection-regression-test.mjs && node --disable-warning=ExperimentalWarning test/autocapture-test.mjs && node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs && node --disable-warning=ExperimentalWarning test/todo-global-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-test.mjs && node --disable-warning=ExperimentalWarning test/session-marker-test.mjs && node --disable-warning=ExperimentalWarning test/project-scope-unit-test.mjs && node --disable-warning=ExperimentalWarning test/project-scope-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-autostart-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-liveness-test.mjs && node --disable-warning=ExperimentalWarning test/dashboard-auth-test.mjs && node --disable-warning=ExperimentalWarning test/doctor-test.mjs && node --disable-warning=ExperimentalWarning test/board-client-test.mjs && node --disable-warning=ExperimentalWarning test/writeback-test.mjs && node --disable-warning=ExperimentalWarning test/sync-test.mjs && node --disable-warning=ExperimentalWarning test/git-sync-test.mjs && node --disable-warning=ExperimentalWarning test/scratch-db-guard-test.mjs && node --disable-warning=ExperimentalWarning test/project-key-test.mjs && node --disable-warning=ExperimentalWarning test/path-identity-test.mjs && node --disable-warning=ExperimentalWarning test/project-case-aggregate-test.mjs && node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs && node --disable-warning=ExperimentalWarning test/migration-test.mjs && node --disable-warning=ExperimentalWarning test/due-test.mjs && node --disable-warning=ExperimentalWarning test/resilience-test.mjs && node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs && node --disable-warning=ExperimentalWarning test/redaction-parity-test.mjs && node --disable-warning=ExperimentalWarning test/engine-generated-test.mjs && node --disable-warning=ExperimentalWarning test/engine-reconcile-test.mjs && node --disable-warning=ExperimentalWarning test/engine-hardening-test.mjs && node --disable-warning=ExperimentalWarning test/repo-mode-install-test.mjs && node --disable-warning=ExperimentalWarning test/flow-test.mjs && node --disable-warning=ExperimentalWarning test/flow-docs-test.mjs && node --disable-warning=ExperimentalWarning test/flow-phasedoc-test.mjs && node --disable-warning=ExperimentalWarning test/flow-graph-test.mjs && node --disable-warning=ExperimentalWarning test/flow-snapshot-containment-test.mjs && node --disable-warning=ExperimentalWarning test/flow-gsddoc-test.mjs && node --disable-warning=ExperimentalWarning test/relative-time-test.mjs && node --disable-warning=ExperimentalWarning test/cross-link-test.mjs && node --disable-warning=ExperimentalWarning test/flow-status-test.mjs && node --disable-warning=ExperimentalWarning test/statusline-test.mjs && node --disable-warning=ExperimentalWarning test/board-browser-test.mjs && node --disable-warning=ExperimentalWarning test/sync-safety-test.mjs && node --disable-warning=ExperimentalWarning test/fenced-heading-test.mjs && node --disable-warning=ExperimentalWarning test/capture-guard-test.mjs && node --disable-warning=ExperimentalWarning test/frontmatter-rule-test.mjs && node --disable-warning=ExperimentalWarning test/doctor-diagnostics-test.mjs && node --disable-warning=ExperimentalWarning test/gate-test.mjs","test:security":"node --disable-warning=ExperimentalWarning test/redteam.mjs","test:mcp":"node test/mcp-smoke.mjs","test:autocapture":"node --disable-warning=ExperimentalWarning test/autocapture-test.mjs","test:turnboundary":"node --disable-warning=ExperimentalWarning test/turn-boundary-test.mjs","test:todoglobal":"node --disable-warning=ExperimentalWarning test/todo-global-test.mjs","test:dashboard":"node --disable-warning=ExperimentalWarning test/dashboard-test.mjs","test:sync":"node --disable-warning=ExperimentalWarning test/sync-test.mjs","test:gitsync":"node --disable-warning=ExperimentalWarning test/git-sync-test.mjs","test:projectkey":"node --disable-warning=ExperimentalWarning test/project-key-test.mjs","test:autosync":"node --disable-warning=ExperimentalWarning test/auto-sync-test.mjs","test:migration":"node --disable-warning=ExperimentalWarning test/migration-test.mjs","test:resilience":"node --disable-warning=ExperimentalWarning test/resilience-test.mjs","test:notify":"node --disable-warning=ExperimentalWarning test/notify-test.mjs && node --disable-warning=ExperimentalWarning test/strip-claudemd-test.mjs","test:relativetime":"node --disable-warning=ExperimentalWarning test/relative-time-test.mjs","test:crosslink":"node --disable-warning=ExperimentalWarning test/cross-link-test.mjs","test:flowstatus":"node --disable-warning=ExperimentalWarning test/flow-status-test.mjs","test:statusline":"node --disable-warning=ExperimentalWarning test/statusline-test.mjs","build:engine":"node --disable-warning=ExperimentalWarning scripts/build-engine.mjs","gate":"node --disable-warning=ExperimentalWarning scripts/gate.mjs","gate:release":"node --disable-warning=ExperimentalWarning scripts/gate.mjs --release","gate:agents-done":"node --disable-warning=ExperimentalWarning scripts/gate.mjs --agents-done --no-tests","prepublishOnly":"node --disable-warning=ExperimentalWarning scripts/gate.mjs --release","prepare":"git config core.hooksPath .githooks || exit 0","test:projectscope":"node --disable-warning=ExperimentalWarning test/project-scope-test.mjs","test:autostart":"node --disable-warning=ExperimentalWarning test/dashboard-autostart-test.mjs","test:auth":"node --disable-warning=ExperimentalWarning test/dashboard-auth-test.mjs","test:doctor":"node --disable-warning=ExperimentalWarning test/doctor-test.mjs","test:writeback":"node --disable-warning=ExperimentalWarning test/writeback-test.mjs","test:browser":"node --disable-warning=ExperimentalWarning test/board-browser-test.mjs","test:captureguard":"node --disable-warning=ExperimentalWarning test/capture-guard-test.mjs"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","commander":"^13.1.0","zod":"^4.4.3"},"engines":{"node":">=22.5.0"},"gitHead":"ae9f7ea64ee50154303ddbb937540cca9612a341","_id":"stickies-mcp@0.14.2","bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-Vq7Lv197FzdSGpnUasaMv6P/L4ZtzPesfmqOdRhbwxSxvWusOWFxfsR0kFkto4cnQ5poMFwd9r+ykFwIT2R0dg==","shasum":"a283bdae42e3b050009c71964e3bb7623d6acc37","tarball":"https://registry.npmjs.org/stickies-mcp/-/stickies-mcp-0.14.2.tgz","fileCount":65,"unpackedSize":743819,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA9kjHGfmFtqcnHfrnibOdDFMYQmVOHiN+VqISeFXzJUAiEA5X4jPAwcuV7jB049Xocg5hP7gZRvErJR2I/s0nhJzWM="}]},"_npmUser":{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"},"directories":{},"maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stickies-mcp_0.14.2_1785772948610_0.8085843911200172"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-15T22:31:48.427Z","modified":"2026-08-03T16:02:28.993Z","0.9.0":"2026-07-15T22:31:48.691Z","0.10.0":"2026-07-16T16:36:47.554Z","0.11.0":"2026-07-17T01:56:35.156Z","0.11.1":"2026-07-17T03:05:38.884Z","0.12.0":"2026-07-17T20:50:12.715Z","0.12.1":"2026-07-29T22:55:49.256Z","0.13.0":"2026-07-30T20:27:46.395Z","0.14.0":"2026-08-01T03:20:22.839Z","0.14.1":"2026-08-02T17:38:40.262Z","0.14.2":"2026-08-03T16:02:28.857Z"},"bugs":{"url":"https://github.com/dumbspacecookie/stickies/issues"},"author":{"name":"dumbspacecookie"},"license":"MIT","homepage":"https://github.com/dumbspacecookie/stickies","repository":{"type":"git","url":"git+https://github.com/dumbspacecookie/stickies.git"},"description":"A persistent sticky-note layer for Claude Code, exposed as an MCP server.","maintainers":[{"name":"dumbspacecookie","email":"dumbspacecookie@gmail.com"}],"readme":"# Stickies (Claude Code plugin)\r\n\r\n[![npm](https://img.shields.io/npm/v/stickies-mcp?logo=npm&color=cb3837)](https://www.npmjs.com/package/stickies-mcp)\r\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.dumbspacecookie%2Fstickies-6f42c1)](https://registry.modelcontextprotocol.io)\r\n[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)\r\n[![Node](https://img.shields.io/node/v/stickies-mcp)](https://nodejs.org)\r\n\r\n**Persistent sticky notes for Claude Code.** You pin a note — a decision, a blocker, a todo —\r\nand it survives session resets, `/clear`, and closing the terminal. Next time you open Claude\r\nin that project, the notes that still matter are handed back to it automatically.\r\n\r\n**Stickies is not a memory system, and it doesn't try to be one.** It won't watch your session\r\nand decide what to remember. It's the opposite: a handful of notes *you* (or Claude, on request)\r\nwrite down on purpose, that expire on their own, and that you can read, prune, and trust. No\r\nvectors, no LLM summarization, no cloud. If you want an AI that auto-remembers everything, use\r\n[Claude Code's built-in memory](https://code.claude.com/docs/en/memory) — it's on by default.\r\nStickies is for when you want the twenty notes that actually matter, and you want them to expire.\r\n\r\n---\r\n\r\n## Quick start (60 seconds)\r\n\r\nYou need **Node ≥ 22.5** (`node -v` to check — it's for the built-in SQLite).\r\n\r\n```sh\r\nclaude plugin marketplace add dumbspacecookie/stickies\r\nclaude plugin install stickies@stickies --scope user\r\n```\r\n\r\nRestart Claude Code. That's it — install once, it works in every project. Now try it:\r\n\r\n- **Ask Claude to remember something:** *\"pin a P1 todo: fix the auth leak before release.\"*\r\n  Claude writes it down; it'll be waiting for you next session.\r\n- **See your notes:** type `/stickies` in Claude Code. Prefer a shell? `npm i -g stickies-mcp`\r\n  gives you a `stickies` command — then `stickies list`.\r\n- **Open the board in a browser:** `/stickies dashboard`, then `stickies dashboard --link` for an\r\n  authorized URL (the board serves your notes, so it only answers a browser you've let in).\r\n\r\nNothing leaves your machine. Everything is a local SQLite file on your disk until *you* turn on\r\noptional git sync.\r\n\r\n---\r\n\r\n## Where it works\r\n\r\nNotes belong to the **project**, not the app you're in — one local database, scoped by project.\r\nWhat changes between surfaces is how much happens automatically.\r\n\r\n| Surface | What you get | How |\r\n|---|---|---|\r\n| **Terminal** (Claude Code CLI) | ✅ the full loop — auto-capture, session-start digest, `/stickies`, statusline, dashboard | install the plugin |\r\n| **Claude Desktop** (chat app) | ✅ read / write via MCP tools (no hooks; pass the project path) | add the MCP server to `claude_desktop_config.json` |\r\n| **iPhone / web** (Remote Control) | ✅ full loop — the phone drives a session running on your machine | run `claude remote-control` on your machine |\r\n| **iPhone / web** (cloud sandbox) | ✅ full loop via **repo-mode** — notes committed into the repo | `stickies init-repo` (see [Repo-mode](#repo-mode-cloud--mobile)) |\r\n| **Any MCP client** | ✅ read / write | it's on the [MCP Registry](https://registry.modelcontextprotocol.io) as `io.github.dumbspacecookie/stickies` |\r\n| **Anywhere, read-only** | ✅ a glance at your board | Discord digest / board card |\r\n\r\n---\r\n\r\n## Two things here you won't find elsewhere\r\n\r\n- **Zero-turn capture.** Claude parks a note by writing one line *in a reply it was already\r\n  writing* — `!!sticky todo P1 :: fix the auth leak` — and a Stop hook persists it. No extra tool\r\n  call, no extra turn, no tokens spent on a round-trip. (See [Auto-capture](#auto-capture).)\r\n- **Importance-graded injection.** The session-start digest degrades *by importance*, not by\r\n  position: P1 in full, P2 truncated, P3 a bare count. It never just chops the list at N lines.\r\n\r\n---\r\n\r\n## Flow Board\r\n\r\nIf your project plans work in a `.planning/ROADMAP.md` (the GSD planning convention), Stickies also\r\ngives you a **live Kanban board** derived straight from that roadmap —\r\nTo-Do / Doing / Done — with your stickies cross-linked onto the phases they're about. It's a\r\nprojection of your plan, derived on the fly, so it can never drift out of sync with it.\r\n\r\n**Four places to see the same board, pick whichever fits where you are:**\r\n\r\n| Where | Command | Good for |\r\n|---|---|---|\r\n| **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 |\r\n| **In a browser** (local) | `stickies dashboard` → open `/board` | an interactive Kanban; `/graph` shows the plan's dependency DAG |\r\n| **In Discord** | `stickies board --discord` | a push-glanceable card — progress, column counts, per-phase status |\r\n| **In your statusline** | (see [Statusline](#statusline)) | a tiny always-on `📋 ▶2 ☐1 ✓2` (doing / to-do / done) |\r\n\r\n```sh\r\nstickies board                     # write BOARD.md in the project root (commit it → view on GitHub)\r\nstickies board --out docs/BOARD.md # write it somewhere else\r\nstickies board --discord           # post the board to your Discord webhook instead\r\n```\r\n\r\nEach phase shows its progress (`3/4`), its wave, whether it shipped (`✓ shipped 4/4`) and whether\r\nit's blocked (`⛔`). In a cloud/mobile session with no `.planning/`, a committed `.flow/` snapshot\r\nkeeps the board self-sufficient — same repo-mode idea as the notes.\r\n\r\n---\r\n\r\n## Everyday commands\r\n\r\n**In Claude Code** (the `/stickies` slash command):\r\n\r\n| Command | Does |\r\n|---|---|\r\n| `/stickies` | list this project's active notes (+ globals) |\r\n| `/stickies all` | list every project's notes |\r\n| `/stickies add <text>` | add a note by hand |\r\n| `/stickies dismiss <id>` | clear a note (a todo is \"done\" when dismissed) |\r\n| `/stickies dashboard` | open the local web board |\r\n| `/stickies sync` | sync through your git repo (if configured) |\r\n\r\n**In any shell** (the CLI — same engine). Install it with `npm i -g stickies-mcp` to get the\r\n`stickies` command on your PATH, then:\r\n\r\n```sh\r\nstickies list                          # active notes for this dir + globals\r\nstickies list --all                    # every project + globals\r\nstickies add \"ship the release\" -c todo -i P1     # add a P1 todo to this project\r\nstickies add \"pay invoice\" -c todo --due 2d       # a deadline (30m/2h/1d/1w/tomorrow/YYYY-MM-DD)\r\nstickies add \"call the bank\" -c todo -p global    # a global todo — shows up everywhere\r\nstickies dismiss <id> -r \"done\"        # clear it\r\nstickies dashboard --open              # local web board, open the browser\r\nstickies board                         # write a GitHub-viewable BOARD.md\r\nstickies status                        # the one-line statusline summary\r\nstickies sync                          # pull → merge → commit (push needs STICKIES_SYNC_PUSH=1)\r\nstickies notify                        # push the open list to Discord\r\nstickies init-repo                     # make notes work in cloud/mobile (repo-mode)\r\n```\r\n\r\n---\r\n\r\n## Auto-capture\r\n\r\nThe lowest-friction way in: Claude captures a durable fact by writing one line in its reply, and\r\na Stop hook persists it — no tool call, no extra turn.\r\n\r\n```\r\n!!sticky <category> [P1|P2|P3] [global] [#tag ...] :: <content>\r\n!!sticky decision P1 #storage :: storage is node:sqlite, no native deps\r\n!!sticky todo P1 global :: cut the npm release\r\n```\r\n\r\n`category` is required; importance defaults to **P2**; notes are deduped. `global` and `#tags`\r\nare optional and may appear in any order. Without `global`, a note is scoped to the current\r\nproject; with it, the note surfaces in **every** project.\r\n\r\nThe hook scans the whole completed turn, so a directive written *before* Claude runs more tools\r\nstill gets saved. Directives inside subagent replies are ignored. Secrets are scrubbed on write.\r\n\r\n---\r\n\r\n## Statusline\r\n\r\nPoint your Claude Code statusline at Stickies to get an always-on summary. It's **opt-in** — add\r\nthis to your `settings.json`:\r\n\r\n```json\r\n{ \"statusLine\": { \"type\": \"command\", \"command\": \"stickies status\" } }\r\n```\r\n\r\n(that uses the `stickies` command from `npm i -g stickies-mcp`)\r\n\r\nBy default it's compact — a count plus an urgency flag, e.g. `🟨 2!·19` (2 urgent of 19). It\r\ndeliberately does **not** print note text (so nothing sensitive lands in your prompt); set\r\n`STICKIES_STATUSLINE_VERBOSE=1` if you want the top note's text too.\r\n\r\n**Light / dark.** A statusline can't repaint your terminal's background — it can only colour\r\nits own text — so the theme's job is to stay legible on whatever background you already have.\r\nThe dark palette (default) uses the terminal's own bright colours; the light palette swaps in\r\ndarker truecolour values that survive a white background (tuned to clear WCAG AA text contrast).\r\nPick it with **`STICKIES_THEME=light`** (or `dark`) in your environment, or per-invocation with\r\n**`stickies status --light`** / `--theme dark`. On macOS/Linux terminals that publish `$COLORFGBG` it also\r\nautodetects; **Windows Terminal / PowerShell don't set that variable**, so on Windows set\r\n`STICKIES_THEME` explicitly if you run a light terminal. The dashboard (`/`, `/board`, `/graph`)\r\nis a real web page, so *it* gets a full ☾/☀ toggle that flips the whole background — that's a\r\npage it owns, unlike the statusline.\r\n\r\n**Clickable link.** In a terminal that supports OSC-8 hyperlinks (Windows Terminal, iTerm2,\r\nWezTerm, Kitty, Ghostty) the segment becomes a **Ctrl+click link that opens the dashboard**. Two\r\nthings it needs:\r\n\r\n- A **dashboard must actually be running** — `stickies dashboard --detach`. The segment is a\r\n  link *only* while one is; with none running you still get the counts, just not underlined and\r\n  not clickable. That is deliberate: a link to a closed port looks alive, fails only when you\r\n  click it, and blames your browser rather than us. Autostart is off unless you ask for it, so\r\n  **no link is the default state on a fresh install**. If the segment is not clickable and you\r\n  expected it to be, `stickies doctor` says which of these two it is.\r\n- On **Windows Terminal**, Claude Code doesn't auto-detect hyperlink support, so set\r\n  `FORCE_HYPERLINK=1` in your environment *before launching Claude Code* (e.g.\r\n  `setx FORCE_HYPERLINK 1`, then restart). Without it the segment renders but isn't clickable.\r\n\r\nThe link auto-skips under tmux (which mangles OSC-8), disables with `--no-link`, and its port\r\nfollows `STICKIES_DASHBOARD_PORT`.\r\n\r\n---\r\n\r\n## Dashboard\r\n\r\n```sh\r\nstickies dashboard                 # http://127.0.0.1:7317/\r\nstickies dashboard --open          # and open the browser\r\nstickies dashboard --detach        # run in the background\r\nstickies dashboard --link          # print an authorized URL for a browser\r\nstickies dashboard --stop          # stop the running one\r\n```\r\n\r\nLoopback only (never leaves `127.0.0.1`). Routes: `/` the notes board, `/board` the Flow Board\r\nKanban, `/graph` the plan dependency DAG. One dashboard covers **every** project you take notes\r\nin — the header switcher moves between them, so you don't run one per folder.\r\n\r\n**It only starts when you ask.** Installing Stickies does not put a server on your machine. If\r\nyou'd rather each Claude session bring one up automatically, set `STICKIES_DASHBOARD_AUTOSTART=1`\r\n(skipped in CI and remote sessions regardless).\r\n\r\n**\"Not authorized\"?** That's expected, not a bug. The dashboard serves your notes and planning\r\ndocuments, so it answers only a browser you've authorized:\r\n\r\n```sh\r\nstickies dashboard --link          # → paste into your browser\r\n```\r\n\r\n…or Ctrl+click the Stickies segment in your statusline, which carries one. Opening the link sets\r\na cookie; that's what lasts. Links themselves expire after a few minutes, so an old one from your\r\nscrollback will be refused — get a fresh one. Prefer it open? `STICKIES_DASHBOARD_AUTH=0`.\r\n\r\n**Editing the plan from the board** is off by default. With `STICKIES_BOARD_WRITEBACK=1`, dragging\r\na card rewrites that phase's `**Status:**` line in `.planning/ROADMAP.md`, keeping a pre-edit copy\r\nin `.flow/roadmap-backups/`. A move that contradicts the phase's plan checkboxes is refused rather\r\nthan written.\r\n\r\nSomething not behaving? `stickies doctor` reports the whole setup in one shot — what's running,\r\non which port, whether the installed plugin copy is stale — with your home directory abbreviated\r\nto `~` so the output is safe to paste.\r\n\r\n---\r\n\r\n## Provenance\r\n\r\nEvery note records **where it was written** — 💻 terminal, 🖥️ desktop, or 📱 mobile — so on the\r\ndashboard you can tell the note you jotted from your phone from the one Claude captured at your\r\ndesk. It's a best-effort stamp each entry point knows about itself; no configuration needed.\r\n\r\n---\r\n\r\n## Sync (git-backed, opt-in)\r\n\r\nSync through a git repo **you own** — no third-party service, no new account. This is the only\r\nfeature that ever touches the network, and only once you point it at a remote.\r\n\r\n```sh\r\nexport STICKIES_SYNC_REPO=/path/to/your/stickies-data   # a git clone you control\r\nstickies sync           # pull → merge (last-writer-wins) → export → commit (push: STICKIES_SYNC_PUSH=1)\r\n\r\n# or offline, through any file channel:\r\nstickies export -f notes.json\r\nstickies import -f notes.json\r\n```\r\n\r\nEach note carries a machine-independent key derived from the project's **git remote** (SSH and\r\nHTTPS collapse to the same key), so a project's notes follow you between machines even when the\r\ncheckout lives at a different path on each. Merge is whole-record last-writer-wins by `updated_at`\r\n— conflict-free and order-independent.\r\n\r\n**Auto-sync** (also opt-in): set `STICKIES_AUTO_SYNC=1` alongside `STICKIES_SYNC_REPO` and Stickies\r\npulls on session start and **commits** when a turn captures a note. Unset, nothing syncs on its own.\r\n\r\n**Pushing is a third opt-in.** Capturing a note commits to your sync repo and stops there —\r\n`STICKIES_SYNC_PUSH=1` is what makes it `git push` as well. Without it your notes are versioned\r\nlocally and **never leave the machine**, so a second machine will never see them. The push runs\r\nbare (no remote, no refspec) so your own git config decides where it goes; deriving that\r\nourselves went wrong three separate ways, once writing a stray branch onto a shared `main`.\r\n\r\n---\r\n\r\n## Repo-mode (cloud / mobile)\r\n\r\nThe plugin lives in `~/.claude`, so it doesn't exist in a cloud session (the iPhone app /\r\nclaude.ai/code run in an ephemeral VM that only sees the repo they cloned). **Repo-mode** makes\r\nStickies work there — no plugin, nothing to install:\r\n\r\n```sh\r\nstickies init-repo         # run inside the repo you want notes in\r\n```\r\n\r\nThat commits a self-contained, zero-dependency engine and wires it up:\r\n\r\n- `.stickies/notes.json` — the store, plus a human-readable `.stickies/NOTES.md` mirror\r\n- `.claude/settings.json` — a SessionStart hook (the digest) and a Stop hook (`!!sticky` capture)\r\n- `CLAUDE.md` — teaches Claude the `!!sticky` convention\r\n- `.github/workflows/stickies-sync.yml` — converges notes from every session branch into `main`\r\n\r\nCloud sessions write to their own branch; the bundled Action merges each note into `main`\r\n(union + dismiss-wins + dedupe) — one converged board per repo, hands-off. Same `!!sticky` grammar\r\nand same redaction as the local plugin.\r\n\r\nTwo things worth knowing before you run it: your notes live **in that repo**, so they are as\r\npublic as it is; and if a step can't be done safely — an unparseable `.claude/settings.json`,\r\nmost often an unresolved merge conflict — that file is left alone and the command warns and\r\nexits non-zero rather than replacing it.\r\n\r\n---\r\n\r\n## The sticky model\r\n\r\nFields: `id`, `content` (≤ 500 chars), `category`, `importance` (P1/P2/P3),\r\n`project_path` (absolute, or null for global), `tags[]`, `origin`, timestamps, `expires_at`,\r\n`source` (auto/manual), `status` (active/stale/dismissed).\r\n\r\n**Default TTLs:** decision 30d · blocker 7d · preference 90d · context 14d · **todo never expires**\r\n(a task is done when you dismiss it, not when a timer runs out). That last one is what makes\r\n`todo` + `global` a real cross-project task list — an unfinished task can't silently vanish.\r\n\r\n**Storage:** one SQLite file for all projects, scoped per-project — `$STICKIES_DB` if set, else\r\n`~/.stickies/stickies.db`. It uses Node's **built-in** SQLite (`node:sqlite`, hence Node ≥ 22.5),\r\nso the plugin has zero compiled dependencies and survives Claude Code's plugin-cache copy on any\r\nmachine.\r\n\r\n**Session-start digest:** P1 in full, P2 to ~100 chars, P3 a count. It's handed to Claude through\r\nthe SessionStart hook's `additionalContext` — it reaches the model **without writing to any file**.\r\n\r\n---\r\n\r\n## Claude Desktop (MCP only)\r\n\r\nClaude Desktop supports the MCP tools (`stickies_write` / `stickies_read` / `stickies_dismiss`) but\r\nnot hooks or the slash command, so there's no auto-capture or digest there — add it and pass the\r\nproject path explicitly. In `claude_desktop_config.json` (`%APPDATA%\\Claude\\` on Windows,\r\n`~/Library/Application Support/Claude/` on macOS):\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"stickies\": {\r\n      \"command\": \"node\",\r\n      \"args\": [\"--disable-warning=ExperimentalWarning\", \"/abs/path/to/stickies/src/server.js\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nBoth clients read the same `~/.stickies/stickies.db`, so a note written in one shows up in the\r\nother with no sync step.\r\n\r\n---\r\n\r\n## Components (reference)\r\n\r\n| Component | File | Purpose |\r\n|---|---|---|\r\n| MCP server | `src/server.js` | tools `stickies_write` / `stickies_read` / `stickies_dismiss` |\r\n| SessionStart hook | `src/session-start.js` | injects the digest via `additionalContext` (touches no file) |\r\n| Stop hook (auto-capture) | `src/auto-capture.js`, `src/directives.js` | persists `!!sticky …` directives, deduped |\r\n| Local dashboard | `src/dashboard.js`, `src/dashboard-page.js` | loopback web UI: notes, `/board`, `/graph` |\r\n| Flow Board | `src/flow/` | derive the Kanban from `.planning/ROADMAP.md`; `BOARD.md` export; `.flow/` snapshot |\r\n| Slash command | `commands/stickies.md` | `/stickies …` |\r\n| CLI | `src/cli.js` | backs the slash command; usable directly |\r\n| Store / DB | `src/store.js`, `src/db.js` | CRUD + schema + TTL + dedup + provenance |\r\n| Sync | `src/sync.js`, `src/git-sync.js` | export/import + git pull→merge→commit (push is opt-in) |\r\n| Redaction | `src/redact.js` | scrubs secrets from content on write |\r\n| Repo-mode | `src/repo-mode/` | committed store + hooks + reconcile Action for cloud/mobile |\r\n\r\n---\r\n\r\n## Install & develop\r\n\r\n```sh\r\n# use it:\r\nclaude plugin marketplace add dumbspacecookie/stickies\r\nclaude plugin install stickies@stickies --scope user     # restart Claude Code after\r\n\r\n# work on it:\r\ngit clone https://github.com/dumbspacecookie/stickies\r\ncd stickies\r\nnpm test        # 27 suites, 558 assertions, no network\r\n```\r\n\r\nInstall once at user scope and it's in every project; per-project scoping is by `project_path` on\r\neach note, not a per-project install.\r\n\r\n---\r\n\r\n## How Stickies compares\r\n\r\nPersistent-notes-for-Claude-Code is a crowded space. Honestly:\r\n\r\n- **[Claude Code's built-in memory](https://code.claude.com/docs/en/memory)** — on by default, the\r\n  model decides what to save, no expiry, no importance tiers, no cross-project globals, per-repo\r\n  only. Stickies is the deterministic, human-authored, *expiring* alternative for people who turned\r\n  that off.\r\n- **Knowledge-graph / vector memory servers** (mem0, OpenMemory, `server-memory`, basic-memory) —\r\n  fuzzy retrieval over everything you've said. Different job. Stickies stores a small typed set,\r\n  not an embedding index.\r\n- **Hook-based memory plugins** — several exist, some excellent. Stickies' narrow bets are the ones\r\n  above: zero-turn `!!sticky` capture, importance-graded injection, a global tier that surfaces\r\n  across projects, and a Flow Board derived from your plan.\r\n\r\nIf you want auto-recall of your whole history, use one of those. Stickies is for a short,\r\ntrustworthy, self-pruning list — and a board you can glance at from your phone.\r\n\r\n---\r\n\r\nMIT · built by [dumbspacecookie](https://github.com/dumbspacecookie)\r\n","readmeFilename":"README.md"}