@legna-lnc/legnacode 1.5.1 → 1.5.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/CHANGELOG.md +723 -679
- package/README.md +385 -383
- package/README.zh-CN.md +362 -360
- package/npm/bin/legna.cjs +117 -117
- package/npm/postinstall.cjs +82 -82
- package/package.json +154 -154
package/README.zh-CN.md
CHANGED
|
@@ -1,360 +1,362 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
# LegnaCode CLI
|
|
4
|
-
|
|
5
|
-
**AI 驱动的终端编程助手,全面增强。**
|
|
6
|
-
|
|
7
|
-
[](#平台支持)
|
|
9
|
-
[](./LICENSE)
|
|
10
|
-
[](https://github.com/anthropics/claude-code)
|
|
11
|
-
|
|
12
|
-
🌐 [English](./README.md) · 📊 [对比 Claude Code](./COMPARISON.zh-CN.md) · 📋 [更新日志](./CHANGELOG.zh-CN.md)
|
|
13
|
-
|
|
14
|
-
<img width="1256" height="416" alt="LegnaCode banner" src="https://github.com/user-attachments/assets/5e4717e6-3404-4901-9f5c-1c6462fb1c1a" />
|
|
15
|
-
|
|
16
|
-
</div>
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
LegnaCode 基于 [Claude Code CLI](https://github.com/anthropics/claude-code) 深度增强——完全兼容原版,同时新增多模态工具、更智能的记忆、更好的用户体验。
|
|
21
|
-
|
|
22
|
-
### 亮点
|
|
23
|
-
|
|
24
|
-
🧠 **记忆 token 减少 88%** — 4 层记忆栈 + 向量搜索,替代扁平 MEMORY.md 注入\
|
|
25
|
-
🎨 **6 个多模态工具** — 图像、视频、语音、音乐、视觉、网页搜索(MiniMax 模型)\
|
|
26
|
-
⚡ **即时反馈** — 第 1 秒起显示 token 计数,状态在 spinner 行显示,无静默操作\
|
|
27
|
-
🔌 **可插拔记忆** — DrawerStore(SQLite + TF-IDF)、时序知识图谱、WAL 审计\
|
|
28
|
-
🤖 **更智能的 Agent** — RPC 子进程执行、自主技能检测、智能模型路由
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## 更新日志
|
|
33
|
-
|
|
34
|
-
| 版本 | 摘要 |
|
|
35
|
-
|------|------|
|
|
36
|
-
| **1.5.
|
|
37
|
-
| **1.5.
|
|
38
|
-
| **1.
|
|
39
|
-
| **1.
|
|
40
|
-
| **1.4.
|
|
41
|
-
| **1.4.
|
|
42
|
-
| **1.4.
|
|
43
|
-
| **1.4.
|
|
44
|
-
| **1.4.
|
|
45
|
-
| **1.4.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
|
53
|
-
|
|
54
|
-
| 1.3.
|
|
55
|
-
| 1.3.
|
|
56
|
-
| 1.3.
|
|
57
|
-
| 1.3.
|
|
58
|
-
| 1.3.
|
|
59
|
-
| 1.
|
|
60
|
-
| 1.
|
|
61
|
-
| 1.
|
|
62
|
-
| 1.
|
|
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
|
-
- `<project>/.legna/
|
|
277
|
-
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
legna migrate
|
|
287
|
-
legna migrate --
|
|
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
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# LegnaCode CLI
|
|
4
|
+
|
|
5
|
+
**AI 驱动的终端编程助手,全面增强。**
|
|
6
|
+
|
|
7
|
+
[](./CHANGELOG.zh-CN.md)
|
|
8
|
+
[](#平台支持)
|
|
9
|
+
[](./LICENSE)
|
|
10
|
+
[](https://github.com/anthropics/claude-code)
|
|
11
|
+
|
|
12
|
+
🌐 [English](./README.md) · 📊 [对比 Claude Code](./COMPARISON.zh-CN.md) · 📋 [更新日志](./CHANGELOG.zh-CN.md)
|
|
13
|
+
|
|
14
|
+
<img width="1256" height="416" alt="LegnaCode banner" src="https://github.com/user-attachments/assets/5e4717e6-3404-4901-9f5c-1c6462fb1c1a" />
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
LegnaCode 基于 [Claude Code CLI](https://github.com/anthropics/claude-code) 深度增强——完全兼容原版,同时新增多模态工具、更智能的记忆、更好的用户体验。
|
|
21
|
+
|
|
22
|
+
### 亮点
|
|
23
|
+
|
|
24
|
+
🧠 **记忆 token 减少 88%** — 4 层记忆栈 + 向量搜索,替代扁平 MEMORY.md 注入\
|
|
25
|
+
🎨 **6 个多模态工具** — 图像、视频、语音、音乐、视觉、网页搜索(MiniMax 模型)\
|
|
26
|
+
⚡ **即时反馈** — 第 1 秒起显示 token 计数,状态在 spinner 行显示,无静默操作\
|
|
27
|
+
🔌 **可插拔记忆** — DrawerStore(SQLite + TF-IDF)、时序知识图谱、WAL 审计\
|
|
28
|
+
🤖 **更智能的 Agent** — RPC 子进程执行、自主技能检测、智能模型路由
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 更新日志
|
|
33
|
+
|
|
34
|
+
| 版本 | 摘要 |
|
|
35
|
+
|------|------|
|
|
36
|
+
| **1.5.3** | Hermes 自我进化闭环;Qwen 适配器;WebUI 聊天查看器与实时聊天;自动 Skill 创建 |
|
|
37
|
+
| **1.5.2** | 性能审计:CodeGraph async 化 + undoTracker 大文件保护 + 状态文案 i18n |
|
|
38
|
+
| **1.5.1** | Skill 主动调用(OML 1% 规则);前端/设计指令自动注入;增强 designer agent |
|
|
39
|
+
| **1.5.0** | 修复 REPL 启动死锁;移除 /undo 静态导入;AtomCode 全部特性完整接线 |
|
|
40
|
+
| **1.4.9** | Baseline(无 AVX)构建,支持老款 x64 CPU(darwin-x64-baseline、linux-x64-baseline) |
|
|
41
|
+
| **1.4.8** | AtomCode 融合(Pangu CJK 间距、挫败检测、循环守卫、错误文件注入、首次全文读取) |
|
|
42
|
+
| **1.4.7** | claude-mem 融合(content-hash 去重、token 经济学、使用反馈、90 天衰减、隐私标签) |
|
|
43
|
+
| **1.4.6** | OML skill 崩溃修复;计划+记忆改为项目本地;compound engineering 融合 |
|
|
44
|
+
| **1.4.5** | OpenViking 内容分级融合(L0/L1/L2 降级 + 预算封顶注入) |
|
|
45
|
+
| **1.4.4** | 状态提示改为 spinner 行显示;新增功能对比文档 |
|
|
46
|
+
| **1.4.3** | mempalace 记忆融合(DrawerStore + TF-IDF + 4 层栈 + 知识图谱) |
|
|
47
|
+
| **1.4.2** | 进度反馈增强(8 个静默路径修复);verbose 默认开启 |
|
|
48
|
+
|
|
49
|
+
<details>
|
|
50
|
+
<summary>更早版本</summary>
|
|
51
|
+
|
|
52
|
+
| 版本 | 摘要 |
|
|
53
|
+
|------|------|
|
|
54
|
+
| 1.3.6 | Windows 路径分隔符修复 |
|
|
55
|
+
| 1.3.5 | SessionStart hook 修复;Windows 渲染修复 |
|
|
56
|
+
| 1.3.4 | OML Superpowers(11 个 skill);SessionStart 引导 |
|
|
57
|
+
| 1.3.3 | OML 智能编排(19 个 agent skill) |
|
|
58
|
+
| 1.3.2 | 禁用 History Snip;Windows 流式渲染修复 |
|
|
59
|
+
| 1.3.1 | 1M 模型 snip 阈值修复 |
|
|
60
|
+
| 1.3.0 | 项目本地化存储;`legna migrate` |
|
|
61
|
+
| 1.2.1 | 模型适配器层(MiMo、GLM、DeepSeek、Kimi、MiniMax) |
|
|
62
|
+
| 1.2.0 | 会话按项目分组;Windows 原生编译 |
|
|
63
|
+
| 1.1.5–1.1.9 | Windows 安装修复;WebUI 管理面板 |
|
|
64
|
+
| 1.0.0–1.0.9 | 初始发布;Feature Flags;i18n;BUDDY 宠物 |
|
|
65
|
+
|
|
66
|
+
</details>
|
|
67
|
+
|
|
68
|
+
完整记录 → [CHANGELOG.zh-CN.md](./CHANGELOG.zh-CN.md)
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 致谢
|
|
73
|
+
|
|
74
|
+
基于 [Claude Code CLI](https://github.com/anthropics/claude-code)(Anthropic)构建——开创性的终端 AI 编程工具。LegnaCode 在完全兼容上游的基础上,增加了多模态能力、更智能的记忆和增强的用户体验。感谢 Anthropic 团队的开源贡献。
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 特性
|
|
79
|
+
|
|
80
|
+
<table>
|
|
81
|
+
<tr><td>
|
|
82
|
+
|
|
83
|
+
**🎨 多模态**(MiniMax)
|
|
84
|
+
- 图像 / 视频 / 语音生成
|
|
85
|
+
- 音乐生成 / 视觉理解 / 网页搜索
|
|
86
|
+
- 自动编排工作流
|
|
87
|
+
- `/auth-minimax` 配置
|
|
88
|
+
|
|
89
|
+
</td><td>
|
|
90
|
+
|
|
91
|
+
**🧠 记忆**
|
|
92
|
+
- 4 层栈(~800 token/轮)
|
|
93
|
+
- TF-IDF 向量搜索(<5ms)
|
|
94
|
+
- 时序知识图谱
|
|
95
|
+
- 压缩前自动保存
|
|
96
|
+
|
|
97
|
+
</td></tr>
|
|
98
|
+
<tr><td>
|
|
99
|
+
|
|
100
|
+
**⚡ Agent**
|
|
101
|
+
- RPC 子进程工具执行
|
|
102
|
+
- 智能模型路由
|
|
103
|
+
- 自主技能检测
|
|
104
|
+
- 跨会话 `/recall` 搜索
|
|
105
|
+
|
|
106
|
+
</td><td>
|
|
107
|
+
|
|
108
|
+
**🛡️ 核心**
|
|
109
|
+
- 45+ 内置工具
|
|
110
|
+
- 多云 AI 后端
|
|
111
|
+
- MCP 协议支持
|
|
112
|
+
- 多 Agent 协作
|
|
113
|
+
|
|
114
|
+
</td></tr>
|
|
115
|
+
<tr><td>
|
|
116
|
+
|
|
117
|
+
**🖥️ 体验**
|
|
118
|
+
- verbose 默认开启
|
|
119
|
+
- 第 1 秒起显示 token 计数
|
|
120
|
+
- 状态在 spinner 行显示
|
|
121
|
+
- 中断原因可见
|
|
122
|
+
|
|
123
|
+
</td><td>
|
|
124
|
+
|
|
125
|
+
**🔧 运维**
|
|
126
|
+
- WebUI 管理面板
|
|
127
|
+
- `legna migrate` 迁移工具
|
|
128
|
+
- 纯 TS 语法高亮
|
|
129
|
+
- 跨平台预编译二进制
|
|
130
|
+
|
|
131
|
+
</td></tr>
|
|
132
|
+
</table>
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 环境要求
|
|
137
|
+
|
|
138
|
+
| 依赖 | 版本 |
|
|
139
|
+
|------|------|
|
|
140
|
+
| [Bun](https://bun.sh) | >= 1.2.0 |
|
|
141
|
+
| Node.js | >= 18(可选) |
|
|
142
|
+
| Git | >= 2.0 |
|
|
143
|
+
| 操作系统 | macOS / Linux |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 安装
|
|
148
|
+
|
|
149
|
+
### 方式一:npm 全局安装(推荐)
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
npm install -g @legna-lnc/legnacode
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
如果使用镜像源(如 cnpm、淘宝源)安装失败或版本未同步,可指定官方源:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
npm install -g @legna-lnc/legnacode --registry=https://registry.npmjs.org
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
安装后即可在任意目录使用 `legna` 命令。会自动下载当前平台的预编译二进制(支持 macOS arm64/x64、Linux x64/arm64、Windows x64)。
|
|
162
|
+
|
|
163
|
+
### 老款 CPU(无 AVX 指令集)
|
|
164
|
+
|
|
165
|
+
如果看到 `warn: CPU lacks AVX support, strange crashes may occur`,请安装 baseline 版本:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# macOS Intel(2011 年前或无 AVX 的黑苹果)
|
|
169
|
+
npm i -g @legna-lnc/legnacode-darwin-x64-baseline
|
|
170
|
+
|
|
171
|
+
# Linux x64(无 AVX 的老服务器/虚拟机)
|
|
172
|
+
npm i -g @legna-lnc/legnacode-linux-x64-baseline
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
baseline 二进制位于 `node_modules/@legna-lnc/legnacode-<platform>-baseline/bin/legna`,添加到 PATH 或创建别名即可使用。
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# 验证安装
|
|
179
|
+
legna --version
|
|
180
|
+
|
|
181
|
+
# 更新到最新版
|
|
182
|
+
npm update -g @legna-lnc/legnacode
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 方式二:从源码编译
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
git clone https://github.com/LegnaOS/LegnaCode-cli.git
|
|
189
|
+
cd LegnaCode-cli
|
|
190
|
+
bun install
|
|
191
|
+
bun run compile
|
|
192
|
+
# 编译产物为 ./legna,可移动到 PATH 中
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 快速开始
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# 交互模式
|
|
201
|
+
legna
|
|
202
|
+
|
|
203
|
+
# 非交互模式(直接提问)
|
|
204
|
+
legna -p "解释这段代码的作用"
|
|
205
|
+
|
|
206
|
+
# 继续上次会话
|
|
207
|
+
legna --continue
|
|
208
|
+
|
|
209
|
+
# 查看版本
|
|
210
|
+
legna --version
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## 项目结构
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
├── src/
|
|
219
|
+
│ ├── entrypoints/ # 入口文件(cli.tsx)
|
|
220
|
+
│ ├── server/ # HTTP 服务器(admin WebUI)
|
|
221
|
+
│ ├── components/ # React/Ink 终端 UI 组件
|
|
222
|
+
│ ├── tools/ # 内置工具(Bash、文件操作、搜索等)
|
|
223
|
+
│ ├── services/ # API 调用、MCP 客户端、分析等
|
|
224
|
+
│ ├── native-ts/ # 纯 TS 实现的原生模块替代(语法高亮等)
|
|
225
|
+
│ ├── utils/ # 工具函数
|
|
226
|
+
│ └── hooks/ # React hooks
|
|
227
|
+
├── webui/ # Admin WebUI 前端(React + Vite + Tailwind)
|
|
228
|
+
├── stubs/ # 原生模块 stub(编译时外部依赖占位)
|
|
229
|
+
├── scripts/ # 构建脚本
|
|
230
|
+
├── bunfig.toml # Bun 构建配置(Feature Flags、宏定义)
|
|
231
|
+
└── package.json
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 构建
|
|
237
|
+
|
|
238
|
+
LegnaCode 使用 Bun bundler 构建,两种模式:
|
|
239
|
+
|
|
240
|
+
- `bun run build` — 构建到 `dist/`,适合开发调试
|
|
241
|
+
- `bun run compile` — 编译为独立二进制 `legna`,无需 Bun 运行时
|
|
242
|
+
|
|
243
|
+
### Admin WebUI
|
|
244
|
+
|
|
245
|
+
`legna admin` 启动浏览器管理面板,通过 Web 界面管理所有配置。
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
# 启动管理面板(默认端口 3456,自动打开浏览器)
|
|
249
|
+
legna admin
|
|
250
|
+
|
|
251
|
+
# 自定义端口
|
|
252
|
+
legna admin 8080
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
面板顶部通过 Tab 切换:**Claude** (`~/.claude/`) 和 **LegnaCode** (`~/.legna/`),每个 scope 提供四个面板:
|
|
256
|
+
|
|
257
|
+
| 面板 | 功能 |
|
|
258
|
+
|------|------|
|
|
259
|
+
| 配置编辑 | 可视化编辑 settings.json:API 端点、模型映射、超时、权限等 |
|
|
260
|
+
| 配置文件 | 列出所有 settings*.json,一键切换激活配置 |
|
|
261
|
+
| 会话记录 | 浏览历史会话,一键复制 `legna --resume` 命令 |
|
|
262
|
+
| 配置迁移 | Claude ↔ LegnaCode 双向迁移,迁移前预览 diff |
|
|
263
|
+
|
|
264
|
+
> 从源码运行需先构建前端:`cd webui && npm install && npm run build`,然后 `bun run src/server/admin.ts`。npm 安装版已包含预构建 WebUI。
|
|
265
|
+
|
|
266
|
+
构建时通过 `bunfig.toml` 的 `[bundle.define]` 注入编译时常量,`[bundle.features]` 控制 Feature Flags 实现死代码消除。
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## 配置
|
|
271
|
+
|
|
272
|
+
LegnaCode 使用 `~/.legna/` 作为全局配置目录,项目级数据在 `<project>/.legna/`:
|
|
273
|
+
|
|
274
|
+
- `~/.legna/settings.json` — 全局设置
|
|
275
|
+
- `~/.legna/.credentials.json` — 认证凭据
|
|
276
|
+
- `<project>/.legna/sessions/` — 会话记录(JSONL)
|
|
277
|
+
- `<project>/.legna/skills/` — 技能
|
|
278
|
+
- `<project>/.legna/rules/` — 规则
|
|
279
|
+
- `LEGNA.md` — 项目指令文件
|
|
280
|
+
|
|
281
|
+
> 首次启动自动从 `~/.claude/` 迁移到 `~/.legna/`。设置 `LEGNA_NO_CONFIG_SYNC=1` 可禁止。
|
|
282
|
+
|
|
283
|
+
### legna migrate
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
legna migrate # 迁移全部
|
|
287
|
+
legna migrate --global # 仅全局数据
|
|
288
|
+
legna migrate --sessions # 仅项目会话
|
|
289
|
+
legna migrate --dry-run # 预览模式
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### 环境变量
|
|
293
|
+
|
|
294
|
+
| 变量 | 说明 |
|
|
295
|
+
|------|------|
|
|
296
|
+
| `ANTHROPIC_API_KEY` | Anthropic API 密钥 |
|
|
297
|
+
| `CLAUDE_CODE_USE_BEDROCK` | 使用 AWS Bedrock 后端 |
|
|
298
|
+
| `CLAUDE_CODE_USE_VERTEX` | 使用 GCP Vertex 后端 |
|
|
299
|
+
| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 设为 `0` 禁用语法高亮 |
|
|
300
|
+
| `MINIMAX_API_KEY` | MiniMax API 密钥(启用多模态工具) |
|
|
301
|
+
| `MINIMAX_REGION` | MiniMax 区域:`global`(默认)或 `cn` |
|
|
302
|
+
| `MINIMAX_BASE_URL` | 自定义 MiniMax API 地址 |
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## MiniMax 多模态集成
|
|
307
|
+
|
|
308
|
+
使用 MiniMax 模型且配置了 `MINIMAX_API_KEY` 时,自动注册 6 个多模态工具。
|
|
309
|
+
|
|
310
|
+
### 配置
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# 方式一:环境变量
|
|
314
|
+
export MINIMAX_API_KEY="your-api-key"
|
|
315
|
+
export MINIMAX_REGION="global" # 或 "cn"
|
|
316
|
+
|
|
317
|
+
# 方式二:交互式(持久化到 ~/.legna/minimax-credentials.json)
|
|
318
|
+
legna
|
|
319
|
+
> /auth-minimax your-api-key
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
API key 获取:[MiniMax 国际站](https://platform.minimax.io) 或 [MiniMax 国内站](https://platform.minimaxi.com)
|
|
323
|
+
|
|
324
|
+
### 工具
|
|
325
|
+
|
|
326
|
+
| 工具 | 功能 | 示例 |
|
|
327
|
+
|------|------|------|
|
|
328
|
+
| `MiniMaxImageGenerate` | 文字生成图像 | "生成一张赛博朋克风格的城市夜景" |
|
|
329
|
+
| `MiniMaxVideoGenerate` | 文字/图像生成视频 | "把这张图片做成 5 秒动画" |
|
|
330
|
+
| `MiniMaxSpeechSynthesize` | 文字转语音 | "把这段文字转成语音" |
|
|
331
|
+
| `MiniMaxMusicGenerate` | 文字生成音乐 | "生成一段轻快的钢琴背景音乐" |
|
|
332
|
+
| `MiniMaxVisionDescribe` | 图像理解 | "描述这张图片的内容" |
|
|
333
|
+
| `MiniMaxWebSearch` | 网页搜索 | "搜索最新的 TypeScript 5.x 特性" |
|
|
334
|
+
|
|
335
|
+
仅在使用 MiniMax 模型时自动启用,不影响其他模型。
|
|
336
|
+
|
|
337
|
+
### 工作流示例
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
用户:帮我做一个项目宣传视频
|
|
341
|
+
|
|
342
|
+
AI 自动编排:
|
|
343
|
+
1. 分析 README,提取核心卖点
|
|
344
|
+
2. MiniMaxImageGenerate → 生成关键帧
|
|
345
|
+
3. MiniMaxVideoGenerate → 生成视频
|
|
346
|
+
4. MiniMaxSpeechSynthesize → 生成旁白
|
|
347
|
+
5. 返回所有资源 URL
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## 许可证
|
|
353
|
+
|
|
354
|
+
本项目遵循上游 Claude Code CLI 的开源许可协议。详见 [Claude Code CLI](https://github.com/anthropics/claude-code) 原始仓库。
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
<div align="center">
|
|
359
|
+
|
|
360
|
+
**[Claude Code CLI](https://github.com/anthropics/claude-code)** · **[Anthropic](https://www.anthropic.com)** · **[Model Context Protocol](https://modelcontextprotocol.io)**
|
|
361
|
+
|
|
362
|
+
</div>
|