threadnote 0.3.7 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -15
- package/dist/mcp_server.cjs +4086 -1001
- package/dist/threadnote.cjs +1079 -90
- package/docs/agent-instructions.md +59 -5
- package/docs/migration.md +26 -10
- package/docs/rollout.md +1 -1
- package/docs/security.md +5 -4
- package/docs/share.md +151 -0
- package/docs/troubleshooting.md +11 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
# Threadnote
|
|
2
2
|
|
|
3
|
-
`threadnote` is a safe local workflow for using OpenViking as shared, agent-neutral context for development work.
|
|
3
|
+
`threadnote` is a safe local workflow for using [OpenViking](https://openviking.ai/) as shared, agent-neutral context for development work.
|
|
4
4
|
It is intentionally scoped to curated docs, memories, skills, and handoffs. It is not a source-navigation replacement,
|
|
5
5
|
and it does not index whole repositories by default.
|
|
6
6
|
|
|
7
7
|
## Real-World Uses
|
|
8
8
|
|
|
9
9
|
**Want to continue work in a fresh agent session?**
|
|
10
|
-
`threadnote install` adds user-level Codex, Claude, and
|
|
10
|
+
`threadnote install` adds user-level Codex, Claude, Cursor, and Copilot instructions so new agents automatically recall recent handoffs and relevant memories before they start changing code.
|
|
11
|
+
|
|
12
|
+
**Working on a feature branch over several sessions?**
|
|
13
|
+
Agents recall the branch handoff for current status, then recall durable feature memories for the design, decisions,
|
|
14
|
+
interfaces, and gotchas behind the feature. As useful implementation knowledge appears, agents update the durable feature
|
|
15
|
+
memory instead of leaving everything buried in transient handoffs.
|
|
11
16
|
|
|
12
17
|
**Implemented a feature a while ago and need to pick it up again?**
|
|
13
18
|
Ask the agent to recall the feature, branch, or repo. Threadnote returns auditable `viking://` pointers that the agent can read before deciding what still matters.
|
|
14
19
|
|
|
15
|
-
**Switching between Codex, Claude, and
|
|
20
|
+
**Switching between Codex, Claude, Cursor, and Copilot?**\
|
|
16
21
|
Install the MCP adapter for each agent you use. The user-level instructions tell agents to store a handoff before they pause, so the next agent can search the same local memory layer instead of reconstructing context
|
|
17
22
|
from chat history.
|
|
18
23
|
|
|
@@ -49,6 +54,16 @@ Active memories with the same project/topic write to a stable lifecycle path, so
|
|
|
49
54
|
version instead of creating another timestamped note. Untagged memories still use timestamped files when you want a
|
|
50
55
|
historical trail.
|
|
51
56
|
|
|
57
|
+
For feature branches, keep a durable feature memory and an active handoff side by side with the same project/topic:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
threadnote remember --kind durable --project my-repo --topic feature-x --text "Feature knowledge: ..."
|
|
61
|
+
threadnote handoff --project my-repo --topic feature-x --task "Current status for feature X"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Agents should update the durable feature memory when valuable implementation knowledge changes, and update the handoff
|
|
65
|
+
when current status, tests, blockers, or next steps change.
|
|
66
|
+
|
|
52
67
|
Use `archive` when an old handoff is useful for provenance but should stop being treated as current working context:
|
|
53
68
|
|
|
54
69
|
```bash
|
|
@@ -72,11 +87,12 @@ refactor, what an on-call investigation concluded, which workaround was verified
|
|
|
72
87
|
memories should be compacted. Putting that history into instruction files makes them noisy, stale, and expensive to load
|
|
73
88
|
into every context window.
|
|
74
89
|
|
|
75
|
-
Threadnote keeps that moving layer local, searchable, and shared across agents. Agents recall only the relevant
|
|
76
|
-
handoffs, and skill/resource pointers when they need them, while the source files stay authoritative
|
|
90
|
+
Threadnote keeps that moving layer local, searchable, and shared across agents. Agents recall only the relevant durable
|
|
91
|
+
feature memories, handoffs, and skill/resource pointers when they need them, while the source files stay authoritative
|
|
92
|
+
for project rules.
|
|
77
93
|
|
|
78
|
-
The split is simple: put durable repo policy in `CLAUDE.md`/`AGENTS.md`; put task history, handoffs,
|
|
79
|
-
facts, and local cross-agent memory in Threadnote.
|
|
94
|
+
The split is simple: put durable repo policy in `CLAUDE.md`/`AGENTS.md`; put feature knowledge, task history, handoffs,
|
|
95
|
+
personal workflow facts, and local cross-agent memory in Threadnote.
|
|
80
96
|
|
|
81
97
|
## Safety Model
|
|
82
98
|
|
|
@@ -87,8 +103,9 @@ facts, and local cross-agent memory in Threadnote.
|
|
|
87
103
|
- Redaction: known config files such as `.mcp.json`, `config.toml`, and settings JSON are copied through a redactor
|
|
88
104
|
before import.
|
|
89
105
|
- Secret scanning: candidate files are skipped if common token or private-key patterns remain after redaction.
|
|
90
|
-
- User instructions: `install` upserts
|
|
91
|
-
`~/.cursor/rules/threadnote.md` without replacing existing
|
|
106
|
+
- User instructions: `install` upserts managed Threadnote guidance in `~/.codex/AGENTS.md`, `~/.claude/CLAUDE.md`,
|
|
107
|
+
`~/.cursor/rules/threadnote.md`, and `~/.copilot/instructions/threadnote.instructions.md` without replacing existing
|
|
108
|
+
personal instructions.
|
|
92
109
|
- Agent config changes are explicit: `mcp-install` prints commands and snippets by default; use `--apply` to run them.
|
|
93
110
|
|
|
94
111
|
## Install
|
|
@@ -145,7 +162,7 @@ threadnote update --check
|
|
|
145
162
|
threadnote update --dry-run
|
|
146
163
|
```
|
|
147
164
|
|
|
148
|
-
After updating, restart Cursor, Codex, Claude, or open a fresh agent session so MCP tools reload.
|
|
165
|
+
After updating, restart Cursor, Copilot, Codex, Claude, or open a fresh agent session so MCP tools reload.
|
|
149
166
|
|
|
150
167
|
Some releases include post-update memory migrations. `threadnote update` runs the new package's migration prompt after
|
|
151
168
|
repair, explains what will change, and asks before applying it. Use `threadnote update --yes` for unattended local
|
|
@@ -167,6 +184,7 @@ Dry-run examples:
|
|
|
167
184
|
threadnote mcp-install codex
|
|
168
185
|
threadnote mcp-install claude
|
|
169
186
|
threadnote mcp-install cursor
|
|
187
|
+
threadnote mcp-install copilot
|
|
170
188
|
```
|
|
171
189
|
|
|
172
190
|
Apply after review:
|
|
@@ -175,11 +193,14 @@ Apply after review:
|
|
|
175
193
|
threadnote mcp-install codex --apply
|
|
176
194
|
threadnote mcp-install claude --apply
|
|
177
195
|
threadnote mcp-install cursor --apply
|
|
196
|
+
threadnote mcp-install copilot --apply
|
|
178
197
|
```
|
|
179
198
|
|
|
180
199
|
Claude installs at `user` scope by default so the same OpenViking MCP server is available from any repo or worktree.
|
|
181
200
|
Use `--scope local` or `--scope project` only when you intentionally want repo-scoped Claude MCP config.
|
|
182
201
|
Cursor installs by updating the global `~/.cursor/mcp.json` file.
|
|
202
|
+
Copilot installs by updating the VS Code user-profile `mcp.json` file. Set `THREADNOTE_COPILOT_MCP_CONFIG` if you use a
|
|
203
|
+
custom VS Code profile or want to test against a temporary file.
|
|
183
204
|
|
|
184
205
|
If the package or checkout that originally installed `threadnote` has moved, run repair:
|
|
185
206
|
|
|
@@ -199,6 +220,7 @@ claude mcp add threadnote -- threadnote-mcp-server
|
|
|
199
220
|
```
|
|
200
221
|
|
|
201
222
|
Cursor uses the equivalent entry in `~/.cursor/mcp.json`.
|
|
223
|
+
Copilot uses the VS Code MCP `servers` entry in the user-profile `mcp.json`.
|
|
202
224
|
|
|
203
225
|
If a future OpenViking build exposes a healthy native endpoint, install it explicitly:
|
|
204
226
|
|
|
@@ -255,8 +277,8 @@ This is it! Start working with your agents as usual. The agent will automaticall
|
|
|
255
277
|
`--no-start` to skip the health check.
|
|
256
278
|
- `update`: updates the published Threadnote package, then runs `repair` so shims and MCP config point at the new
|
|
257
279
|
version.
|
|
258
|
-
- `repair`: fixes install/config/shim/manifest/server health issues and rewrites Codex/Claude/Cursor MCP configs
|
|
259
|
-
current checkout.
|
|
280
|
+
- `repair`: fixes install/config/shim/manifest/server health issues and rewrites Codex/Claude/Cursor/Copilot MCP configs
|
|
281
|
+
from the current checkout.
|
|
260
282
|
- `start`: starts `openviking-server` on `127.0.0.1:1933`.
|
|
261
283
|
- `stop`: stops the detached server pid or macOS LaunchAgent.
|
|
262
284
|
- `uninstall`: removes Threadnote shims, MCP config, launchd config, and managed user instructions. Memories are
|
|
@@ -265,7 +287,8 @@ This is it! Start working with your agents as usual. The agent will automaticall
|
|
|
265
287
|
- `seed`: imports curated repo guidance and docs from the manifest.
|
|
266
288
|
- `seed-skills`: imports global and repo-local `SKILL.md` files as a searchable resource catalog so agents can discover
|
|
267
289
|
reusable workflow guidance. Use `seed-skills --native` only after configuring a working VLM provider.
|
|
268
|
-
- `mcp-install codex|claude|cursor`: installs or prints OpenViking MCP configuration for Codex, Claude,
|
|
290
|
+
- `mcp-install codex|claude|cursor|copilot`: installs or prints OpenViking MCP configuration for Codex, Claude, Cursor,
|
|
291
|
+
or GitHub Copilot in VS Code.
|
|
269
292
|
- `remember`: stores a durable memory. Use `--replace <uri>` to store an updated memory and remove a superseded one
|
|
270
293
|
after the new memory succeeds. Use `--kind`, `--project`, and `--topic` to store lifecycle-aware current knowledge.
|
|
271
294
|
- `migrate-memories`: migrates legacy session-only `MEMORY` and `HANDOFF` records into durable memory files. Run
|
|
@@ -283,6 +306,9 @@ This is it! Start working with your agents as usual. The agent will automaticall
|
|
|
283
306
|
succeeds.
|
|
284
307
|
- `forget`: removes a `viking://` URI.
|
|
285
308
|
- `export-pack` / `import-pack`: moves local context through `.ovpack` files.
|
|
309
|
+
- `share init|status|sync|publish|unpublish|list|remove`: opts a curated subset of durable memories into a team git
|
|
310
|
+
repo so teammates can pull them. Personal handoffs and preferences stay local. See `docs/share.md` for the full
|
|
311
|
+
workflow and the publish-time scrubber rules.
|
|
286
312
|
|
|
287
313
|
## Source Checkout
|
|
288
314
|
|
|
@@ -299,8 +325,9 @@ npm run threadnote -- install
|
|
|
299
325
|
```
|
|
300
326
|
|
|
301
327
|
`install` writes a small command shim to `~/.local/bin/threadnote` by default and upserts user-level agent guidance in
|
|
302
|
-
`~/.codex/AGENTS.md`, `~/.claude/CLAUDE.md`,
|
|
303
|
-
any repo or working
|
|
328
|
+
`~/.codex/AGENTS.md`, `~/.claude/CLAUDE.md`, `~/.cursor/rules/threadnote.md`, and
|
|
329
|
+
`~/.copilot/instructions/threadnote.instructions.md`. After that, use the short command from any repo or working
|
|
330
|
+
directory:
|
|
304
331
|
|
|
305
332
|
```bash
|
|
306
333
|
threadnote doctor --dry-run
|
|
@@ -329,6 +356,7 @@ Environment variables:
|
|
|
329
356
|
- `THREADNOTE_NPM_REGISTRY`: npm registry used by the installer and updater, default `https://registry.npmjs.org/`.
|
|
330
357
|
- `THREADNOTE_NO_UPDATE_CHECK`: disables opportunistic update notifications.
|
|
331
358
|
- `THREADNOTE_BIN_DIR`: directory for the `threadnote` shim, default `~/.local/bin`.
|
|
359
|
+
- `THREADNOTE_COPILOT_MCP_CONFIG`: explicit VS Code/Copilot `mcp.json` path for `mcp-install copilot`.
|
|
332
360
|
- `THREADNOTE_HOST`: local bind host, default `127.0.0.1`.
|
|
333
361
|
- `THREADNOTE_PORT`: local bind port, default `1933`.
|
|
334
362
|
|