natureco-cli 5.43.0 → 5.43.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/CHANGELOG.md +5 -0
- package/README.md +578 -609
- package/package.json +1 -1
- package/src/utils/config.js +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NatureCo CLI will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [5.43.1] - 2026-07-08 — "SECURITY: config restore artık 0600 izniyle yazıyor"
|
|
6
|
+
|
|
7
|
+
### Security
|
|
8
|
+
- **`restoreConfig()` config.json'ı zayıf izinle yeniden yazıyordu**: v5.43.0'da `saveConfig()` ve `createBackup()` `0600`/chmod ile korunmuştu ama `restoreConfig()` atlanmıştı — bir yedekten geri yükleme (`config restore`) API anahtarları içeren aktif `config.json`'ı yeniden dünya-okunabilir (`0644`) hale getiriyordu. Artık `saveConfig()` ile aynı şekilde `{ mode: 0o600 }` + `chmodSync` fallback ile yazılır. Regresyon testi eklendi (POSIX). 568 test yeşil, ESLint temiz.
|
|
9
|
+
|
|
5
10
|
## [5.43.0] - 2026-07-08 — "SECURITY: 9 açık kapatıldı (3 turluk güvenlik incelemesi)"
|
|
6
11
|
|
|
7
12
|
### Security
|
package/README.md
CHANGED
|
@@ -1,609 +1,578 @@
|
|
|
1
|
-
# NatureCo CLI
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/natureco-cli)
|
|
4
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[]()
|
|
6
|
-
[](https://www.npmjs.com/package/natureco-cli)
|
|
8
|
-
[](https://github.com/natureco-official/natureco-cli)
|
|
9
|
-
|
|
10
|
-
> **
|
|
11
|
-
> *
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
**Claude Code
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
███╗ ██╗ █████╗ ████████╗██╗ ██╗██████╗ ███████╗ ██████╗ ██████╗
|
|
19
|
-
████╗ ██║██╔══██╗╚══██╔══╝██║ ██║██╔══██╗██╔════╝██╔════╝ ██╔═══██╗
|
|
20
|
-
██╔██╗ ██║███████║ ██║ ██║ ██║██████╔╝█████╗ ██║ ██║ ██║
|
|
21
|
-
██║╚██╗██║██╔══██║ ██║ ██║ ██║██╔══██╗██╔══╝ ██║ ██║ ██║
|
|
22
|
-
██║ ╚████║██║ ██║ ██║ ╚██████╔╝██║ ██║███████╗╚██████╗ ╚██████╔╝
|
|
23
|
-
╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## 🚀
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
# 1.
|
|
32
|
-
npm install -g natureco-cli
|
|
33
|
-
|
|
34
|
-
# 2.
|
|
35
|
-
natureco setup
|
|
36
|
-
|
|
37
|
-
# 3.
|
|
38
|
-
natureco chat
|
|
39
|
-
|
|
40
|
-
# 4.
|
|
41
|
-
natureco code
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**30
|
|
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
|
-
natureco
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
natureco
|
|
222
|
-
natureco
|
|
223
|
-
natureco
|
|
224
|
-
natureco
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
natureco
|
|
228
|
-
natureco
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
natureco
|
|
237
|
-
natureco
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
natureco
|
|
247
|
-
natureco
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
natureco
|
|
251
|
-
natureco
|
|
252
|
-
|
|
253
|
-
natureco
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
natureco
|
|
261
|
-
natureco
|
|
262
|
-
natureco
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
natureco
|
|
266
|
-
|
|
267
|
-
natureco
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
natureco
|
|
275
|
-
natureco
|
|
276
|
-
natureco
|
|
277
|
-
|
|
278
|
-
natureco
|
|
279
|
-
natureco
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
natureco
|
|
283
|
-
natureco
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
natureco
|
|
295
|
-
|
|
296
|
-
natureco
|
|
297
|
-
natureco
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
natureco
|
|
304
|
-
natureco
|
|
305
|
-
natureco
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
natureco
|
|
309
|
-
|
|
310
|
-
natureco
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
natureco
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
natureco
|
|
325
|
-
natureco
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
natureco
|
|
333
|
-
natureco
|
|
334
|
-
natureco
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
natureco
|
|
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
|
-
natureco
|
|
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
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
natureco
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
```
|
|
580
|
-
|
|
581
|
-
**Katkıda bulunanlar:** [CONTRIBUTORS.md](https://github.com/natureco-official/natureco-cli/blob/main/CONTRIBUTORS.md)
|
|
582
|
-
|
|
583
|
-
---
|
|
584
|
-
|
|
585
|
-
## 📄 Lisans
|
|
586
|
-
|
|
587
|
-
MIT © [NatureCo](https://github.com/natureco)
|
|
588
|
-
|
|
589
|
-
---
|
|
590
|
-
|
|
591
|
-
## 🙏 Teşekkürler
|
|
592
|
-
|
|
593
|
-
- [OpenAI](https://openai.com) — GPT API
|
|
594
|
-
- [Anthropic](https://anthropic.com) — Claude API
|
|
595
|
-
- [MiniMax](https://api.minimax.io) — AI provider
|
|
596
|
-
- [Baileys](https://github.com/WhiskeySockets/Baileys) — WhatsApp Web
|
|
597
|
-
- [imsg](https://github.com/steipete/imsg) — iMessage CLI
|
|
598
|
-
- [ripgrep](https://github.com/BurntSushi/ripgrep) — fast search
|
|
599
|
-
|
|
600
|
-
---
|
|
601
|
-
|
|
602
|
-
<p align="center">
|
|
603
|
-
<b>Yapay Zekânın Gücü artık parmaklarının ucunda.</b><br>
|
|
604
|
-
<i>Terminalin hızını NatureCo ile keşfet.</i>
|
|
605
|
-
</p>
|
|
606
|
-
|
|
607
|
-
<p align="center">
|
|
608
|
-
Made with 🌿 in Turkey
|
|
609
|
-
</p>
|
|
1
|
+
# NatureCo CLI
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/natureco-cli)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[]()
|
|
6
|
+
[]()
|
|
7
|
+
[](https://www.npmjs.com/package/natureco-cli)
|
|
8
|
+
[](https://github.com/natureco-official/natureco-cli)
|
|
9
|
+
|
|
10
|
+
> **The power of AI, now at your fingertips.**
|
|
11
|
+
> *Discover the speed of the terminal with NatureCo.*
|
|
12
|
+
|
|
13
|
+
A terminal-native AI agent CLI — chat, write code, automate workflows, and connect **Telegram / Discord / Slack / WhatsApp / iMessage** and more.
|
|
14
|
+
|
|
15
|
+
**A Claude Code & OpenClaw alternative** · Multi-agent orchestration · Cross-session memory · Dangerous-command approval · 12 providers, 200+ models · 57+ tools · 10 messaging channels.
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
███╗ ██╗ █████╗ ████████╗██╗ ██╗██████╗ ███████╗ ██████╗ ██████╗
|
|
19
|
+
████╗ ██║██╔══██╗╚══██╔══╝██║ ██║██╔══██╗██╔════╝██╔════╝ ██╔═══██╗
|
|
20
|
+
██╔██╗ ██║███████║ ██║ ██║ ██║██████╔╝█████╗ ██║ ██║ ██║
|
|
21
|
+
██║╚██╗██║██╔══██║ ██║ ██║ ██║██╔══██╗██╔══╝ ██║ ██║ ██║
|
|
22
|
+
██║ ╚████║██║ ██║ ██║ ╚██████╔╝██║ ██║███████╗╚██████╗ ╚██████╔╝
|
|
23
|
+
╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 🚀 Quick Start
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# 1. Install
|
|
32
|
+
npm install -g natureco-cli
|
|
33
|
+
|
|
34
|
+
# 2. First-run setup wizard (provider, model, bot name)
|
|
35
|
+
natureco setup
|
|
36
|
+
|
|
37
|
+
# 3. Start chatting
|
|
38
|
+
natureco chat
|
|
39
|
+
|
|
40
|
+
# 4. Or launch the coding agent
|
|
41
|
+
natureco code
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Ready in 30 seconds.** On first launch, the wizard walks you through it: pick a provider → enter your API key → choose a model → name your bot. That's it.
|
|
45
|
+
|
|
46
|
+
> **Cross-platform:** works natively on **macOS, Windows, and Linux**. Core tools (file, search, shell, git, code execution, web, memory) are OS-agnostic; platform-specific helpers degrade gracefully.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 🆕 What's New
|
|
51
|
+
|
|
52
|
+
| Version | Highlights |
|
|
53
|
+
|---------|-----------|
|
|
54
|
+
| **v5.43.0** | **Security:** 9 vulnerabilities fixed in a 3-round audit (RCE chain, admin-rpc auth, cron persistence, channel access control). See [`SECURITY_AUDIT_SUMMARY.md`](SECURITY_AUDIT_SUMMARY.md). |
|
|
55
|
+
| **v5.42.0** | **Token optimization** — prompts trimmed by ~76% (skill index made compact; big cost savings on multi-step tasks). |
|
|
56
|
+
| **v5.41.0** | **Multi-agent orchestration** — the agent can spawn focused sub-agents (`sub_agent`) and produce step-by-step plans (`plan`) before acting. |
|
|
57
|
+
| **v5.40.0** | **Cross-session memory** correctness fix — facts are saved and recalled reliably across sessions. |
|
|
58
|
+
| **v5.39.0** | **Cross-platform** — first-class Windows/macOS/Linux support (pure-Node search fallback, platform-aware helpers). |
|
|
59
|
+
| **v5.38.0** | git command-injection fix + `code_execution`/`http_request` improvements. |
|
|
60
|
+
|
|
61
|
+
### Slash-Prefix Command System
|
|
62
|
+
|
|
63
|
+
On **iMessage and WhatsApp**, only messages starting with `/` are processed as commands:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
You > /hello how are you?
|
|
67
|
+
AI Hey! 🙌 Doing great — how about you?
|
|
68
|
+
|
|
69
|
+
You > /tell me a joke
|
|
70
|
+
AI Sure! A classic programmer joke...
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Regular messages are **skipped** (loop prevention), so:
|
|
74
|
+
- ✅ The bot never replies to its own messages
|
|
75
|
+
- ✅ No echo loops
|
|
76
|
+
- ✅ Only `/`-prefixed messages reach the AI
|
|
77
|
+
|
|
78
|
+
### Dangerous-Command Approval
|
|
79
|
+
|
|
80
|
+
A smart approval system that prompts **only for risky operations**:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Auto-approved (safe)
|
|
84
|
+
natureco memory write "favorite color is red"
|
|
85
|
+
✓ Memory added
|
|
86
|
+
|
|
87
|
+
# Approval required (risky)
|
|
88
|
+
rm -rf node_modules
|
|
89
|
+
🔴 HIGH RISK: file-deletion command
|
|
90
|
+
Continue? (Y/n)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Risk detection:**
|
|
94
|
+
- `rm -rf`, `sudo`, `dd if=` → 🔴 HIGH
|
|
95
|
+
- `chmod 777`, `mv` → 🟡 MEDIUM
|
|
96
|
+
- `mv .env` → 🔴 (sensitive file)
|
|
97
|
+
|
|
98
|
+
Two-tier policy (`deny` / `allowlist` / `full`) applies to **every** shell path — no tool bypasses it.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## ✨ Features
|
|
103
|
+
|
|
104
|
+
### 🤖 AI & Chat
|
|
105
|
+
- **57+ tools** — file ops, web search, image generation, code execution, memory, and more
|
|
106
|
+
- **Interactive REPL** — read_file, edit_file, bash, multi-turn conversation
|
|
107
|
+
- **Slash commands** — `/memory`, `/help`, `/skills`, `/model`, `/clear`
|
|
108
|
+
- **Streaming output** with live tool-call visibility and a thinking indicator
|
|
109
|
+
- **Persistent memory** — fact-based, cross-session
|
|
110
|
+
|
|
111
|
+
### 💻 Coding Agent (Claude Code alternative)
|
|
112
|
+
- **Read / Write / Edit** multi-file operations
|
|
113
|
+
- **Sandboxed shell execution** with the approval flow
|
|
114
|
+
- **Multi-agent orchestration** — spawn focused sub-agents and plan before acting
|
|
115
|
+
- **Skills** — progressive-disclosure expertise loaded on demand via `skill_view`
|
|
116
|
+
- **Verify loop** — the agent runs and tests the code it writes
|
|
117
|
+
|
|
118
|
+
### 📡 10 Messaging Channels
|
|
119
|
+
|
|
120
|
+
| Platform | Connect | Notes |
|
|
121
|
+
|----------|---------|-------|
|
|
122
|
+
| **Telegram** | `natureco telegram connect` | ✅ |
|
|
123
|
+
| **WhatsApp** | `natureco whatsapp connect` | ✅ (Baileys) |
|
|
124
|
+
| **iMessage** | `natureco imessage connect` | ✅ (imsg CLI) |
|
|
125
|
+
| **Discord** | `natureco discord connect` | Token |
|
|
126
|
+
| **Slack** | `natureco slack connect` | Token |
|
|
127
|
+
| **Mattermost** | `natureco mattermost connect` | URL |
|
|
128
|
+
| **IRC** | `natureco irc connect` | Server |
|
|
129
|
+
| **Signal** | `natureco signal connect` | signal-cli |
|
|
130
|
+
| **SMS** | `natureco sms connect` | Twilio |
|
|
131
|
+
| **Webhooks** | `natureco webhooks list` | ✅ |
|
|
132
|
+
|
|
133
|
+
**Gateway:** `natureco gateway start` — run all channels in a single process. Per-channel sender allow-lists keep unauthorized users out, and personal memory is never leaked to them.
|
|
134
|
+
|
|
135
|
+
### 🌿 NatureCo Native
|
|
136
|
+
- **NatureHub** sharing (social feed)
|
|
137
|
+
- **Medium** article drafting/publishing
|
|
138
|
+
- **SEO** analysis (score 0–100)
|
|
139
|
+
- **XP & levels** (gamification)
|
|
140
|
+
|
|
141
|
+
### 🛡️ Security & Observability
|
|
142
|
+
- **Dangerous-command approval** — risk detection on every shell path
|
|
143
|
+
- **Command-injection safe** — structured process spawning (`execFileSync`), no shell string interpolation
|
|
144
|
+
- **Local-only admin RPC** — bound to `127.0.0.1`, mandatory bearer token, secrets masked by default
|
|
145
|
+
- **Secure at rest** — config, backups, and session files stored `0600`/`0700`
|
|
146
|
+
- **Audit logs** — every operation recorded
|
|
147
|
+
- **Cost tracking** — AI spend by today/week/month/budget
|
|
148
|
+
- **Security audit** — `natureco security audit`
|
|
149
|
+
|
|
150
|
+
### ⚙️ Automation & Scheduling
|
|
151
|
+
- **Cron jobs** — `natureco cron add` (app-managed by default; system crontab is opt-in and approval-gated)
|
|
152
|
+
- **Hooks** — event-driven automation
|
|
153
|
+
- **Webhooks** — HTTP callbacks
|
|
154
|
+
- **Tasks (Kanban)** — `natureco tasks`
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 📋 Commands (A–Z, 120+ commands)
|
|
159
|
+
|
|
160
|
+
### 🤖 AI & Chat
|
|
161
|
+
|
|
162
|
+
| Command | Description |
|
|
163
|
+
|---------|-------------|
|
|
164
|
+
| `natureco chat` | Interactive REPL chat (57+ tools active) |
|
|
165
|
+
| `natureco chat --resume` | Resume the previous session |
|
|
166
|
+
| `natureco code` | Coding agent (write apps/scripts) |
|
|
167
|
+
| `natureco code <file>` | Coding agent on a specific file |
|
|
168
|
+
| `natureco run <script>` | Run a Markdown workflow script |
|
|
169
|
+
| `natureco ask "<question>"` | One-shot question to the AI |
|
|
170
|
+
| `natureco bots` | List available bots |
|
|
171
|
+
| `natureco models` | Manage provider models |
|
|
172
|
+
| `natureco ultrareview <file>` | Deep code review |
|
|
173
|
+
|
|
174
|
+
**In-REPL slash commands:**
|
|
175
|
+
```
|
|
176
|
+
/clear Clear the screen
|
|
177
|
+
/bot Switch bot
|
|
178
|
+
/skills Show active skills
|
|
179
|
+
/memory Memory status
|
|
180
|
+
/memory clear Clear memory
|
|
181
|
+
/commands List all commands
|
|
182
|
+
/help Help
|
|
183
|
+
exit / quit Exit
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### ⚙️ Setup & Config
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
natureco setup # First-run setup wizard
|
|
190
|
+
natureco login # Enter API key
|
|
191
|
+
natureco logout # Log out
|
|
192
|
+
natureco init # Initialize a project (create SOUL.md)
|
|
193
|
+
natureco doctor # System health check
|
|
194
|
+
natureco doctor --fix # Auto-fix
|
|
195
|
+
natureco config list # Show configuration
|
|
196
|
+
natureco config set <key> <value>
|
|
197
|
+
natureco configure # Interactive config
|
|
198
|
+
natureco update # Update the CLI
|
|
199
|
+
natureco completion bash|powershell
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### 📡 Channels (10 messaging platforms)
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
# All channels
|
|
206
|
+
natureco channels # List connected channels
|
|
207
|
+
natureco channels add <type> # Add a channel
|
|
208
|
+
natureco channels remove <type>
|
|
209
|
+
|
|
210
|
+
# Telegram
|
|
211
|
+
natureco telegram connect # Save token
|
|
212
|
+
natureco telegram chatid # Auto-detect chat ID
|
|
213
|
+
natureco telegram allow <id> # Allow a chat
|
|
214
|
+
natureco telegram status
|
|
215
|
+
|
|
216
|
+
# WhatsApp (Baileys)
|
|
217
|
+
natureco whatsapp connect
|
|
218
|
+
natureco whatsapp status
|
|
219
|
+
|
|
220
|
+
# iMessage (imsg CLI)
|
|
221
|
+
natureco imessage connect
|
|
222
|
+
natureco imessage status
|
|
223
|
+
natureco imessage allow <number>
|
|
224
|
+
natureco imessage send <number> <message>
|
|
225
|
+
|
|
226
|
+
# Discord, Slack, Mattermost, IRC, Signal, SMS, Webhooks
|
|
227
|
+
natureco discord connect
|
|
228
|
+
natureco slack connect
|
|
229
|
+
natureco mattermost connect
|
|
230
|
+
natureco irc connect
|
|
231
|
+
natureco signal connect
|
|
232
|
+
natureco sms connect
|
|
233
|
+
natureco webhooks list
|
|
234
|
+
|
|
235
|
+
# Gateway — start all channels
|
|
236
|
+
natureco gateway start
|
|
237
|
+
natureco gateway stop
|
|
238
|
+
natureco gateway status
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### 🧠 Memory & Sessions
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
natureco memory write "favorite color is red"
|
|
245
|
+
natureco memory write "user_name=patron"
|
|
246
|
+
natureco memory search "color"
|
|
247
|
+
natureco memory status
|
|
248
|
+
natureco memory list
|
|
249
|
+
natureco memory clear
|
|
250
|
+
natureco memory export
|
|
251
|
+
natureco memory import <file>
|
|
252
|
+
|
|
253
|
+
natureco sessions list # All sessions
|
|
254
|
+
natureco sessions show <id> # Session details
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### 🔌 Skills, MCP, Plugins
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
natureco skills list # Active skills
|
|
261
|
+
natureco skills install <name>
|
|
262
|
+
natureco skills remove <name>
|
|
263
|
+
|
|
264
|
+
natureco mcp list # MCP servers
|
|
265
|
+
natureco mcp add <name> <url>
|
|
266
|
+
|
|
267
|
+
natureco plugins list
|
|
268
|
+
natureco plugins install <name>
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### ⏰ Automation
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
natureco cron add # Scheduled task
|
|
275
|
+
natureco cron list
|
|
276
|
+
natureco cron remove --name <name>
|
|
277
|
+
|
|
278
|
+
natureco hooks list # Event hooks
|
|
279
|
+
natureco hooks create
|
|
280
|
+
|
|
281
|
+
natureco tasks list # Kanban (todo)
|
|
282
|
+
natureco tasks add
|
|
283
|
+
natureco tasks done <id>
|
|
284
|
+
|
|
285
|
+
natureco webhooks list # Webhook URLs
|
|
286
|
+
natureco webhooks add <url>
|
|
287
|
+
|
|
288
|
+
natureco dashboard # Web dashboard (localhost)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### 🔍 Developer Tools
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
natureco git status # Git status
|
|
295
|
+
natureco git diff # Diff
|
|
296
|
+
natureco git log # Commit log
|
|
297
|
+
natureco git branches # Branch list
|
|
298
|
+
|
|
299
|
+
natureco audit today # Today's operations
|
|
300
|
+
natureco audit stats # Statistics
|
|
301
|
+
natureco audit files # File changes
|
|
302
|
+
|
|
303
|
+
natureco cost today # Today's AI cost
|
|
304
|
+
natureco cost week
|
|
305
|
+
natureco cost month
|
|
306
|
+
natureco cost budget 50 # $50 limit
|
|
307
|
+
|
|
308
|
+
natureco security audit # Sensitive-file / config scan
|
|
309
|
+
|
|
310
|
+
natureco logs # Log files
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### 🌿 NatureCo Native
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
natureco naturehub post <text> # Share to NatureHub
|
|
317
|
+
natureco naturehub feed # View the feed
|
|
318
|
+
|
|
319
|
+
natureco seo audit natureco.me # SEO analysis (score)
|
|
320
|
+
|
|
321
|
+
natureco medium draft # Medium article draft
|
|
322
|
+
natureco medium publish <file> # Publish
|
|
323
|
+
|
|
324
|
+
natureco xp rewards # XP & levels
|
|
325
|
+
natureco xp leaderboard
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### 🛡️ Management
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
natureco reset --scope config # Reset
|
|
332
|
+
natureco reset --scope memory
|
|
333
|
+
natureco reset --scope sessions
|
|
334
|
+
natureco reset --scope all --yes
|
|
335
|
+
|
|
336
|
+
natureco uninstall
|
|
337
|
+
|
|
338
|
+
natureco approvals # Approval management
|
|
339
|
+
natureco approvals allow <cmd>
|
|
340
|
+
|
|
341
|
+
natureco admin-rpc start # Local admin RPC (127.0.0.1, bearer-token auth)
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## 🌐 Provider Support (12 providers, 200+ models)
|
|
347
|
+
|
|
348
|
+
| Provider | Models | API Key |
|
|
349
|
+
|----------|--------|---------|
|
|
350
|
+
| **OpenAI** | GPT-5, GPT-4.1, o3, GPT-4o | OpenAI |
|
|
351
|
+
| **Anthropic** | Claude Opus 4, Sonnet 4, Haiku | Anthropic |
|
|
352
|
+
| **Gemini** | 2.5 Pro, 2.0 Flash, Gemma | Google |
|
|
353
|
+
| **Groq** | Llama 3.3, Mixtral | Groq |
|
|
354
|
+
| **DeepSeek** | R1, Chat V3 | DeepSeek |
|
|
355
|
+
| **Ollama** | Llama, Qwen (local) | — |
|
|
356
|
+
| **MiniMax** | M2.5, M2 | MiniMax |
|
|
357
|
+
| **OpenRouter** | 15+ models (multi-provider) | OpenRouter |
|
|
358
|
+
| **Mistral** | Large, Small, Codestral | Mistral |
|
|
359
|
+
| **Cohere** | Command R+, Embed | Cohere |
|
|
360
|
+
| **xAI** | Grok 2, Grok Beta | xAI |
|
|
361
|
+
| **Together** | Llama, Mixtral, Qwen | Together |
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Provider selection lives in the wizard
|
|
365
|
+
natureco setup
|
|
366
|
+
# Wizard: Provider → API Key → Model → Bot name
|
|
367
|
+
|
|
368
|
+
# List models
|
|
369
|
+
natureco models list --provider openai
|
|
370
|
+
natureco models list --provider anthropic
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
> The agent adapts to each provider's native tool-calling style automatically (OpenAI-style `tool_calls` JSON or agentic-text XML), so the same tools and memory work everywhere.
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## 🔄 vs. Other CLIs
|
|
378
|
+
|
|
379
|
+
| Feature | NatureCo | Claude Code | Hermes | OpenClaw |
|
|
380
|
+
|---------|----------|-------------|--------|----------|
|
|
381
|
+
| Multi-provider | ✅ 12 | ❌ Anthropic | ✅ 8 | ❌ |
|
|
382
|
+
| 200+ models | ✅ | ❌ | ✅ | ❌ |
|
|
383
|
+
| Multi-agent orchestration | ✅ | ✅ | ⚠️ | ⚠️ |
|
|
384
|
+
| Dangerous-command approval | ✅ | ✅ | ✅ | ⚠️ |
|
|
385
|
+
| Multi-channel (10 platforms) | ✅ | ❌ | ✅ (Python) | ❌ |
|
|
386
|
+
| Persistent memory | ✅ | ✅ | ✅ | ❌ |
|
|
387
|
+
| Tool-output path anonymization | ✅ | ❌ | ❌ | ❌ |
|
|
388
|
+
| XP / gamification | ✅ | ❌ | ❌ | ❌ |
|
|
389
|
+
| SEO / Medium / NatureHub native | ✅ | ❌ | ❌ | ❌ |
|
|
390
|
+
| Cross-platform (macOS/Win/Linux) | ✅ | ✅ | ⚠️ | ⚠️ |
|
|
391
|
+
| MIT licensed | ✅ | ✅ | ❌ | ❌ |
|
|
392
|
+
| npm package | ✅ | ❌ | ❌ | ❌ |
|
|
393
|
+
| Tools | ✅ 57+ | ✅ ~30 | ✅ ~25 | ✅ ~40 |
|
|
394
|
+
| Cron + Hooks + Webhooks | ✅ | ❌ | ✅ | ❌ |
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
## 🛠️ System Requirements
|
|
399
|
+
|
|
400
|
+
| Requirement | Minimum | Recommended |
|
|
401
|
+
|-------------|---------|-------------|
|
|
402
|
+
| **Node.js** | 18.x | 20.x (LTS) |
|
|
403
|
+
| **RAM** | 256 MB | 512 MB |
|
|
404
|
+
| **Disk** | 100 MB | 500 MB (with cache) |
|
|
405
|
+
| **OS** | macOS 12, Win 10, Ubuntu 20 | macOS 14+, Win 11, Ubuntu 22 |
|
|
406
|
+
| **Internet** | Required | — |
|
|
407
|
+
|
|
408
|
+
**Optional** for richer functionality: `ripgrep` (faster search — falls back to a pure-Node scanner), `python3` (for `code_execution`), `git`.
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## 🚀 Real Examples
|
|
413
|
+
|
|
414
|
+
### 1. Simple chat
|
|
415
|
+
```
|
|
416
|
+
$ natureco chat
|
|
417
|
+
Provider: api.minimax.io
|
|
418
|
+
Model: MiniMax-M2.5
|
|
419
|
+
Bot: naruto
|
|
420
|
+
|
|
421
|
+
👋 Hi! I'm naruto, boss.
|
|
422
|
+
|
|
423
|
+
You > who are you?
|
|
424
|
+
AI I'm naruto, your NatureCo CLI assistant. 57+ tools active,
|
|
425
|
+
memory persisted, channels ready.
|
|
426
|
+
|
|
427
|
+
You > create racing-game.html on my Desktop with a small canvas racing game
|
|
428
|
+
AI 🔧 write_file ✓
|
|
429
|
+
Done — racing-game.html created on your Desktop.
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### 2. Connect a Telegram bot
|
|
433
|
+
```
|
|
434
|
+
$ natureco telegram connect
|
|
435
|
+
? Telegram bot token: *** (from BotFather)
|
|
436
|
+
✓ Token saved
|
|
437
|
+
Bot ID: telegram_1782204289029
|
|
438
|
+
|
|
439
|
+
$ natureco telegram chatid
|
|
440
|
+
⏳ Bot running, waiting for the first message...
|
|
441
|
+
[send /start from Telegram]
|
|
442
|
+
✓ Chat ID detected: 6139455189
|
|
443
|
+
|
|
444
|
+
$ natureco gateway start
|
|
445
|
+
[gateway] Gateway running (PID 77765)
|
|
446
|
+
[telegram] watching for inbound
|
|
447
|
+
[telegram] Inbound from +90****44: "hello"
|
|
448
|
+
[telegram] Reply sent (117 chars)
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### 3. iMessage slash command
|
|
452
|
+
```
|
|
453
|
+
$ natureco imessage connect
|
|
454
|
+
? imsg CLI path: /opt/homebrew/bin/imsg
|
|
455
|
+
✓ Connected
|
|
456
|
+
|
|
457
|
+
$ natureco imessage allow +90****4449
|
|
458
|
+
✓ Allowed: +90****4449
|
|
459
|
+
|
|
460
|
+
$ natureco gateway start
|
|
461
|
+
[imessage] watching for new messages (streaming)
|
|
462
|
+
[imessage] Inbound from +90****4449: "/who are you"
|
|
463
|
+
[imessage] Slash command: /who are you
|
|
464
|
+
[imessage] Reply sent (178 chars)
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
### 4. Coding agent — a small app
|
|
468
|
+
```
|
|
469
|
+
$ natureco code
|
|
470
|
+
NatureCo Code Agent v5
|
|
471
|
+
|
|
472
|
+
You > create notes.py — add/list/delete notes, stored as JSON
|
|
473
|
+
|
|
474
|
+
Tool: write_file (2303 bytes)
|
|
475
|
+
Tool: bash (python3 notes.py)
|
|
476
|
+
✅ Note added: Groceries
|
|
477
|
+
✅ Note added: Meeting
|
|
478
|
+
✅ Total: 3 notes
|
|
479
|
+
✅ Deleted: ID 2
|
|
480
|
+
|
|
481
|
+
📂 notes.py (2303 bytes)
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
---
|
|
485
|
+
|
|
486
|
+
## 🔌 Integrations
|
|
487
|
+
|
|
488
|
+
### Webhook
|
|
489
|
+
```bash
|
|
490
|
+
# HTTP callback URLs
|
|
491
|
+
natureco webhooks add https://example.com/hook
|
|
492
|
+
|
|
493
|
+
# Incoming webhook (POST)
|
|
494
|
+
POST /webhook/<id>
|
|
495
|
+
Content-Type: application/json
|
|
496
|
+
{"event": "...", "data": {...}}
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### Cron (scheduled tasks)
|
|
500
|
+
```bash
|
|
501
|
+
# Every 5 minutes
|
|
502
|
+
natureco cron add \
|
|
503
|
+
--name "hello-task" \
|
|
504
|
+
--schedule "*/5 * * * *" \
|
|
505
|
+
--command "echo 'Hello!'"
|
|
506
|
+
|
|
507
|
+
# One-off
|
|
508
|
+
natureco cron add --at "2026-12-31T23:59"
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### MCP (Model Context Protocol)
|
|
512
|
+
```bash
|
|
513
|
+
natureco mcp add filesystem npx -y @modelcontextprotocol/server-filesystem
|
|
514
|
+
natureco mcp add github npx -y @modelcontextprotocol/server-github
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
---
|
|
518
|
+
|
|
519
|
+
## 📚 Documentation
|
|
520
|
+
|
|
521
|
+
- 🌐 **Homepage:** [natureco.me/cli](https://natureco.me/cli)
|
|
522
|
+
- 📖 **Command reference:** [natureco.me/cli/commands](https://natureco.me/cli/commands)
|
|
523
|
+
- 🎓 **Tutorial:** [natureco.me/cli/getting-started](https://natureco.me/cli/getting-started)
|
|
524
|
+
- 🔧 **API:** [natureco.me/cli/api](https://natureco.me/cli/api)
|
|
525
|
+
- 🔒 **Security:** [`SECURITY_AUDIT_SUMMARY.md`](SECURITY_AUDIT_SUMMARY.md)
|
|
526
|
+
- 📝 **Changelog:** [`CHANGELOG.md`](CHANGELOG.md)
|
|
527
|
+
|
|
528
|
+
---
|
|
529
|
+
|
|
530
|
+
## 🤝 Contributing
|
|
531
|
+
|
|
532
|
+
PRs and issues are welcome!
|
|
533
|
+
|
|
534
|
+
```bash
|
|
535
|
+
# Clone the repo
|
|
536
|
+
git clone https://github.com/natureco-official/natureco-cli.git
|
|
537
|
+
cd natureco-cli
|
|
538
|
+
|
|
539
|
+
# Install
|
|
540
|
+
npm install
|
|
541
|
+
|
|
542
|
+
# Test (vitest)
|
|
543
|
+
npm test
|
|
544
|
+
|
|
545
|
+
# Lint
|
|
546
|
+
npm run lint
|
|
547
|
+
|
|
548
|
+
# Smoke check
|
|
549
|
+
npm run smoke
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
## 📄 License
|
|
555
|
+
|
|
556
|
+
MIT © [NatureCo](https://github.com/natureco-official)
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
## 🙏 Acknowledgements
|
|
561
|
+
|
|
562
|
+
- [OpenAI](https://openai.com) — GPT API
|
|
563
|
+
- [Anthropic](https://anthropic.com) — Claude API
|
|
564
|
+
- [MiniMax](https://api.minimax.io) — AI provider
|
|
565
|
+
- [Baileys](https://github.com/WhiskeySockets/Baileys) — WhatsApp Web
|
|
566
|
+
- [imsg](https://github.com/steipete/imsg) — iMessage CLI
|
|
567
|
+
- [ripgrep](https://github.com/BurntSushi/ripgrep) — fast search
|
|
568
|
+
|
|
569
|
+
---
|
|
570
|
+
|
|
571
|
+
<p align="center">
|
|
572
|
+
<b>The power of AI, now at your fingertips.</b><br>
|
|
573
|
+
<i>Discover the speed of the terminal with NatureCo.</i>
|
|
574
|
+
</p>
|
|
575
|
+
|
|
576
|
+
<p align="center">
|
|
577
|
+
Made with 🌿 for developers who live in the terminal.
|
|
578
|
+
</p>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "natureco-cli",
|
|
3
|
-
"version": "5.43.
|
|
3
|
+
"version": "5.43.1",
|
|
4
4
|
"description": "OpenClaw'dan daha güvenli, daha hızlı, daha ucuz AI agent CLI. Multi-agent, self-evolving skills, audit log, maliyet optimizasyonu ve NatureCo platform-native.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"natureco": "bin/natureco.js"
|
package/src/utils/config.js
CHANGED
|
@@ -213,7 +213,10 @@ function restoreConfig(backupFile) {
|
|
|
213
213
|
const data = parseConfigContent(content);
|
|
214
214
|
validateConfig(data);
|
|
215
215
|
createBackup();
|
|
216
|
-
|
|
216
|
+
// v5.43.1 GÜVENLİK: saveConfig gibi 0600 — restore, API key'li config.json'ı
|
|
217
|
+
// dünya-okunabilir hale getirmemeli. mode yalnızca yeni dosyaya uygulanır; chmod şart.
|
|
218
|
+
fs.writeFileSync(ACTIVE_CONFIG_FILE, JSON.stringify(data, null, 2), { encoding: 'utf8', mode: 0o600 });
|
|
219
|
+
try { fs.chmodSync(ACTIVE_CONFIG_FILE, 0o600); } catch { /* best-effort */ }
|
|
217
220
|
_configCache = data;
|
|
218
221
|
_configHash = computeHash(data);
|
|
219
222
|
return { path: backupPath, timestamp: path.basename(backupPath).replace(/^config-|\.json$/g, '') };
|