@fingerskier/augment 0.5.0 → 0.5.1

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 CHANGED
@@ -1,467 +1,494 @@
1
- # augment
2
-
3
- Local RAG memory for agentic work.
4
- Memories are files story on your system (e.g. you could use a Dropbox directory for persistence).
5
- The "retrieval" part is a local index used to find relevant memories when you need them.
6
- Plugins for various agent tools so they know how to memorize and remember things.
7
-
8
- ## Quickstart
9
-
10
- One package wires Augment into your agent. No clone, no build.
11
-
12
- **Claude Code:**
13
-
14
- ```powershell
15
- npx -y @fingerskier/augment install claude --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
16
- ```
17
-
18
- **Codex:**
19
-
20
- ```powershell
21
- npx -y @fingerskier/augment install codex --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
22
- ```
23
-
24
- **opencode:** add the plugin to `~/.config/opencode/opencode.json` or your repo's `opencode.json`:
25
-
26
- ```json
27
- {
28
- "$schema": "https://opencode.ai/config.json",
29
- "plugin": [
30
- [
31
- "@fingerskier/augment",
32
- {
33
- "memoryRoot": "C:\\Users\\you\\Dropbox\\augment-memories"
34
- }
35
- ]
36
- ]
37
- }
38
- ```
39
-
40
- **Both at once:**
41
-
42
- ```powershell
43
- npx -y @fingerskier/augment install all --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
44
- ```
45
-
46
- **Pi CLI:**
47
-
48
- ```powershell
49
- pi install npm:@fingerskier/augment
50
- ```
51
-
52
- Restart the agent and the `augment` memory tools appear.
53
- For opencode, quit and restart after saving config; config and plugins are loaded only at startup.
54
- Swap `--scope user` (your home dir) for `--scope repo` to install Claude/Codex into the current project.
55
- Add `--dry-run` to preview every file write first.
56
- Details: [Install Agent Integrations](#install-agent-integrations) and [Pi Package](#pi-package).
57
-
58
- ## CLI Commands
59
-
60
- Run any command without a clone via `npx -y @fingerskier/augment <command>`:
61
-
62
- | Command | What it does |
63
- | --- | --- |
64
- | `status` | Print the resolved config (memory root, state dir, daemon). Default command; `config` is an alias. |
65
- | `dashboard` | Start the daemon (if needed) and open the memory graph web UI. `--no-open` just prints the URL. |
66
- | `install <codex\|claude\|all>` | Wire Augment into an agent. See [Quickstart](#quickstart). |
67
- | `recall "<task>"` | Print the memory that would be recalled for a task (what the hooks auto-inject). |
68
- | `hook <event>` | Run a lifecycle hook over stdin JSON. Host-wired by `install`; you rarely call it directly. |
69
- | `help` | Show full usage (also `--help`, `-h`). |
70
-
71
- Examples:
72
-
73
- ```powershell
74
- npx -y @fingerskier/augment status
75
- npx -y @fingerskier/augment dashboard
76
- npx -y @fingerskier/augment dashboard --no-open
77
- npx -y @fingerskier/augment recall "fix the daemon reconnect bug" --project fingerskier/augment --limit 5
78
- ```
79
-
80
- `status`, `dashboard`, and `recall` honor `AUGMENT_MEMORY_ROOT` /
81
- `~/.augment/config.json`; `dashboard` also honors `AUGMENT_DAEMON_PORT`. Inside
82
- this repo use the compiled bin instead — see
83
- [Run Locally](#run-locally).
84
-
85
- ## Overview
86
-
87
- Augment is durable, local, project-aware memory for coding agents.
88
- It stores memories as plain markdown files, maintains a rebuildable local index, and serves them over an MCP server backed by a shared local daemon —
89
- so several agents can share one memory folder without each running its own watcher/indexer.
90
- Your memories stay on disk; nothing leaves the machine.
91
-
92
- The point is to close the loop on every coding session:
93
- 1. **You prompt.** The agent starts a task and searches Augment for relevant prior context.
94
- 2. **Memories retrieved.** Governing specs, architecture decisions, known issues, and past work surface as direct context no re-explaining what was already decided.
95
- 3. **Work done.** The agent implements against that context instead of guessing.
96
- 4. **Memories updated.** Durable outcomes requirements (`SPEC`), decisions (`ARCH`), bugs (`ISSUE`), deferred work (`TODO`), milestones (`WORK`) — are written back and linked, ready for the next session.
97
-
98
- Installed integrations enforce this loop with lifecycle hooks: relevant memory is
99
- auto-injected at prompt and tool time, and a Stop hook prompts the end-of-turn
100
- write-back — no reliance on the agent remembering.
101
-
102
- Over time the memory folder becomes a project's institutional knowledge:
103
- queryable by semantic search, browsable as a graph in the [dashboard](#dashboard), and portable across machines via relative paths.
104
- For example, you could set your memory-root at a Dropbox folder and use them on multiple machines-
105
- paths and linkages are relative to that path so the search index is rebuildable and useable on multiple systems at once.
106
-
107
- Generic memories live as ordinary files under `.generic/<KIND>/<name>.md`;
108
- `decoction_glean` discovers recurring evidence and writes an agent-synthesized
109
- SPEC or ARCH. The separately approved
110
- `decoction_cleanup` can remove only the originals the user selects. Dream
111
- workflows use normal global search prioritizing the current project while
112
- including generic and foreign inspiration — and keep speculative memories or
113
- links in editable proposals until the user approves `dream_apply`.
114
-
115
- Feature details live in [docs/FEATURES.md](docs/FEATURES.md).
116
- Remaining planned work lives in [ROADMAP.md](ROADMAP.md).
117
-
118
- ----
119
-
120
- ## Install From Source
121
-
122
- For development inside this repo:
123
-
124
- ```powershell
125
- npm install
126
- npm run build
127
- npm run check
128
- ```
129
-
130
- ---
131
-
132
- ## Configure Memory
133
-
134
- For quick local testing, set the memory root with an environment variable:
135
-
136
- ```powershell
137
- $env:AUGMENT_MEMORY_ROOT = "C:\Users\you\Dropbox\augment-memories"
138
- ```
139
-
140
- Or create `~/.augment/config.json`:
141
-
142
- ```json
143
- {
144
- "memoryRoot": "C:\\Users\\you\\Dropbox\\augment-memories",
145
- "stateDir": "C:\\Users\\you\\.augment\\state"
146
- }
147
- ```
148
-
149
- Defaults:
150
-
151
- - Memory root: `~/.augment/memories`
152
- - State directory: `~/.augment/state`
153
-
154
- Also honored: `AUGMENT_STATE_DIR` (state directory), `AUGMENT_DAEMON_PORT`
155
- (fixed daemon port; the default is dynamic), and `AUGMENT_GIT_AUTOCOMMIT` (set
156
- `0` to disable auto-committing memory writes when the memory root is a git repo;
157
- on by default). Full resolution order and defaults:
158
- [docs/FEATURES.md](docs/FEATURES.md#configuration).
159
-
160
- ## Run Locally
161
-
162
- Show all commands and options:
163
-
164
- ```powershell
165
- node .\dist\bin\augment.js help
166
- ```
167
-
168
- From the published package: `npx -y @fingerskier/augment help`.
169
-
170
- Run diagnostics:
171
-
172
- ```powershell
173
- node .\dist\bin\augment.js status
174
- ```
175
-
176
- Start the daemon manually:
177
-
178
- ```powershell
179
- node .\dist\bin\augment-daemon.js
180
- ```
181
-
182
- Normally you do not need to start the daemon yourself. `augment-mcp` starts or
183
- connects to the shared daemon automatically.
184
-
185
- Run the MCP server manually:
186
-
187
- ```powershell
188
- node .\dist\bin\augment-mcp.js
189
- ```
190
-
191
- It will appear idle in a terminal because it speaks MCP over stdio.
192
-
193
- Do not use `npx @fingerskier/augment` from inside this repository. npm resolves
194
- the current package first, but a package's own bins are not linked into its local
195
- `node_modules/.bin`, so Windows reports `augment` as not recognized. Use the
196
- compiled `node .\dist\bin\...` commands above while working in this repo.
197
-
198
- From another directory, the published package works:
199
-
200
- ```powershell
201
- npx @fingerskier/augment
202
- npm exec --yes --package @fingerskier/augment -- augment status
203
- ```
204
-
205
- ## Local MCP Config
206
-
207
- Use the compiled local MCP bin while dogfooding:
208
-
209
- ```json
210
- {
211
- "mcpServers": {
212
- "augment": {
213
- "command": "node",
214
- "args": ["C:\\dev\\fingerskier\\agent\\augment\\dist\\bin\\augment-mcp.js"],
215
- "env": {
216
- "AUGMENT_MEMORY_ROOT": "C:\\Users\\you\\Dropbox\\augment-memories"
217
- }
218
- }
219
- }
220
- }
221
- ```
222
-
223
- Alternative using npm from another working directory:
224
-
225
- ```json
226
- {
227
- "mcpServers": {
228
- "augment": {
229
- "command": "npm",
230
- "args": [
231
- "exec",
232
- "--prefix",
233
- "C:\\dev\\fingerskier\\agent\\augment",
234
- "--",
235
- "augment-mcp"
236
- ],
237
- "env": {
238
- "AUGMENT_MEMORY_ROOT": "C:\\Users\\you\\Dropbox\\augment-memories"
239
- }
240
- }
241
- }
242
- }
243
- ```
244
-
245
- Dogfooding instructions:
246
-
247
- - Codex: [integrations/codex/SKILL.md](integrations/codex/SKILL.md)
248
- - Claude: [integrations/claude/CLAUDE.md](integrations/claude/CLAUDE.md)
249
- - Pi: [augment-context](integrations/pi/skills/augment-context/SKILL.md),
250
- [augment-decoction](integrations/pi/skills/augment-decoction/SKILL.md), and
251
- [augment-dream](integrations/pi/skills/augment-dream/SKILL.md)
252
-
253
- ## Pi Package
254
-
255
- Augment ships as a first-class Pi package. Configure the shared memory root
256
- first (for example with `AUGMENT_MEMORY_ROOT` or `~/.augment/config.json`; see
257
- [Configure Memory](#configure-memory)), then install one of these ways.
258
-
259
- Install globally for your Pi user settings (`~/.pi/agent/settings.json`):
260
-
261
- ```powershell
262
- pi install npm:@fingerskier/augment
263
- ```
264
-
265
- Install for just the current repository (`.pi/settings.json`, useful when the
266
- team should share the package after trusting the project):
267
-
268
- ```powershell
269
- pi install -l npm:@fingerskier/augment
270
- ```
271
-
272
- Try it for one Pi run without changing settings:
273
-
274
- ```powershell
275
- pi -e npm:@fingerskier/augment
276
- ```
277
-
278
- While developing from this checkout, build first and load the local package path:
279
-
280
- ```powershell
281
- npm run build
282
- pi -e .
283
- ```
284
-
285
- After installing, restart Pi or run `/reload`. The package manifest loads
286
- `dist/pi/extension.js` and the Pi-specific `augment-context`,
287
- `augment-decoction`, and `augment-dream` skills. The extension keeps
288
- Claude/Codex behavior unchanged, does **not** run `augment install`, and adds
289
- namespaced Pi tools so it does not shadow built-ins like `read`:
290
-
291
- - `augment_init_project`, `augment_list_projects`
292
- - `augment_search`, `augment_project_context`, `augment_read_memory`
293
- - `augment_upsert`, `augment_link`, `augment_list_links`, `augment_unlink`
294
- - `augment_decoction_glean`, `augment_decoction_cleanup`
295
- - `augment_sleep_candidates`, `augment_sleep_propose`, `augment_sleep_proposals`,
296
- `augment_sleep_apply`, `augment_sleep_reject`
297
- - `augment_dream_propose`, `augment_dream_proposals`, `augment_dream_apply`,
298
- `augment_dream_reject`
299
- - `augment_memory_insights`, `augment_memory_graph`
300
-
301
- Pi slash commands:
302
-
303
- - `/augment-context [query]` — inject Augment project context into the session.
304
- - `/augment-persist [summary]` — ask the agent to persist completed work.
305
- - `/augment-dashboard [--no-open]` — open or print the daemon dashboard URL.
306
- - `/augment-sleep` — run the supervised sleep proposal workflow.
307
- - `/augment-dream` — run the supervised dream proposal workflow.
308
-
309
- A quick smoke test after install:
310
-
311
- 1. Run `/augment-context current project` and confirm an Augment context message appears.
312
- 2. Ask Pi to list available tools or inspect the prompt; `augment_read_memory`
313
- should exist and the built-in `read` tool should still be present.
314
- 3. Run `/augment-dashboard --no-open` and confirm it prints a localhost dashboard URL.
315
-
316
- By default the Pi extension injects task-level memory during `before_agent_start`
317
- and warns after non-trivial turns to persist durable work. Tune with
318
- `AUGMENT_PI_AUTO_CONTEXT=inject|reminder|off`,
319
- `AUGMENT_PI_AUTO_PERSIST=reminder|followup|off`,
320
- `AUGMENT_PI_CONTEXT_LIMIT`, and `AUGMENT_PI_CONTEXT_MAX_CHARS`. The first recall
321
- may take a moment while the daemon starts or the embedding model cache warms; if
322
- Augment shows `augment: offline`, verify `AUGMENT_MEMORY_ROOT` /
323
- `AUGMENT_STATE_DIR` and run `/augment-dashboard --no-open` to force a daemon
324
- connection.
325
-
326
- ## Install Agent Integrations
327
-
328
- Use Augment as an opencode plugin by adding it to opencode config:
329
-
330
- ```json
331
- {
332
- "$schema": "https://opencode.ai/config.json",
333
- "plugin": [
334
- ["@fingerskier/augment", { "memoryRoot": "C:\\Users\\you\\Dropbox\\augment-memories" }]
335
- ]
336
- }
337
- ```
338
-
339
- The opencode plugin registers the local `augment` MCP server, injects relevant
340
- memory into each user message, and adds Augment workflow guidance to the system
341
- prompt. It also honors `AUGMENT_MEMORY_ROOT` / `~/.augment/config.json`; the
342
- `memoryRoot` plugin option is just the config-file equivalent. Restart opencode
343
- after changing config.
344
-
345
- Install the Codex plugin and marketplace entry:
346
-
347
- ```powershell
348
- npm exec --yes --package @fingerskier/augment -- augment install codex --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
349
- ```
350
-
351
- Install the Claude plugin:
352
-
353
- ```powershell
354
- npm exec --yes --package @fingerskier/augment -- augment install claude --scope repo --memory-root "C:\Users\you\Dropbox\augment-memories"
355
- ```
356
-
357
- `install claude` does seven things:
358
-
359
- - Scaffolds a real Claude Code plugin at `<root>/plugins/augment/`
360
- (`.claude-plugin/plugin.json`, auto-discovered context, sleep, decoction, and
361
- dream skills, and a bundled `.mcp.json`).
362
- - Writes `hooks/hooks.json` into the plugin — lifecycle hooks (SessionStart /
363
- UserPromptSubmit / PreToolUse / Stop) that auto-inject recalled memory and
364
- prompt the end-of-turn memory write-back.
365
- - Provisions the hook runtime once (`npm install` into `~/.augment/npm-exec`) so
366
- hooks run via a direct `node` command instead of paying an npm bootstrap on
367
- every event.
368
- - Adds a marketplace entry at `<root>/.claude-plugin/marketplace.json`.
369
- - **Registers the MCP server directly** so it is active without the marketplace
370
- step: repo scope writes `<repo>/.mcp.json`; user scope merges into
371
- `~/.claude.json` (`mcpServers.augment`), preserving every other key.
372
- - **Best-effort registers the packaged plugin via Claude's own CLI** — it runs
373
- `claude plugin marketplace add <root>` then
374
- `claude plugin install augment@<marketplace>` (user scope `--scope user`;
375
- repo scope `--scope project`). If `claude` is not on PATH it skips this and
376
- prints the manual commands instead. Pass `--no-plugin` to skip it entirely.
377
- - Upserts the always-on memory-workflow guidance into `CLAUDE.md`.
378
-
379
- `<root>` is the repo (`--scope repo`) or your home directory (`--scope user`).
380
- The direct registration is enough on its own — restart Claude Code and the
381
- `augment` tools appear. The plugin registration is what adds the packaged
382
- Augment skills to `/plugin list`. If you skipped it (or `claude` was not found),
383
- run the commands the installer prints, e.g.:
384
-
385
- ```text
386
- /plugin marketplace add .
387
- /plugin install augment@fingerskier-local
388
- ```
389
-
390
- Both the direct registration and the plugin register a server named `augment`;
391
- Claude's scope precedence resolves the duplicate to the higher-precedence one.
392
-
393
- Install both:
394
-
395
- ```powershell
396
- npm exec --yes --package @fingerskier/augment -- augment install all --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
397
- ```
398
-
399
- Preview writes before changing files:
400
-
401
- ```powershell
402
- npm exec --yes --package @fingerskier/augment -- augment install codex --scope user --dry-run
403
- ```
404
-
405
- The installer configures MCP commands with an isolated npm `--prefix` directory
406
- under `~/.augment/npm-exec` so they work even when launched from this repository.
407
- The same directory hosts the provisioned hook runtime; if npm was unavailable at
408
- install time, the installer prints the manual
409
- `npm install --prefix <prefix> @fingerskier/augment` command and hooks stay
410
- silent no-ops until it is run.
411
-
412
- Run these package commands from outside this repository. When developing inside
413
- this repo, use `node .\dist\bin\augment.js install ...` after `npm run build`.
414
-
415
- ## Dashboard
416
-
417
- A local web UI for browsing and editing memories as a graph:
418
-
419
- ```powershell
420
- npx -y @fingerskier/augment dashboard
421
- ```
422
-
423
- This starts the shared daemon (if needed) and opens the dashboard in your browser.
424
- It shows a graph of all projects; click a project to drill into its memory
425
- subgraph (nodes colored by kind, edges labeled by link type). You can run an ad
426
- hoc semantic search, create/edit/delete memories, and create/delete links — all
427
- against the daemon's localhost API.
428
-
429
- - `augment dashboard` start the daemon and open the UI.
430
- - `augment dashboard --no-open` — just print the URL (honors `AUGMENT_DAEMON_PORT`).
431
-
432
- The daemon binds `127.0.0.1` only and serves the dashboard and its API without
433
- auth anyone who needs to expose it beyond localhost should front it with their
434
- own gateway. Developing inside this repo, use `node .\dist\bin\augment.js
435
- dashboard` after `npm run build`.
436
-
437
- ### Dashboard snippets in chat (MCP Apps)
438
-
439
- Hosts that support the [MCP Apps extension](https://github.com/modelcontextprotocol/ext-apps)
440
- (SEP-1865: Claude.ai / Claude Desktop, ChatGPT, Goose, VS Code, …) can render
441
- augment's dashboard snippets inline in the conversation. When a user asks for
442
- memory insights, the agent can call:
443
-
444
- - `memory_insights` an interactive stats snippet: memories by kind, links by
445
- type, top tags, 12-week activity, and most-connected memories.
446
- - `memory_graph` — an interactive Cytoscape view of the project's memory graph.
447
-
448
- Both tools degrade to a plain-text summary in hosts without MCP Apps support
449
- (the graph's node/edge payload is withheld there so it never burns model
450
- context). Older MCP-UI hosts that render embedded `ui://` HTML blocks but never
451
- negotiate the extension can opt in with `AUGMENT_MCP_UI_EMBED=1` in the MCP
452
- server's environment.
453
-
454
- ## Package Check
455
-
456
- Before publishing:
457
-
458
- ```powershell
459
- npm run check
460
- npm pack --dry-run
461
- ```
462
-
463
- The package exposes these bins:
464
-
465
- - `augment`
466
- - `augment-daemon`
467
- - `augment-mcp`
1
+ # augment
2
+
3
+ Local RAG memory for agentic work.
4
+ Memories are files story on your system (e.g. you could use a Dropbox directory for persistence).
5
+ The "retrieval" part is a local index used to find relevant memories when you need them.
6
+ Plugins for various agent tools so they know how to memorize and remember things.
7
+
8
+ ## Quickstart
9
+
10
+ One package wires Augment into your agent. No clone, no build.
11
+
12
+ **Claude Code:**
13
+
14
+ ```powershell
15
+ npx -y @fingerskier/augment install claude --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
16
+ ```
17
+
18
+ **Grok Build:**
19
+
20
+ ```powershell
21
+ npx -y @fingerskier/augment install grok --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
22
+ ```
23
+
24
+ **Codex:**
25
+
26
+ ```powershell
27
+ npx -y @fingerskier/augment install codex --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
28
+ ```
29
+
30
+ **opencode:** add the plugin to `~/.config/opencode/opencode.json` or your repo's `opencode.json`:
31
+
32
+ ```json
33
+ {
34
+ "$schema": "https://opencode.ai/config.json",
35
+ "plugin": [
36
+ [
37
+ "@fingerskier/augment",
38
+ {
39
+ "memoryRoot": "C:\\Users\\you\\Dropbox\\augment-memories"
40
+ }
41
+ ]
42
+ ]
43
+ }
44
+ ```
45
+
46
+ **Both at once:**
47
+
48
+ ```powershell
49
+ npx -y @fingerskier/augment install all --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
50
+ ```
51
+
52
+ **Pi CLI:**
53
+
54
+ ```powershell
55
+ pi install npm:@fingerskier/augment
56
+ ```
57
+
58
+ Restart the agent and the `augment` memory tools appear.
59
+ For opencode, quit and restart after saving config; config and plugins are loaded only at startup.
60
+ Swap `--scope user` (your home dir) for `--scope repo` to install Claude/Codex/Grok into the current project.
61
+ Add `--dry-run` to preview every file write first.
62
+ Details: [Install Agent Integrations](#install-agent-integrations) and [Pi Package](#pi-package).
63
+
64
+ ## CLI Commands
65
+
66
+ Run any command without a clone via `npx -y @fingerskier/augment <command>`:
67
+
68
+ | Command | What it does |
69
+ | --- | --- |
70
+ | `status` | Print the resolved config (memory root, state dir, daemon). Default command; `config` is an alias. |
71
+ | `dashboard` | Start the daemon (if needed) and open the memory graph web UI. `--no-open` just prints the URL. |
72
+ | `install <codex\|claude\|grok\|all>` | Wire Augment into an agent. See [Quickstart](#quickstart). |
73
+ | `recall "<task>"` | Print the memory that would be recalled for a task (what the hooks auto-inject). |
74
+ | `hook <event>` | Run a lifecycle hook over stdin JSON. Host-wired by `install`; you rarely call it directly. |
75
+ | `help` | Show full usage (also `--help`, `-h`). |
76
+
77
+ Examples:
78
+
79
+ ```powershell
80
+ npx -y @fingerskier/augment status
81
+ npx -y @fingerskier/augment dashboard
82
+ npx -y @fingerskier/augment dashboard --no-open
83
+ npx -y @fingerskier/augment recall "fix the daemon reconnect bug" --project fingerskier/augment --limit 5
84
+ ```
85
+
86
+ `status`, `dashboard`, and `recall` honor `AUGMENT_MEMORY_ROOT` /
87
+ `~/.augment/config.json`; `dashboard` also honors `AUGMENT_DAEMON_PORT`. Inside
88
+ this repo use the compiled bin instead see
89
+ [Run Locally](#run-locally).
90
+
91
+ ## Overview
92
+
93
+ Augment is durable, local, project-aware memory for coding agents.
94
+ It stores memories as plain markdown files, maintains a rebuildable local index, and serves them over an MCP server backed by a shared local daemon
95
+ so several agents can share one memory folder without each running its own watcher/indexer.
96
+ Your memories stay on disk; nothing leaves the machine.
97
+
98
+ The point is to close the loop on every coding session:
99
+ 1. **You prompt.** The agent starts a task and searches Augment for relevant prior context.
100
+ 2. **Memories retrieved.** Governing specs, architecture decisions, known issues, and past work surface as direct context — no re-explaining what was already decided.
101
+ 3. **Work done.** The agent implements against that context instead of guessing.
102
+ 4. **Memories updated.** Durable outcomes requirements (`SPEC`), decisions (`ARCH`), bugs (`ISSUE`), deferred work (`TODO`), milestones (`WORK`) — are written back and linked, ready for the next session.
103
+
104
+ Installed integrations enforce this loop with lifecycle hooks: relevant memory is
105
+ auto-injected at prompt and tool time, and a Stop hook prompts the end-of-turn
106
+ write-back — no reliance on the agent remembering.
107
+
108
+ Over time the memory folder becomes a project's institutional knowledge:
109
+ queryable by semantic search, browsable as a graph in the [dashboard](#dashboard), and portable across machines via relative paths.
110
+ For example, you could set your memory-root at a Dropbox folder and use them on multiple machines-
111
+ paths and linkages are relative to that path so the search index is rebuildable and useable on multiple systems at once.
112
+
113
+ Generic memories live as ordinary files under `.generic/<KIND>/<name>.md`;
114
+ `decoction_glean` discovers recurring evidence and writes an agent-synthesized
115
+ SPEC or ARCH. The separately approved
116
+ `decoction_cleanup` can remove only the originals the user selects. Dream
117
+ workflows use normal global search — prioritizing the current project while
118
+ including generic and foreign inspiration — and keep speculative memories or
119
+ links in editable proposals until the user approves `dream_apply`.
120
+
121
+ Feature details live in [docs/FEATURES.md](docs/FEATURES.md).
122
+ Remaining planned work lives in [ROADMAP.md](ROADMAP.md).
123
+
124
+ ----
125
+
126
+ ## Install From Source
127
+
128
+ For development inside this repo:
129
+
130
+ ```powershell
131
+ npm install
132
+ npm run build
133
+ npm run check
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Configure Memory
139
+
140
+ For quick local testing, set the memory root with an environment variable:
141
+
142
+ ```powershell
143
+ $env:AUGMENT_MEMORY_ROOT = "C:\Users\you\Dropbox\augment-memories"
144
+ ```
145
+
146
+ Or create `~/.augment/config.json`:
147
+
148
+ ```json
149
+ {
150
+ "memoryRoot": "C:\\Users\\you\\Dropbox\\augment-memories",
151
+ "stateDir": "C:\\Users\\you\\.augment\\state"
152
+ }
153
+ ```
154
+
155
+ Defaults:
156
+
157
+ - Memory root: `~/.augment/memories`
158
+ - State directory: `~/.augment/state`
159
+
160
+ Also honored: `AUGMENT_STATE_DIR` (state directory), `AUGMENT_DAEMON_PORT`
161
+ (fixed daemon port; the default is dynamic), and `AUGMENT_GIT_AUTOCOMMIT` (set
162
+ `0` to disable auto-committing memory writes when the memory root is a git repo;
163
+ on by default). Full resolution order and defaults:
164
+ [docs/FEATURES.md](docs/FEATURES.md#configuration).
165
+
166
+ ## Run Locally
167
+
168
+ Show all commands and options:
169
+
170
+ ```powershell
171
+ node .\dist\bin\augment.js help
172
+ ```
173
+
174
+ From the published package: `npx -y @fingerskier/augment help`.
175
+
176
+ Run diagnostics:
177
+
178
+ ```powershell
179
+ node .\dist\bin\augment.js status
180
+ ```
181
+
182
+ Start the daemon manually:
183
+
184
+ ```powershell
185
+ node .\dist\bin\augment-daemon.js
186
+ ```
187
+
188
+ Normally you do not need to start the daemon yourself. `augment-mcp` starts or
189
+ connects to the shared daemon automatically.
190
+
191
+ Run the MCP server manually:
192
+
193
+ ```powershell
194
+ node .\dist\bin\augment-mcp.js
195
+ ```
196
+
197
+ It will appear idle in a terminal because it speaks MCP over stdio.
198
+
199
+ Do not use `npx @fingerskier/augment` from inside this repository. npm resolves
200
+ the current package first, but a package's own bins are not linked into its local
201
+ `node_modules/.bin`, so Windows reports `augment` as not recognized. Use the
202
+ compiled `node .\dist\bin\...` commands above while working in this repo.
203
+
204
+ From another directory, the published package works:
205
+
206
+ ```powershell
207
+ npx @fingerskier/augment
208
+ npm exec --yes --package @fingerskier/augment -- augment status
209
+ ```
210
+
211
+ ## Local MCP Config
212
+
213
+ Use the compiled local MCP bin while dogfooding:
214
+
215
+ ```json
216
+ {
217
+ "mcpServers": {
218
+ "augment": {
219
+ "command": "node",
220
+ "args": ["C:\\dev\\fingerskier\\agent\\augment\\dist\\bin\\augment-mcp.js"],
221
+ "env": {
222
+ "AUGMENT_MEMORY_ROOT": "C:\\Users\\you\\Dropbox\\augment-memories"
223
+ }
224
+ }
225
+ }
226
+ }
227
+ ```
228
+
229
+ Alternative using npm from another working directory:
230
+
231
+ ```json
232
+ {
233
+ "mcpServers": {
234
+ "augment": {
235
+ "command": "npm",
236
+ "args": [
237
+ "exec",
238
+ "--prefix",
239
+ "C:\\dev\\fingerskier\\agent\\augment",
240
+ "--",
241
+ "augment-mcp"
242
+ ],
243
+ "env": {
244
+ "AUGMENT_MEMORY_ROOT": "C:\\Users\\you\\Dropbox\\augment-memories"
245
+ }
246
+ }
247
+ }
248
+ }
249
+ ```
250
+
251
+ Dogfooding instructions:
252
+
253
+ - Codex: [integrations/codex/SKILL.md](integrations/codex/SKILL.md)
254
+ - Claude: [integrations/claude/CLAUDE.md](integrations/claude/CLAUDE.md)
255
+ - Pi: [augment-context](integrations/pi/skills/augment-context/SKILL.md),
256
+ [augment-decoction](integrations/pi/skills/augment-decoction/SKILL.md), and
257
+ [augment-dream](integrations/pi/skills/augment-dream/SKILL.md)
258
+
259
+ ## Pi Package
260
+
261
+ Augment ships as a first-class Pi package. Configure the shared memory root
262
+ first (for example with `AUGMENT_MEMORY_ROOT` or `~/.augment/config.json`; see
263
+ [Configure Memory](#configure-memory)), then install one of these ways.
264
+
265
+ Install globally for your Pi user settings (`~/.pi/agent/settings.json`):
266
+
267
+ ```powershell
268
+ pi install npm:@fingerskier/augment
269
+ ```
270
+
271
+ Install for just the current repository (`.pi/settings.json`, useful when the
272
+ team should share the package after trusting the project):
273
+
274
+ ```powershell
275
+ pi install -l npm:@fingerskier/augment
276
+ ```
277
+
278
+ Try it for one Pi run without changing settings:
279
+
280
+ ```powershell
281
+ pi -e npm:@fingerskier/augment
282
+ ```
283
+
284
+ While developing from this checkout, build first and load the local package path:
285
+
286
+ ```powershell
287
+ npm run build
288
+ pi -e .
289
+ ```
290
+
291
+ After installing, restart Pi or run `/reload`. The package manifest loads
292
+ `dist/pi/extension.js` and the Pi-specific `augment-context`,
293
+ `augment-decoction`, and `augment-dream` skills. The extension keeps
294
+ Claude/Codex behavior unchanged, does **not** run `augment install`, and adds
295
+ namespaced Pi tools so it does not shadow built-ins like `read`:
296
+
297
+ - `augment_init_project`, `augment_list_projects`
298
+ - `augment_search`, `augment_project_context`, `augment_read_memory`
299
+ - `augment_upsert`, `augment_link`, `augment_list_links`, `augment_unlink`
300
+ - `augment_decoction_glean`, `augment_decoction_cleanup`
301
+ - `augment_sleep_candidates`, `augment_sleep_propose`, `augment_sleep_proposals`,
302
+ `augment_sleep_apply`, `augment_sleep_reject`
303
+ - `augment_dream_propose`, `augment_dream_proposals`, `augment_dream_apply`,
304
+ `augment_dream_reject`
305
+ - `augment_memory_insights`, `augment_memory_graph`
306
+
307
+ Pi slash commands:
308
+
309
+ - `/augment-context [query]` inject Augment project context into the session.
310
+ - `/augment-persist [summary]` — ask the agent to persist completed work.
311
+ - `/augment-dashboard [--no-open]` open or print the daemon dashboard URL.
312
+ - `/augment-sleep` run the supervised sleep proposal workflow.
313
+ - `/augment-dream` run the supervised dream proposal workflow.
314
+
315
+ A quick smoke test after install:
316
+
317
+ 1. Run `/augment-context current project` and confirm an Augment context message appears.
318
+ 2. Ask Pi to list available tools or inspect the prompt; `augment_read_memory`
319
+ should exist and the built-in `read` tool should still be present.
320
+ 3. Run `/augment-dashboard --no-open` and confirm it prints a localhost dashboard URL.
321
+
322
+ By default the Pi extension injects task-level memory during `before_agent_start`
323
+ and warns after non-trivial turns to persist durable work. Tune with
324
+ `AUGMENT_PI_AUTO_CONTEXT=inject|reminder|off`,
325
+ `AUGMENT_PI_AUTO_PERSIST=reminder|followup|off`,
326
+ `AUGMENT_PI_CONTEXT_LIMIT`, and `AUGMENT_PI_CONTEXT_MAX_CHARS`. The first recall
327
+ may take a moment while the daemon starts or the embedding model cache warms; if
328
+ Augment shows `augment: offline`, verify `AUGMENT_MEMORY_ROOT` /
329
+ `AUGMENT_STATE_DIR` and run `/augment-dashboard --no-open` to force a daemon
330
+ connection.
331
+
332
+ ## Install Agent Integrations
333
+
334
+ Use Augment as an opencode plugin by adding it to opencode config:
335
+
336
+ ```json
337
+ {
338
+ "$schema": "https://opencode.ai/config.json",
339
+ "plugin": [
340
+ ["@fingerskier/augment", { "memoryRoot": "C:\\Users\\you\\Dropbox\\augment-memories" }]
341
+ ]
342
+ }
343
+ ```
344
+
345
+ The opencode plugin registers the local `augment` MCP server, injects relevant
346
+ memory into each user message, and adds Augment workflow guidance to the system
347
+ prompt. It also honors `AUGMENT_MEMORY_ROOT` / `~/.augment/config.json`; the
348
+ `memoryRoot` plugin option is just the config-file equivalent. Restart opencode
349
+ after changing config.
350
+
351
+ Install the Codex plugin and marketplace entry:
352
+
353
+ ```powershell
354
+ npm exec --yes --package @fingerskier/augment -- augment install codex --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
355
+ ```
356
+
357
+ Install the Claude plugin:
358
+
359
+ ```powershell
360
+ npm exec --yes --package @fingerskier/augment -- augment install claude --scope repo --memory-root "C:\Users\you\Dropbox\augment-memories"
361
+ ```
362
+
363
+ Install Grok Build support:
364
+
365
+ ```powershell
366
+ npm exec --yes --package @fingerskier/augment -- augment install grok --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
367
+ ```
368
+
369
+ `install grok` does five things:
370
+
371
+ - Registers the `augment` MCP server in Grok's native TOML config
372
+ (`~/.grok/config.toml` for user scope, `<repo>/.grok/config.toml` for repo
373
+ scope), matching the shape of `grok mcp add`.
374
+ - Installs workflow skills under `~/.grok/skills/` (or `<repo>/.grok/skills/`).
375
+ - Writes lifecycle hooks to `~/.grok/hooks/augment.json` (or the repo equivalent).
376
+ - Upserts always-on memory-workflow guidance into `AGENTS.md`
377
+ (`~/.grok/AGENTS.md` for user scope, `<repo>/AGENTS.md` for repo scope).
378
+ - Provisions the shared hook runtime once (`npm install` into
379
+ `~/.augment/npm-exec`), same as Claude/Codex.
380
+
381
+ Restart Grok (or press `r` in `/mcps`) after install so MCP servers and hooks
382
+ reload.
383
+
384
+ `install claude` does seven things:
385
+
386
+ - Scaffolds a real Claude Code plugin at `<root>/plugins/augment/`
387
+ (`.claude-plugin/plugin.json`, auto-discovered context, sleep, decoction, and
388
+ dream skills, and a bundled `.mcp.json`).
389
+ - Writes `hooks/hooks.json` into the plugin — lifecycle hooks (SessionStart /
390
+ UserPromptSubmit / PreToolUse / Stop) that auto-inject recalled memory and
391
+ prompt the end-of-turn memory write-back.
392
+ - Provisions the hook runtime once (`npm install` into `~/.augment/npm-exec`) so
393
+ hooks run via a direct `node` command instead of paying an npm bootstrap on
394
+ every event.
395
+ - Adds a marketplace entry at `<root>/.claude-plugin/marketplace.json`.
396
+ - **Registers the MCP server directly** so it is active without the marketplace
397
+ step: repo scope writes `<repo>/.mcp.json`; user scope merges into
398
+ `~/.claude.json` (`mcpServers.augment`), preserving every other key.
399
+ - **Best-effort registers the packaged plugin via Claude's own CLI** — it runs
400
+ `claude plugin marketplace add <root>` then
401
+ `claude plugin install augment@<marketplace>` (user scope → `--scope user`;
402
+ repo scope `--scope project`). If `claude` is not on PATH it skips this and
403
+ prints the manual commands instead. Pass `--no-plugin` to skip it entirely.
404
+ - Upserts the always-on memory-workflow guidance into `CLAUDE.md`.
405
+
406
+ `<root>` is the repo (`--scope repo`) or your home directory (`--scope user`).
407
+ The direct registration is enough on its own restart Claude Code and the
408
+ `augment` tools appear. The plugin registration is what adds the packaged
409
+ Augment skills to `/plugin list`. If you skipped it (or `claude` was not found),
410
+ run the commands the installer prints, e.g.:
411
+
412
+ ```text
413
+ /plugin marketplace add .
414
+ /plugin install augment@fingerskier-local
415
+ ```
416
+
417
+ Both the direct registration and the plugin register a server named `augment`;
418
+ Claude's scope precedence resolves the duplicate to the higher-precedence one.
419
+
420
+ Install both:
421
+
422
+ ```powershell
423
+ npm exec --yes --package @fingerskier/augment -- augment install all --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
424
+ ```
425
+
426
+ Preview writes before changing files:
427
+
428
+ ```powershell
429
+ npm exec --yes --package @fingerskier/augment -- augment install codex --scope user --dry-run
430
+ ```
431
+
432
+ The installer configures MCP commands with an isolated npm `--prefix` directory
433
+ under `~/.augment/npm-exec` so they work even when launched from this repository.
434
+ The same directory hosts the provisioned hook runtime; if npm was unavailable at
435
+ install time, the installer prints the manual
436
+ `npm install --prefix <prefix> @fingerskier/augment` command and hooks stay
437
+ silent no-ops until it is run.
438
+
439
+ Run these package commands from outside this repository. When developing inside
440
+ this repo, use `node .\dist\bin\augment.js install ...` after `npm run build`.
441
+
442
+ ## Dashboard
443
+
444
+ A local web UI for browsing and editing memories as a graph:
445
+
446
+ ```powershell
447
+ npx -y @fingerskier/augment dashboard
448
+ ```
449
+
450
+ This starts the shared daemon (if needed) and opens the dashboard in your browser.
451
+ It shows a graph of all projects; click a project to drill into its memory
452
+ subgraph (nodes colored by kind, edges labeled by link type). You can run an ad
453
+ hoc semantic search, create/edit/delete memories, and create/delete links — all
454
+ against the daemon's localhost API.
455
+
456
+ - `augment dashboard` — start the daemon and open the UI.
457
+ - `augment dashboard --no-open` — just print the URL (honors `AUGMENT_DAEMON_PORT`).
458
+
459
+ The daemon binds `127.0.0.1` only and serves the dashboard and its API without
460
+ auth anyone who needs to expose it beyond localhost should front it with their
461
+ own gateway. Developing inside this repo, use `node .\dist\bin\augment.js
462
+ dashboard` after `npm run build`.
463
+
464
+ ### Dashboard snippets in chat (MCP Apps)
465
+
466
+ Hosts that support the [MCP Apps extension](https://github.com/modelcontextprotocol/ext-apps)
467
+ (SEP-1865: Claude.ai / Claude Desktop, ChatGPT, Goose, VS Code, …) can render
468
+ augment's dashboard snippets inline in the conversation. When a user asks for
469
+ memory insights, the agent can call:
470
+
471
+ - `memory_insights` — an interactive stats snippet: memories by kind, links by
472
+ type, top tags, 12-week activity, and most-connected memories.
473
+ - `memory_graph` — an interactive Cytoscape view of the project's memory graph.
474
+
475
+ Both tools degrade to a plain-text summary in hosts without MCP Apps support
476
+ (the graph's node/edge payload is withheld there so it never burns model
477
+ context). Older MCP-UI hosts that render embedded `ui://` HTML blocks but never
478
+ negotiate the extension can opt in with `AUGMENT_MCP_UI_EMBED=1` in the MCP
479
+ server's environment.
480
+
481
+ ## Package Check
482
+
483
+ Before publishing:
484
+
485
+ ```powershell
486
+ npm run check
487
+ npm pack --dry-run
488
+ ```
489
+
490
+ The package exposes these bins:
491
+
492
+ - `augment`
493
+ - `augment-daemon`
494
+ - `augment-mcp`