@fingerskier/augment 0.1.0 → 0.1.3
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 +198 -130
- package/dist/cli.js +50 -1
- package/dist/cli.js.map +1 -1
- package/dist/install.d.ts +15 -0
- package/dist/install.js +335 -0
- package/dist/install.js.map +1 -0
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +10 -1
- package/dist/mcp/server.js.map +1 -1
- package/docs/FEATURES.md +277 -245
- package/integrations/claude/CLAUDE.md +56 -28
- package/integrations/codex/SKILL.md +63 -29
- package/integrations/examples/claude-mcp-config.json +10 -1
- package/integrations/examples/codex-mcp-config.json +10 -1
- package/package.json +45 -45
package/README.md
CHANGED
|
@@ -1,130 +1,198 @@
|
|
|
1
|
-
# augment
|
|
2
|
-
|
|
3
|
-
Local RAG memory for coding agents.
|
|
4
|
-
|
|
5
|
-
Augment stores durable memories as markdown files, maintains a local rebuildable index, and exposes the memory system through an MCP server.
|
|
6
|
-
The MCP server connects to a shared local daemon, so multiple coding agents can use the same memory folder without each running its own watcher/indexer.
|
|
7
|
-
|
|
8
|
-
Feature details live in [docs/FEATURES.md](docs/FEATURES.md).
|
|
9
|
-
The implementation plan lives in [PLAN.md](PLAN.md).
|
|
10
|
-
|
|
11
|
-
----
|
|
12
|
-
|
|
13
|
-
## Install
|
|
14
|
-
|
|
15
|
-
From this repo:
|
|
16
|
-
|
|
17
|
-
```powershell
|
|
18
|
-
npm install
|
|
19
|
-
npm run build
|
|
20
|
-
npm run check
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Configure Memory
|
|
26
|
-
|
|
27
|
-
For quick local testing, set the memory root with an environment variable:
|
|
28
|
-
|
|
29
|
-
```powershell
|
|
30
|
-
$env:AUGMENT_MEMORY_ROOT = "C:\Users\you\Dropbox\augment-memories"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Or create `~/.augment/config.json`:
|
|
34
|
-
|
|
35
|
-
```json
|
|
36
|
-
{
|
|
37
|
-
"memoryRoot": "C:\\Users\\you\\Dropbox\\augment-memories",
|
|
38
|
-
"stateDir": "C:\\Users\\you\\.augment\\state"
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
Defaults:
|
|
43
|
-
|
|
44
|
-
- Memory root: `~/.augment/memories`
|
|
45
|
-
- State directory: `~/.augment/state`
|
|
46
|
-
|
|
47
|
-
## Run Locally
|
|
48
|
-
|
|
49
|
-
Run diagnostics:
|
|
50
|
-
|
|
51
|
-
```powershell
|
|
52
|
-
node .\dist\bin\augment.js status
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Start the daemon manually:
|
|
56
|
-
|
|
57
|
-
```powershell
|
|
58
|
-
node .\dist\bin\augment-daemon.js
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Normally you do not need to start the daemon yourself. `augment-mcp` starts or
|
|
62
|
-
connects to the shared daemon automatically.
|
|
63
|
-
|
|
64
|
-
Run the MCP server manually:
|
|
65
|
-
|
|
66
|
-
```powershell
|
|
67
|
-
node .\dist\bin\augment-mcp.js
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
It will appear idle in a terminal because it speaks MCP over stdio.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
1
|
+
# augment
|
|
2
|
+
|
|
3
|
+
Local RAG memory for coding agents.
|
|
4
|
+
|
|
5
|
+
Augment stores durable memories as markdown files, maintains a local rebuildable index, and exposes the memory system through an MCP server.
|
|
6
|
+
The MCP server connects to a shared local daemon, so multiple coding agents can use the same memory folder without each running its own watcher/indexer.
|
|
7
|
+
|
|
8
|
+
Feature details live in [docs/FEATURES.md](docs/FEATURES.md).
|
|
9
|
+
The implementation plan lives in [PLAN.md](PLAN.md).
|
|
10
|
+
|
|
11
|
+
----
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
From this repo:
|
|
16
|
+
|
|
17
|
+
```powershell
|
|
18
|
+
npm install
|
|
19
|
+
npm run build
|
|
20
|
+
npm run check
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Configure Memory
|
|
26
|
+
|
|
27
|
+
For quick local testing, set the memory root with an environment variable:
|
|
28
|
+
|
|
29
|
+
```powershell
|
|
30
|
+
$env:AUGMENT_MEMORY_ROOT = "C:\Users\you\Dropbox\augment-memories"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Or create `~/.augment/config.json`:
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"memoryRoot": "C:\\Users\\you\\Dropbox\\augment-memories",
|
|
38
|
+
"stateDir": "C:\\Users\\you\\.augment\\state"
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Defaults:
|
|
43
|
+
|
|
44
|
+
- Memory root: `~/.augment/memories`
|
|
45
|
+
- State directory: `~/.augment/state`
|
|
46
|
+
|
|
47
|
+
## Run Locally
|
|
48
|
+
|
|
49
|
+
Run diagnostics:
|
|
50
|
+
|
|
51
|
+
```powershell
|
|
52
|
+
node .\dist\bin\augment.js status
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Start the daemon manually:
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
node .\dist\bin\augment-daemon.js
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Normally you do not need to start the daemon yourself. `augment-mcp` starts or
|
|
62
|
+
connects to the shared daemon automatically.
|
|
63
|
+
|
|
64
|
+
Run the MCP server manually:
|
|
65
|
+
|
|
66
|
+
```powershell
|
|
67
|
+
node .\dist\bin\augment-mcp.js
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
It will appear idle in a terminal because it speaks MCP over stdio.
|
|
71
|
+
|
|
72
|
+
Do not use `npx @fingerskier/augment` from inside this repository. npm resolves
|
|
73
|
+
the current package first, but a package's own bins are not linked into its local
|
|
74
|
+
`node_modules/.bin`, so Windows reports `augment` as not recognized. Use the
|
|
75
|
+
compiled `node .\dist\bin\...` commands above while working in this repo.
|
|
76
|
+
|
|
77
|
+
From another directory, the published package works:
|
|
78
|
+
|
|
79
|
+
```powershell
|
|
80
|
+
npx @fingerskier/augment
|
|
81
|
+
npm exec --yes --package @fingerskier/augment -- augment status
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Local MCP Config
|
|
85
|
+
|
|
86
|
+
Use the compiled local MCP bin while dogfooding:
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"mcpServers": {
|
|
91
|
+
"augment": {
|
|
92
|
+
"command": "node",
|
|
93
|
+
"args": ["C:\\dev\\fingerskier\\agent\\augment\\dist\\bin\\augment-mcp.js"],
|
|
94
|
+
"env": {
|
|
95
|
+
"AUGMENT_MEMORY_ROOT": "C:\\Users\\you\\Dropbox\\augment-memories"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Alternative using npm from another working directory:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"mcpServers": {
|
|
107
|
+
"augment": {
|
|
108
|
+
"command": "npm",
|
|
109
|
+
"args": [
|
|
110
|
+
"exec",
|
|
111
|
+
"--prefix",
|
|
112
|
+
"C:\\dev\\fingerskier\\agent\\augment",
|
|
113
|
+
"--",
|
|
114
|
+
"augment-mcp"
|
|
115
|
+
],
|
|
116
|
+
"env": {
|
|
117
|
+
"AUGMENT_MEMORY_ROOT": "C:\\Users\\you\\Dropbox\\augment-memories"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Dogfooding instructions:
|
|
125
|
+
|
|
126
|
+
- Codex: [integrations/codex/SKILL.md](integrations/codex/SKILL.md)
|
|
127
|
+
- Claude: [integrations/claude/CLAUDE.md](integrations/claude/CLAUDE.md)
|
|
128
|
+
|
|
129
|
+
## Install Agent Integrations
|
|
130
|
+
|
|
131
|
+
Install the Codex plugin and marketplace entry:
|
|
132
|
+
|
|
133
|
+
```powershell
|
|
134
|
+
npm exec --yes --package @fingerskier/augment -- augment install codex --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Install the Claude plugin:
|
|
138
|
+
|
|
139
|
+
```powershell
|
|
140
|
+
npm exec --yes --package @fingerskier/augment -- augment install claude --scope repo --memory-root "C:\Users\you\Dropbox\augment-memories"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
`install claude` does four things:
|
|
144
|
+
|
|
145
|
+
- Scaffolds a real Claude Code plugin at `<root>/plugins/augment/`
|
|
146
|
+
(`.claude-plugin/plugin.json`, an auto-discovered `augment-context` skill, and a
|
|
147
|
+
bundled `.mcp.json`).
|
|
148
|
+
- Adds a marketplace entry at `<root>/.claude-plugin/marketplace.json`.
|
|
149
|
+
- **Registers the MCP server directly** so it is active without the marketplace
|
|
150
|
+
step: repo scope writes `<repo>/.mcp.json`; user scope merges into
|
|
151
|
+
`~/.claude.json` (`mcpServers.augment`), preserving every other key.
|
|
152
|
+
- Upserts the always-on memory-workflow guidance into `CLAUDE.md`.
|
|
153
|
+
|
|
154
|
+
`<root>` is the repo (`--scope repo`) or your home directory (`--scope user`).
|
|
155
|
+
The direct registration is enough on its own — restart Claude Code and the
|
|
156
|
+
`augment` tools appear. To use the packaged plugin instead, install it from the
|
|
157
|
+
marketplace (the installer prints the exact commands), e.g.:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
/plugin marketplace add .
|
|
161
|
+
/plugin install augment@fingerskier-local
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Pick one activation path; both register a server named `augment`, and Claude's
|
|
165
|
+
scope precedence resolves the duplicate to the higher-precedence one.
|
|
166
|
+
|
|
167
|
+
Install both:
|
|
168
|
+
|
|
169
|
+
```powershell
|
|
170
|
+
npm exec --yes --package @fingerskier/augment -- augment install all --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Preview writes before changing files:
|
|
174
|
+
|
|
175
|
+
```powershell
|
|
176
|
+
npm exec --yes --package @fingerskier/augment -- augment install codex --scope user --dry-run
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
The installer configures MCP commands with an isolated npm `--prefix` directory
|
|
180
|
+
under `~/.augment/npm-exec` so they work even when launched from this repository.
|
|
181
|
+
|
|
182
|
+
Run these package commands from outside this repository. When developing inside
|
|
183
|
+
this repo, use `node .\dist\bin\augment.js install ...` after `npm run build`.
|
|
184
|
+
|
|
185
|
+
## Package Check
|
|
186
|
+
|
|
187
|
+
Before publishing:
|
|
188
|
+
|
|
189
|
+
```powershell
|
|
190
|
+
npm run check
|
|
191
|
+
npm pack --dry-run
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
The package exposes these bins:
|
|
195
|
+
|
|
196
|
+
- `augment`
|
|
197
|
+
- `augment-daemon`
|
|
198
|
+
- `augment-mcp`
|
package/dist/cli.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { loadConfig } from "./config.js";
|
|
2
|
+
import { installIntegration } from "./install.js";
|
|
2
3
|
export async function runCli(args) {
|
|
3
4
|
const command = args[0] ?? "status";
|
|
4
5
|
if (command === "config" || command === "status") {
|
|
@@ -6,8 +7,56 @@ export async function runCli(args) {
|
|
|
6
7
|
console.log(JSON.stringify(config, null, 2));
|
|
7
8
|
return;
|
|
8
9
|
}
|
|
10
|
+
if (command === "install") {
|
|
11
|
+
const parsed = parseInstallArgs(args.slice(1));
|
|
12
|
+
const plan = await installIntegration(parsed);
|
|
13
|
+
for (const line of plan.summary) {
|
|
14
|
+
console.log(line);
|
|
15
|
+
}
|
|
16
|
+
for (const file of plan.files) {
|
|
17
|
+
console.log(`- ${file}`);
|
|
18
|
+
}
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
9
21
|
console.error(`Unknown command: ${command}`);
|
|
10
|
-
console.error("Usage: augment [status|config]");
|
|
22
|
+
console.error("Usage: augment [status|config|install <codex|claude|all>]");
|
|
11
23
|
process.exitCode = 1;
|
|
12
24
|
}
|
|
25
|
+
function parseInstallArgs(args) {
|
|
26
|
+
const target = args[0];
|
|
27
|
+
if (!target || !["codex", "claude", "all"].includes(target)) {
|
|
28
|
+
throw new Error("Usage: augment install <codex|claude|all> [--scope user|repo] [--memory-root PATH] [--dry-run]");
|
|
29
|
+
}
|
|
30
|
+
let scope = "user";
|
|
31
|
+
let memoryRoot;
|
|
32
|
+
let dryRun = false;
|
|
33
|
+
for (let index = 1; index < args.length; index += 1) {
|
|
34
|
+
const arg = args[index];
|
|
35
|
+
if (arg === "--scope") {
|
|
36
|
+
const value = args[++index];
|
|
37
|
+
if (value !== "user" && value !== "repo") {
|
|
38
|
+
throw new Error("--scope must be user or repo");
|
|
39
|
+
}
|
|
40
|
+
scope = value;
|
|
41
|
+
}
|
|
42
|
+
else if (arg === "--memory-root") {
|
|
43
|
+
memoryRoot = args[++index];
|
|
44
|
+
if (!memoryRoot) {
|
|
45
|
+
throw new Error("--memory-root requires a path");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else if (arg === "--dry-run") {
|
|
49
|
+
dryRun = true;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
throw new Error(`Unknown install option: ${arg}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
target,
|
|
57
|
+
scope,
|
|
58
|
+
memoryRoot,
|
|
59
|
+
dryRun,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
13
62
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAyC,MAAM,cAAc,CAAC;AAEzF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAEpC,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IAMtC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAA8B,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;IACpH,CAAC;IAED,IAAI,KAAK,GAAiB,MAAM,CAAC;IACjC,IAAI,UAA8B,CAAC;IACnC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,CAA6B,CAAC;YACxD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;aAAM,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,KAAK;QACL,UAAU;QACV,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type InstallTarget = "codex" | "claude" | "all";
|
|
2
|
+
export type InstallScope = "user" | "repo";
|
|
3
|
+
export interface InstallOptions {
|
|
4
|
+
target: InstallTarget;
|
|
5
|
+
scope: InstallScope;
|
|
6
|
+
memoryRoot?: string;
|
|
7
|
+
dryRun?: boolean;
|
|
8
|
+
cwd?: string;
|
|
9
|
+
home?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface InstallPlan {
|
|
12
|
+
summary: string[];
|
|
13
|
+
files: string[];
|
|
14
|
+
}
|
|
15
|
+
export declare function installIntegration(options: InstallOptions): Promise<InstallPlan>;
|