milens 0.6.9 → 0.7.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/.agents/skills/analyzer/SKILL.md +81 -79
- package/.agents/skills/docs/SKILL.md +78 -79
- package/.agents/skills/milens/SKILL.md +319 -318
- package/.agents/skills/orchestrator/SKILL.md +61 -61
- package/.agents/skills/parser/SKILL.md +83 -82
- package/.agents/skills/root/SKILL.md +88 -86
- package/.agents/skills/scripts/SKILL.md +54 -45
- package/.agents/skills/security/SKILL.md +67 -66
- package/.agents/skills/server/SKILL.md +74 -73
- package/.agents/skills/store/SKILL.md +76 -75
- package/.agents/skills/test/SKILL.md +153 -152
- package/.agents/skills/ui/SKILL.md +51 -0
- package/README.md +568 -527
- package/adapters/claude-code/.claude/mcp.json +9 -9
- package/adapters/claude-code/CLAUDE.md +79 -79
- package/adapters/gemini/.gemini/context.md +81 -81
- package/adapters/opencode/.opencode/config.json +8 -8
- package/adapters/zed/.zed/settings.json +8 -8
- package/dist/cli.js +1 -1
- package/dist/server/hooks.d.ts.map +1 -1
- package/dist/server/hooks.js +10 -0
- package/dist/server/hooks.js.map +1 -1
- package/dist/skills.js +3 -3
- package/dist/store/db.d.ts.map +1 -1
- package/dist/store/db.js +1 -5
- package/dist/store/db.js.map +1 -1
- package/docs/README.md +25 -25
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,527 +1,568 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<strong>Milens</strong><br>
|
|
3
|
-
<em>
|
|
4
|
-
</p>
|
|
5
|
-
|
|
6
|
-
<p align="center">
|
|
7
|
-
<a href="https://www.npmjs.com/package/milens"><img src="https://img.shields.io/npm/v/milens" alt="npm"></a>
|
|
8
|
-
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" alt="node"></a>
|
|
9
|
-
<a href="https://github.com/fuze210699/milens/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license"></a>
|
|
10
|
-
<img src="https://img.shields.io/badge/tools-43-purple" alt="43 tools">
|
|
11
|
-
<img src="https://img.shields.io/badge/languages-12-blue" alt="12 languages">
|
|
12
|
-
<img src="https://img.shields.io/badge/prompts-6-orange" alt="6 prompts">
|
|
13
|
-
<img src="https://img.shields.io/badge/security-190%2B-red" alt="190+ rules">
|
|
14
|
-
<img src="https://img.shields.io/badge/harnesses-7-lightgrey" alt="7 harnesses">
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<a href="https://github.com/fuze210699/milens
|
|
23
|
-
<a href="https://github.com/fuze210699
|
|
24
|
-
</
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
|
147
|
-
|
|
148
|
-
| **
|
|
149
|
-
| **
|
|
150
|
-
| **
|
|
151
|
-
| **
|
|
152
|
-
| **
|
|
153
|
-
| **
|
|
154
|
-
| **
|
|
155
|
-
| **
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
| **
|
|
167
|
-
| **
|
|
168
|
-
| **
|
|
169
|
-
| **
|
|
170
|
-
| **
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
|
176
|
-
|
|
177
|
-
| **
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
|
186
|
-
|
|
187
|
-
|
|
|
188
|
-
|
|
|
189
|
-
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
|
198
|
-
|
|
199
|
-
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
|
204
|
-
|
|
205
|
-
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
|
220
|
-
|
|
221
|
-
|
|
|
222
|
-
|
|
|
223
|
-
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
|
240
|
-
|
|
241
|
-
| `
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
|
248
|
-
|
|
249
|
-
| `
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
|
263
|
-
|
|
264
|
-
| `
|
|
265
|
-
| `
|
|
266
|
-
|
|
267
|
-
###
|
|
268
|
-
|
|
269
|
-
|
|
|
270
|
-
|---|---|
|
|
271
|
-
| `
|
|
272
|
-
| `
|
|
273
|
-
| `
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
|
282
|
-
|
|
283
|
-
| `
|
|
284
|
-
| `
|
|
285
|
-
| `
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
|
310
|
-
|
|
311
|
-
| `
|
|
312
|
-
| `
|
|
313
|
-
| `
|
|
314
|
-
| `
|
|
315
|
-
| `
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
| `
|
|
323
|
-
| `
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
|
336
|
-
|
|
337
|
-
| `
|
|
338
|
-
| `
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
| `
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
|
352
|
-
|
|
353
|
-
| `
|
|
354
|
-
| `
|
|
355
|
-
| `
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
|
371
|
-
|
|
372
|
-
|
|
|
373
|
-
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
| `
|
|
462
|
-
| `
|
|
463
|
-
| `
|
|
464
|
-
| `
|
|
465
|
-
| `
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
|
480
|
-
|
|
481
|
-
|
|
|
482
|
-
|
|
|
483
|
-
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<strong>Milens</strong><br>
|
|
3
|
+
<em>Your AI butler</em>
|
|
4
|
+
</p>
|
|
5
|
+
|
|
6
|
+
<p align="center">
|
|
7
|
+
<a href="https://www.npmjs.com/package/milens"><img src="https://img.shields.io/npm/v/milens" alt="npm"></a>
|
|
8
|
+
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" alt="node"></a>
|
|
9
|
+
<a href="https://github.com/fuze210699/milens/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license"></a>
|
|
10
|
+
<img src="https://img.shields.io/badge/tools-43-purple" alt="43 tools">
|
|
11
|
+
<img src="https://img.shields.io/badge/languages-12-blue" alt="12 languages">
|
|
12
|
+
<img src="https://img.shields.io/badge/prompts-6-orange" alt="6 prompts">
|
|
13
|
+
<img src="https://img.shields.io/badge/security-190%2B-red" alt="190+ rules">
|
|
14
|
+
<img src="https://img.shields.io/badge/harnesses-7-lightgrey" alt="7 harnesses">
|
|
15
|
+
<a href="https://github.com/fuze210699/milens/actions/workflows/milens-ci-test.yml"><img src="https://github.com/fuze210699/milens/actions/workflows/milens-ci-test.yml/badge.svg" alt="CI"></a>
|
|
16
|
+
<img src="https://img.shields.io/npm/dm/milens" alt="npm downloads">
|
|
17
|
+
<img src="https://img.shields.io/npm/dt/milens" alt="npm total">
|
|
18
|
+
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<a href="https://github.com/fuze210699/milens">⭐ Star</a> ·
|
|
23
|
+
<a href="https://github.com/sponsors/fuze210699">💖 Sponsor</a> ·
|
|
24
|
+
<a href="https://github.com/fuze210699/milens/discussions">💬 Discussions</a> ·
|
|
25
|
+
</p>
|
|
26
|
+
|
|
27
|
+
## The Problem
|
|
28
|
+
|
|
29
|
+
**Burning cash** on AI with **digital amnesia**? Every **blind edit** is a **production bomb** you pay to defuse.
|
|
30
|
+
**Milens** — *Your AI Butler*. Full codebase **memory**, instant **context**, **zero** repeated questions. It knows what's **fragile** before your agent **breaks** it.
|
|
31
|
+
|
|
32
|
+
> **Stop burning cash. Stop burning prod.**
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## What is Milens?
|
|
37
|
+
|
|
38
|
+
A **free**, self-hosted **knowledge graph** for your codebase — and the **MCP toolkit** that lets your AI agent query it instantly.
|
|
39
|
+
|
|
40
|
+
Instead of reading files blindly, your agent asks the graph.
|
|
41
|
+
Instead of guessing side effects, it sees **exact blast radius** before editing.
|
|
42
|
+
Instead of starting from zero, it **remembers** what you taught it last session.
|
|
43
|
+
|
|
44
|
+
**12 languages.** One SQLite file. **43 MCP tools.** Zero API costs.
|
|
45
|
+
|
|
46
|
+
> Parse locally. Query locally. Learn locally. **Forever free.**
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Supported Languages
|
|
51
|
+
|
|
52
|
+
<p align="center">
|
|
53
|
+
<img src="https://img.shields.io/badge/TypeScript-.ts%20.tsx-3178C6?logo=typescript&logoColor=white" alt="TS">
|
|
54
|
+
<img src="https://img.shields.io/badge/JavaScript-.js%20.jsx-F7DF1E?logo=javascript&logoColor=black" alt="JS">
|
|
55
|
+
<img src="https://img.shields.io/badge/Python-.py-3776AB?logo=python&logoColor=white" alt="PY">
|
|
56
|
+
<img src="https://img.shields.io/badge/Java-.java-ED8B00?logo=openjdk&logoColor=white" alt="Java">
|
|
57
|
+
<img src="https://img.shields.io/badge/Go-.go-00ADD8?logo=go&logoColor=white" alt="Go">
|
|
58
|
+
<img src="https://img.shields.io/badge/Rust-.rs-000000?logo=rust&logoColor=white" alt="Rust">
|
|
59
|
+
<img src="https://img.shields.io/badge/PHP-.php-777BB4?logo=php&logoColor=white" alt="PHP">
|
|
60
|
+
<img src="https://img.shields.io/badge/Ruby-.rb%20.rake-CC342D?logo=ruby&logoColor=white" alt="Ruby">
|
|
61
|
+
<img src="https://img.shields.io/badge/Vue-.vue-4FC08D?logo=vuedotjs&logoColor=white" alt="Vue">
|
|
62
|
+
<img src="https://img.shields.io/badge/HTML-.html%20.htm-E34F26?logo=html5&logoColor=white" alt="HTML">
|
|
63
|
+
<img src="https://img.shields.io/badge/CSS-.css-1572B6?logo=css3&logoColor=white" alt="CSS">
|
|
64
|
+
<img src="https://img.shields.io/badge/Markdown-.md%20.mdx-000000?logo=markdown&logoColor=white" alt="MD">
|
|
65
|
+
</p>
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Quick Start
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npm install -g milens
|
|
73
|
+
cd your-project
|
|
74
|
+
milens init --profile full --interactive
|
|
75
|
+
```
|
|
76
|
+
One command. Your codebase becomes a queryable graph. AGENTS.md, skills, and hooks ready.
|
|
77
|
+
|
|
78
|
+
Then connect your editor:
|
|
79
|
+
|
|
80
|
+
##### Visual Studio Code
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
.vscode/mcp.json
|
|
84
|
+
{
|
|
85
|
+
"servers": {
|
|
86
|
+
"milens": {
|
|
87
|
+
"type": "stdio",
|
|
88
|
+
"command": "milens",
|
|
89
|
+
"args": ["serve", "-p", "${workspaceFolder}"]
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
##### Claude Code
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
claude mcp add milens -- milens serve -p .
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Or in .mcp.json at plugin root:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
{
|
|
105
|
+
"mcpServers": {
|
|
106
|
+
"milens": {
|
|
107
|
+
"type": "stdio",
|
|
108
|
+
"command": "milens",
|
|
109
|
+
"args": ["serve", "-p", "${workspaceFolder}"]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
<details>
|
|
116
|
+
<summary><b>More editors</b> — Cursor, OpenCode, Codex, Gemini, Zed</summary>
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Cursor — .cursor/mcp.json
|
|
120
|
+
{ "mcpServers": { "milens": { "command": "milens", "args": ["serve", "-p", "${workspaceFolder}"] } } }
|
|
121
|
+
|
|
122
|
+
# OpenCode — opencode.json
|
|
123
|
+
{ "mcp": { "milens": { "type": "local", "command": ["milens", "serve", "-p", "."] } } }
|
|
124
|
+
|
|
125
|
+
# Codex — .codex/config.toml
|
|
126
|
+
[mcp_servers.milens]
|
|
127
|
+
command = "milens"
|
|
128
|
+
args = ["serve", "-p", "."]
|
|
129
|
+
|
|
130
|
+
# Gemini — .gemini/settings.json
|
|
131
|
+
{ "mcpServers": { "milens": { "command": "milens", "args": ["serve", "-p", "${workspaceFolder}"] } } }
|
|
132
|
+
|
|
133
|
+
# Zed — .zed/settings.json
|
|
134
|
+
{ "context_servers": { "milens": { "command": "milens serve -p ." } } }
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
</details>
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
> Verify Milens appears in your IDE's MCP server list. Then ask your agent: milens status. Green light means your codebase is indexed. You're live.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Why Milens
|
|
145
|
+
|
|
146
|
+
| Capability | Without Milens | With Milens |
|
|
147
|
+
|---|---|---|
|
|
148
|
+
| **Understand a codebase** | ⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
149
|
+
| **Edit safely** | ⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
150
|
+
| **Find references** | ⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
151
|
+
| **Review PRs** | ⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
152
|
+
| **Uninstall cleanly** | ⭐ | ⭐⭐⭐⭐⭐ |
|
|
153
|
+
| **Security audit** | ⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
154
|
+
| **Session memory** | ⭐ | ⭐⭐⭐⭐⭐ |
|
|
155
|
+
| **Write tests** | ⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
156
|
+
| **Find dead code** | ⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
157
|
+
|
|
158
|
+
*And many more — see [real-world scenarios →](https://milens.vercel.app/scenarios.html)*
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Architecture
|
|
163
|
+
|
|
164
|
+
| Layer | Technology | Output |
|
|
165
|
+
|---|---|---|
|
|
166
|
+
| **Ingestion** | Tree-sitter WASM | CST from 12 languages |
|
|
167
|
+
| **Analysis** | Dual-path resolver | Symbols + verified links |
|
|
168
|
+
| **Storage** | SQLite + FTS5 | Queryable knowledge graph |
|
|
169
|
+
| **Interface** | MCP stdio / HTTP | 43 tools |
|
|
170
|
+
| **Clients** | AI agents, CLI, editors | Context-aware actions |
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Key Features
|
|
174
|
+
|
|
175
|
+
| Feature | Description |
|
|
176
|
+
|---|---|
|
|
177
|
+
| **Code Intelligence** | 43 MCP tools — search, impact, context, trace, routes |
|
|
178
|
+
| **Security Scanner** | 190 rules across 9 categories + dependency audit |
|
|
179
|
+
| **Sub-Agent Prompts** | 6 prompts — plan, review, tdd, security, architect, debugger |
|
|
180
|
+
| **CLI Workflows** | 7 commands — tdd, review, plan, onboard, security-scan, refactor, handoff |
|
|
181
|
+
| **Uninstall** | Full cleanup — 11 trace categories, interactive or auto |
|
|
182
|
+
| **Metrics** | 7 metrics — TER, LR, CQI, BRR, TCGR, DCER, CTR |
|
|
183
|
+
| **Learning Engine** | Annotate → Recall → Evolve — confidence-based annotations |
|
|
184
|
+
| **12 Languages** | TS, JS, Python, Java, Go, Rust, PHP, Ruby, Vue, HTML, CSS, Markdown |
|
|
185
|
+
| **Cross-Language Linking** | HTML class → CSS selectors, Vue template → script symbols |
|
|
186
|
+
| **Type Bindings & MRO** | Infer types from constructors. C3, first-wins, ruby-mixin strategies |
|
|
187
|
+
| **Accuracy Validation** | 8 test projects with expected.json for precision/recall |
|
|
188
|
+
| **Symbol-Level PR Diff** | `review_pr` diffs actual symbols between commits, not entire files |
|
|
189
|
+
| **7 Editor Adapters** | Claude Code, Cursor, Copilot, OpenCode, Codex, Gemini, Zed |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Security & Privacy
|
|
194
|
+
|
|
195
|
+
**Zero trust. Zero network. Zero leaks.**
|
|
196
|
+
|
|
197
|
+
| | |
|
|
198
|
+
|:---|:---|
|
|
199
|
+
| 🔒 **Air-gapped** | Runs entirely offline. No outbound connections. No telemetry. |
|
|
200
|
+
| 🏠 **Your code, your disk** | Index lives in `.milens/` per repo. Gitignored by default. Zero source code in registry. |
|
|
201
|
+
| 🛡️ **Localhost-only** | MCP server binds `127.0.0.1` exclusively. External requests blocked. |
|
|
202
|
+
| ⚡ **Safe execution** | `execFileSync` with argument arrays. No shell string interpolation. No path traversal. |
|
|
203
|
+
| 🔍 **Offline audits** | Optional CVE check against local database. No API calls. |
|
|
204
|
+
| 🔐 **Private embeddings** | Optional. Generated locally via Xenova transformers. No data leaves your machine. |
|
|
205
|
+
| 🧱 **Input hardening** | ReDoS-safe regex. FTS5 tokens bound as SQLite literals. |
|
|
206
|
+
|
|
207
|
+
Everything that touches your code stays on your filesystem. **Built for production. Trust nothing.**
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Pricing
|
|
213
|
+
|
|
214
|
+
| | Free | Pro |
|
|
215
|
+
|---|---|---|
|
|
216
|
+
| **Cost** | $0 | $5/seat/month |
|
|
217
|
+
| **43 MCP tools** | ✓ | ✓ |
|
|
218
|
+
| **CLI + workflows** | ✓ | ✓ |
|
|
219
|
+
| **Security scanner** | 190 rules | 190 rules + advanced |
|
|
220
|
+
| **Private repos** | — | ✓ |
|
|
221
|
+
| **PR auto-review** | — | ✓ Every PR |
|
|
222
|
+
| **Push auto-index** | — | ✓ On push to main |
|
|
223
|
+
| **Analyses/month** | 10 (public repos) | 50/seat (pooled) |
|
|
224
|
+
| **Custom skill packs** | — | ✓ |
|
|
225
|
+
| **Priority support** | — | ✓ Email + Slack |
|
|
226
|
+
|
|
227
|
+
For solo devs: all 43 tools are free forever. For teams: the GitHub App automates review and security on every PR, saving ~$300/month in AI tokens for a team of 5. [Full pricing →](docs/pricing.md)
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## CLI Commands
|
|
232
|
+
|
|
233
|
+
### Core
|
|
234
|
+
|
|
235
|
+
| Command | Description |
|
|
236
|
+
|---|---|
|
|
237
|
+
| `init` | Bootstrap milens: index + AGENTS.md + skills + hooks |
|
|
238
|
+
| `analyze` | Index a codebase: parse symbols, resolve dependencies, build search index |
|
|
239
|
+
| `serve` | Start MCP server (stdio/HTTP) |
|
|
240
|
+
| `watch` | Watch files for changes and auto re-index |
|
|
241
|
+
| `status` | Show index status |
|
|
242
|
+
|
|
243
|
+
### Search & Inspect
|
|
244
|
+
|
|
245
|
+
| Command | Description |
|
|
246
|
+
|---|---|
|
|
247
|
+
| `search <query>` | Search symbols by name |
|
|
248
|
+
| `inspect <symbol>` | 360° view: refs, deps, hierarchy |
|
|
249
|
+
| `impact <symbol>` | Blast radius: what breaks if this symbol changes? |
|
|
250
|
+
|
|
251
|
+
### Maintenance
|
|
252
|
+
|
|
253
|
+
| Command | Description |
|
|
254
|
+
|---|---|
|
|
255
|
+
| `clean` | Remove index for a repository |
|
|
256
|
+
| `uninstall` | Remove all milens traces: injected blocks, generated files, hooks, cron, database, registry, MCP configs, deps, env vars |
|
|
257
|
+
| `upgrade` | Upgrade milens: clear npx cache, rebuild index while keeping annotations/sessions |
|
|
258
|
+
| `list` | List all indexed repositories |
|
|
259
|
+
|
|
260
|
+
### Security
|
|
261
|
+
|
|
262
|
+
| Command | Description |
|
|
263
|
+
|---|---|
|
|
264
|
+
| `security scan` | Scan project for vulnerabilities (190 rules, scope/severity filterable) |
|
|
265
|
+
| `security deps` | Audit dependencies for known vulnerabilities |
|
|
266
|
+
|
|
267
|
+
### Quality & Evolution
|
|
268
|
+
|
|
269
|
+
| Command | Description |
|
|
270
|
+
|---|---|
|
|
271
|
+
| `metrics` | Compute code quality and efficiency metrics |
|
|
272
|
+
| `evolve` | Promote high-confidence annotations to rules/skills |
|
|
273
|
+
| `orchestrate` | Full review cycle: detect changes → risk → coverage gaps → dead code |
|
|
274
|
+
|
|
275
|
+
### Workflows
|
|
276
|
+
|
|
277
|
+
| Command | Description |
|
|
278
|
+
|---|---|
|
|
279
|
+
| `workflow tdd` | Test coverage gaps + risk-prioritized untested symbols |
|
|
280
|
+
| `workflow review` | PR risk analysis — git diff + heat scoring |
|
|
281
|
+
| `workflow plan` | Codebase summary — domains, top hubs |
|
|
282
|
+
| `workflow onboard` | Onboarding report — structure, entry points |
|
|
283
|
+
| `workflow security-scan` | Full security audit |
|
|
284
|
+
| `workflow refactor` | Dead code detection + candidates |
|
|
285
|
+
| `workflow handoff` | Session knowledge summary |
|
|
286
|
+
|
|
287
|
+
### Hooks
|
|
288
|
+
|
|
289
|
+
| Command | Description |
|
|
290
|
+
|---|---|
|
|
291
|
+
| `hooks enable` | Turn on all hooks |
|
|
292
|
+
| `hooks disable` | Turn off hooks |
|
|
293
|
+
| `hooks profile <name>` | Apply hook presets (minimal, standard, full) |
|
|
294
|
+
|
|
295
|
+
### Dashboard
|
|
296
|
+
|
|
297
|
+
| Command | Description |
|
|
298
|
+
|---|---|
|
|
299
|
+
| `dashboard` | Open usage analytics dashboard in browser |
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## MCP Tools
|
|
304
|
+
|
|
305
|
+
### Search & Navigation
|
|
306
|
+
|
|
307
|
+
| Tool | Description |
|
|
308
|
+
|---|---|
|
|
309
|
+
| `query` | Find symbol definitions by name (FTS5) |
|
|
310
|
+
| `grep` | Text search across all files — code, templates, configs, docs |
|
|
311
|
+
| `context` | 360° view: incoming refs + outgoing deps |
|
|
312
|
+
| `get_file_symbols` | All symbols in a file |
|
|
313
|
+
| `get_type_hierarchy` | Inheritance/implementation tree |
|
|
314
|
+
| `semantic_search` | Hybrid FTS5 + vector search (requires `--embeddings`) |
|
|
315
|
+
| `find_similar` | Find symbols topologically similar |
|
|
316
|
+
|
|
317
|
+
### Impact & Safety
|
|
318
|
+
|
|
319
|
+
| Tool | Description |
|
|
320
|
+
|---|---|
|
|
321
|
+
| `impact` | Blast radius — what breaks if this symbol changes? |
|
|
322
|
+
| `edit_check` | Pre-edit safety: callers, export status, re-export chains, warnings |
|
|
323
|
+
| `overview` | Combined context + impact + grep in one call |
|
|
324
|
+
| `detect_changes` | Git diff → affected symbols + dependents |
|
|
325
|
+
| `find_dead_code` | Exported symbols with zero incoming references |
|
|
326
|
+
| `pre_commit_check` | Pre-commit risk: review_pr + dead code + coverage gaps |
|
|
327
|
+
| `compare_impact` | Compare impact graph before/after edit |
|
|
328
|
+
|
|
329
|
+
### Review & Testing
|
|
330
|
+
|
|
331
|
+
| Tool | Description |
|
|
332
|
+
|---|---|
|
|
333
|
+
| `review_pr` | PR risk assessment: symbol-level diff via git show, cross-file impact |
|
|
334
|
+
| `review_symbol` | Single symbol deep-dive: role, heat, dependents, test status, risk |
|
|
335
|
+
| `codebase_summary` | Compact codebase overview: domains, top hubs, coverage |
|
|
336
|
+
| `test_plan` | Dependency-aware test strategy: mocks, scenarios |
|
|
337
|
+
| `test_generate` | Auto-generate test file with framework detection |
|
|
338
|
+
| `test_coverage_gaps` | Untested exported symbols sorted by risk |
|
|
339
|
+
| `test_impact` | Map code changes to which test files to run |
|
|
340
|
+
|
|
341
|
+
### Orchestration
|
|
342
|
+
|
|
343
|
+
| Tool | Description |
|
|
344
|
+
|---|---|
|
|
345
|
+
| `orchestrate` | detect_changes → review_pr → impact → coverage gaps → dead code → action plan |
|
|
346
|
+
|
|
347
|
+
### Understanding
|
|
348
|
+
|
|
349
|
+
| Tool | Description |
|
|
350
|
+
|---|---|
|
|
351
|
+
| `smart_context` | Intent-aware: understand/edit/debug/test |
|
|
352
|
+
| `trace` | Execution flow: call chains from entrypoints to target |
|
|
353
|
+
| `routes` | Detect framework routes/endpoints (Express, FastAPI, NestJS, etc.) |
|
|
354
|
+
| `explain_relationship` | Shortest dependency path between two symbols |
|
|
355
|
+
| `domains` | Domain clusters: files forming logical modules |
|
|
356
|
+
|
|
357
|
+
### Memory & Sessions
|
|
358
|
+
|
|
359
|
+
| Tool | Description |
|
|
360
|
+
|---|---|
|
|
361
|
+
| `annotate` | Record a note about a symbol (persists across sessions) |
|
|
362
|
+
| `recall` | Retrieve annotations from past sessions |
|
|
363
|
+
| `session_start` | Register agent session for multi-agent coordination |
|
|
364
|
+
| `session_end` | End session and record stats |
|
|
365
|
+
| `session_context` | Get session metadata + annotations |
|
|
366
|
+
| `handoff` | Transfer context between agent sessions |
|
|
367
|
+
|
|
368
|
+
### Security
|
|
369
|
+
|
|
370
|
+
| Tool | Description |
|
|
371
|
+
|---|---|
|
|
372
|
+
| `security_scan` | Scan for vulnerabilities — 190 rules, 9 categories |
|
|
373
|
+
| `fix_apply` | Apply security fix to a file (creates backup) |
|
|
374
|
+
|
|
375
|
+
### Hooks
|
|
376
|
+
|
|
377
|
+
| Tool | Description |
|
|
378
|
+
|---|---|
|
|
379
|
+
| `hook_onFileChange` | Trigger when files are modified → impact summary |
|
|
380
|
+
| `hook_preCompact` | Save metrics snapshot before context compaction |
|
|
381
|
+
| `hook_postCompact` | Restore context by recalling annotations after compaction |
|
|
382
|
+
|
|
383
|
+
### Codebase Overview
|
|
384
|
+
|
|
385
|
+
| Tool | Description |
|
|
386
|
+
|---|---|
|
|
387
|
+
| `status` | Index stats: symbols, links, files, coverage, staleness |
|
|
388
|
+
| `repos` | List all indexed repositories with summary stats |
|
|
389
|
+
|
|
390
|
+
### Developer
|
|
391
|
+
|
|
392
|
+
| Tool | Description |
|
|
393
|
+
|---|---|
|
|
394
|
+
| `ast_explore` | Parse code snippet to S-expression AST tree |
|
|
395
|
+
| `test_query` | Run tree-sitter query against code snippet |
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## Editor Adapters
|
|
400
|
+
|
|
401
|
+
Milens works with any MCP-compatible agent:
|
|
402
|
+
|
|
403
|
+
| Harness | Config File | Recommended Profile |
|
|
404
|
+
|---|---|---|
|
|
405
|
+
| **Claude Code** | `.claude/mcp.json` | standard |
|
|
406
|
+
| **OpenCode** | `.opencode/config.json` | standard |
|
|
407
|
+
| **VS Code / Copilot** | `.vscode/mcp.json` | standard |
|
|
408
|
+
| **Cursor** | `.cursorrules` | standard |
|
|
409
|
+
| **Codex** | `.codex/codex.md` | standard |
|
|
410
|
+
| **Gemini** | `.gemini/context.md` | minimal (10 tools) |
|
|
411
|
+
| **Zed** | `.zed/settings.json` | minimal |
|
|
412
|
+
|
|
413
|
+
Each adapter is in the `adapters/` directory with ready-to-copy config files and agent instructions.
|
|
414
|
+
|
|
415
|
+
### Profile Selection
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
MILENS_PROFILE=minimal milens serve # 10 tools — lighter footprint
|
|
419
|
+
MILENS_PROFILE=standard milens serve # 25 tools — full daily coding
|
|
420
|
+
milens serve --profile full # 43 tools — everything
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## 🔒 Security Scanner
|
|
426
|
+
|
|
427
|
+
> **190+ rules. 25 categories. One call.**
|
|
428
|
+
|
|
429
|
+
Replace ten manual greps with a single `security_scan()`. OWASP Top 10 mapped. Offline. Zero API calls.
|
|
430
|
+
|
|
431
|
+
| Category | Rules | Detects |
|
|
432
|
+
|:---:|:---:|:---|
|
|
433
|
+
| 🔑 **Secrets** | 70+ | AWS keys, GitHub tokens, JWT secrets, private keys, cloud credentials |
|
|
434
|
+
| 💉 **Injection** | 26 | SQLi, NoSQLi, XSS, SSTI, LDAP, XPath, CRLF, GraphQL |
|
|
435
|
+
| 🧨 **RCE** | 6 | `eval()`, `exec()`, `child_process`, PowerShell, dynamic class loading |
|
|
436
|
+
| 🧬 **Deserialization** | 9 | `pickle`, `yaml.load`, Java `readObject`, PHP `unserialize` |
|
|
437
|
+
| 🌐 **SSRF** | 4 | User-controlled URL fetch, file/gopher protocols, cloud metadata |
|
|
438
|
+
| 📁 **File Access** | 6 | Path traversal, `fs.readFile` with user input, unrestricted upload |
|
|
439
|
+
| 🔐 **Auth** | 12 | Missing middleware, JWT none alg, IDOR, mass assignment, session fixation |
|
|
440
|
+
| 🛡️ **Crypto** | 15 | MD5, SHA1, DES, ECB, weak RSA, custom crypto, `Math.random()` for tokens |
|
|
441
|
+
| ⚙️ **Config** | 5 | CORS wildcard, insecure cookies, debug mode in production |
|
|
442
|
+
| 📤 **Data Leaks** | 5 | `console.log(password)`, hardcoded URLs with credentials |
|
|
443
|
+
| 🔤 **Unicode** | 4 | Bidi override, zero-width chars, homoglyph attacks |
|
|
444
|
+
| 🐳 **IaC** | 3+ | Dockerfile secrets, K8s hardcoded creds, Terraform exposed keys |
|
|
445
|
+
|
|
446
|
+
**Dependency audit included:**
|
|
447
|
+
```bash
|
|
448
|
+
milens security scan # Full audit, 190+ rules
|
|
449
|
+
milens security scan --scope secrets --severity HIGH
|
|
450
|
+
milens security deps # Offline CVE check: npm, Python, Rust, Go, Java
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
From an AI agent: `security_scan({scope: "all", severity: "HIGH"})`
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
## Sub-Agent Prompts
|
|
458
|
+
|
|
459
|
+
| Prompt | Purpose |
|
|
460
|
+
|---|---|
|
|
461
|
+
| `milens-planner` | Implementation planning with blast radius + test strategy |
|
|
462
|
+
| `milens-reviewer` | PR review — risk scan → deep dive → dead code → security |
|
|
463
|
+
| `milens-tester` | TDD — coverage gaps → test plans → implement → verify |
|
|
464
|
+
| `milens-security` | Security audit — secrets, injection, unicode, crypto, config |
|
|
465
|
+
| `milens-architect` | Architecture analysis — domains, routes, coupling, hierarchy |
|
|
466
|
+
| `milens-debugger` | Root cause analysis — trace → blast radius → hypotheses → fixes |
|
|
467
|
+
| `dead_code_remove` | Safe dead code removal with impact verification |
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## Metrics
|
|
472
|
+
|
|
473
|
+
Seven quantified metrics for AI-driven development:
|
|
474
|
+
|
|
475
|
+
| Metric | Full Name | What It Tracks |
|
|
476
|
+
|---|---|---|
|
|
477
|
+
| **TER** | Token Efficiency Ratio | Useful tokens ÷ total tokens |
|
|
478
|
+
| **LR** | Learning Rate | Savings gained ÷ savings possible |
|
|
479
|
+
| **CQI** | Code Quality Index | Coverage + security + coupling + docs |
|
|
480
|
+
| **BRR** | Bug Recurrence Rate | Bugs repeated ÷ total fixed |
|
|
481
|
+
| **TCGR** | Test Coverage Growth Rate | Weekly coverage improvement |
|
|
482
|
+
| **DCER** | Dead Code Elimination Rate | Dead symbols ÷ total exported |
|
|
483
|
+
| **CTR** | Cycle Time Reduction | Time saved vs manual approach |
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
milens metrics
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
---
|
|
490
|
+
|
|
491
|
+
## Learning & Evolution
|
|
492
|
+
|
|
493
|
+
The system gets smarter every session:
|
|
494
|
+
|
|
495
|
+
```
|
|
496
|
+
SESSION 1: Agent finds bug in createUser()
|
|
497
|
+
→ annotate({symbol: "createUser", key: "bug", value: "Call createUser() before normalizeEmail()"})
|
|
498
|
+
→ confidence: 0.5
|
|
499
|
+
|
|
500
|
+
SESSION 2: Agent auto-recalls the annotation
|
|
501
|
+
→ "I know createUser() has a known issue. I'll handle the order correctly."
|
|
502
|
+
→ Bug avoided. confidence ↑ 0.7
|
|
503
|
+
|
|
504
|
+
SESSION 5: Confidence reaches 0.9
|
|
505
|
+
→ milens evolve promotes it to .agents/skills/milens-bug/SKILL.md
|
|
506
|
+
→ Now enforced as a rule for every future session
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## Hook System (6 Triggers)
|
|
512
|
+
|
|
513
|
+
| Hook | When | Default Action |
|
|
514
|
+
|---|---|---|
|
|
515
|
+
| `onSessionStart` | Agent begins work | Refresh index + codebase_summary + recall past warnings |
|
|
516
|
+
| `onSessionEnd` | Agent finishes | detect_changes + review_pr + auto-annotate changed symbols |
|
|
517
|
+
| `onPreCommit` | Before `git commit` | detect_changes + review_pr + find_dead_code |
|
|
518
|
+
| `onFileChange` | Files modified | Re-analyze changed files + impact on affected symbols |
|
|
519
|
+
| `onPreCompact` | Before context window compaction | Save codebase_summary snapshot |
|
|
520
|
+
| `onPostCompact` | After compaction | recall annotations to restore lost context |
|
|
521
|
+
|
|
522
|
+
```bash
|
|
523
|
+
milens hooks enable # Turn on all hooks
|
|
524
|
+
milens hooks profile standard # Preset: SessionStart, SessionEnd, PreCommit
|
|
525
|
+
milens hooks disable --hook preCommit # Turn off one hook
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
---
|
|
529
|
+
|
|
530
|
+
## Contributing
|
|
531
|
+
|
|
532
|
+
| Type | How | Where |
|
|
533
|
+
|---|---|---|
|
|
534
|
+
| **Skill files** | Create reusable agent workflows | `.agents/skills/` |
|
|
535
|
+
| **Security rules** | Add new vulnerability patterns | `src/security/rules.ts` |
|
|
536
|
+
| **Adapter packs** | Connect milens to new harnesses | `adapters/` |
|
|
537
|
+
| **Core features** | Improve tools, parser, analyzer | `src/` |
|
|
538
|
+
| **Documentation** | Fix docs, add examples | `docs/` |
|
|
539
|
+
| **Bug reports** | Report issues with reproduction | [Issues](https://github.com/fuze210699/milens/issues) |
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
git clone https://github.com/fuze210699/milens.git
|
|
543
|
+
cd milens
|
|
544
|
+
npm install && npm run build && npm test
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for full details — skill format, security rule format, PR process, and code of conduct.
|
|
548
|
+
|
|
549
|
+
---
|
|
550
|
+
|
|
551
|
+
## License
|
|
552
|
+
|
|
553
|
+
Core (analyzer, parser, store, CLI, MCP tools): **MIT License**
|
|
554
|
+
See [LICENSE](LICENSE) for details.
|
|
555
|
+
|
|
556
|
+
---
|
|
557
|
+
|
|
558
|
+
<p align="center">
|
|
559
|
+
<a href="https://github.com/fuze210699/milens">GitHub</a> ·
|
|
560
|
+
<a href="https://github.com/fuze210699/milens/tree/main/docs">Docs</a> ·
|
|
561
|
+
<a href="https://github.com/fuze210699/milens/blob/main/docs/cli.md">CLI</a> ·
|
|
562
|
+
<a href="https://github.com/fuze210699/milens/blob/main/docs/accuracy.md">Accuracy</a> ·
|
|
563
|
+
<a href="https://github.com/fuze210699/milens/blob/main/docs/languages.md">Languages</a> ·
|
|
564
|
+
<a href="https://github.com/fuze210699/milens/blob/main/docs/pricing.md">Pricing</a> ·
|
|
565
|
+
<a href="https://github.com/fuze210699/milens/blob/main/CONTRIBUTING.md">Contribute</a> ·
|
|
566
|
+
<a href="https://github.com/fuze210699/milens/blob/main/CHANGELOG.md">Changelog</a> ·
|
|
567
|
+
<a href="https://github.com/fuze210699/milens/blob/main/SECURITY.md">Security</a>
|
|
568
|
+
</p>
|