@legna-lnc/legnacode
v2.1.9
Published
LegnaCode — legna.lnc's official CLI for coding assistance
Maintainers
Readme
LegnaCode CLI
AI 驱动的终端编程助手,全面增强。
🌐 English · 🛠️ 开发者文档 · 📊 对比 Claude Code · 📋 更新日志
LegnaCode 基于 Claude Code CLI 深度增强——完全兼容原版,同时新增多提供商路由、精确编辑、真实浏览器控制等。
亮点
🔀 28 家 AI 提供商,9 种协议 — Anthropic、OpenAI、Gemini、Bedrock、Azure、Vertex、Ollama、DeepSeek、Groq、xAI、Mistral、OpenRouter 等——一键切换
✏️ Hashline 精确编辑 — 哈希锚点行引用,彻底消灭 str_replace 失败;弱模型成功率提升 10 倍
🌐 真实浏览器控制 — Puppeteer + CDP,可访问性树提取、反检测脚本、Electron 附加
🐍 持久 Python 环境 — 跨回合有状态 REPL,富显示(DataFrame、图表、图片)
🧠 记忆 token 减少 88% — 4 层记忆栈 + 向量搜索,替代扁平 MEMORY.md 注入
🎨 6 个多模态工具 — 图像、视频、语音、音乐、视觉、网页搜索(MiniMax 模型)
⚡ 即时反馈 — 第 1 秒起显示 token 计数,状态在 spinner 行显示,无静默操作
🔌 配置联邦 — 自动发现 Cursor、Windsurf、Gemini、Codex、Copilot、Cline 的规则和 MCP
更新日志
| 版本 | 摘要 | |------|------| | 2.1.9 | 修复 Computer Use "Finder 未安装"——搜索路径加 CoreServices + 运行中 app 合并到已安装列表 | | 2.1.8 | 修复 Computer Use 截屏权限死循环(Swift→Python bridge);修复 Agent 读完文件后停滞(read-then-act 指令) | | 2.1.7 | 六大特性全面接线;配置联邦发现接入启动流程;修复全部 MiniMax/REPL/WebBrowser 工具类型;WebUI 预设切换清除旧字段;声明所有 feature flags | | 2.1.6 | Hashline Edit 集成(Read 输出加 hash 锚点);修复 HashlineEditTool 类型错误;修复 prompts.ts 缺失 import;系统提示词工具路由引导 | | 2.1.5 | 多提供商路由(28 家提供商,9 种协议);Hashline 编辑系统;持久 Shell + 输出最小化器;真实浏览器控制;持久 Python 环境;配置联邦发现;Admin WebUI 扩展(21 个预设) |
| 版本 | 摘要 | |------|------| | 2.1.3 | 移除 /loop 定时任务对 GrowthBook 的依赖;修复 OpenAI 流式桥接空响应静默吞错误 | | 2.1.2 | 修复 sandbox 未启用时 ctrl+o 崩溃(SandboxViolationStore.subscribe 防御) | | 2.1.1 | DeepSeek 深度优化:自适应推理力度、精确定价、模型别名扩展、工具名编码 | | 2.1.0 | 平台感知发布(Mac→darwin+linux,Win→win32);DeepSeek reasoning_content 多轮 400 修复;ShellProgressMessage 崩溃修复 |
| 版本 | 摘要 | |------|------| | 2.0.5 | LegnaCode Office 像素办公室可视化(对话侧边栏、状态气泡、WebSocket、join-key 认证、布局持久化、通知音效、演示模式、i18n);DeepSeek reasoning_content 回传修复 | | 2.0.4 | OpenAI Responses API 桥接(Codex 中转站);Admin 配置热加载 + UI 自动刷新;getGlobalSettings 死代码修复 | | 2.0.3 | Kiro Gateway 优化;Admin 配置内联编辑;模型白名单移除;count_tokens 禁用;sandbox 移除 |
| 版本 | 摘要 |
|------|------|
| 1.9.9 | Bash exit code 65 彻底修复;Admin 预设配置模板;ANTHROPIC_MODEL 字段 |
| 1.9.5 | Admin 预设配置模板(7 家 Provider);ANTHROPIC_MODEL 字段;迁移自动补全 |
| 1.9.4 | macOS Seatbelt 沙盒重写(默认允许策略);Shell.ts sandbox 返回路径修复 |
| 1.9.3 | OpenAI 兼容 API 路由;7 家国产模型适配器深度对齐;admin 配置复制;Bash sandbox 修复 |
| 1.9.2 | Computer Use Python 桥接(macOS + Windows);自动 Python 3.12+ venv 设置;Computer Use feature gate 全面解锁 |
| 1.9.0 | 可移植会话(相对路径 cwd);WebUI 全面改版(项目浏览器、记忆编辑器、力导向关系图谱);完整项目迁移;配置切换改为指针文件 |
| 1.8.5 | Token 优化:压缩工具提示词;修复 Kimi/MiniMax/MiMo 适配器 cache_control |
| 1.8.4 | 修复 isVirtual in m 崩溃 — 会话转录处理空值守卫 |
| 1.8.3 | GitHub Actions CI 自动发版工作流;OML agent 类型修复;全平台 Rust native addon 交叉编译 |
| 1.8.2 | 消息管线空值守卫修复运行时崩溃;Rust 原生 Addon darwin-arm64 编译 |
| 1.8.0 | Codex 全面融合:插件适配器 + 市场、Skills 发现、配置互通;TS/Python SDK;TTS + WebRTC 语音 |
| 版本 | 摘要 |
|------|------|
| 1.6.1 | Rust NAPI addon(cosine/tfidf/hash/tokens);内核沙盒(Seatbelt/seccomp);两阶段唤醒;关键词密度 L1 |
| 1.6.0 | 协作模式(/mode);JS REPL 桥接;JSON-RPC app-server;agent 配置迁移(/migrate) |
| 1.5.7 | Git 风格 /fork 命令:从任意消息分叉(@N)、列出分支树、切换分支 |
| 1.5.3 | Hermes 自我进化闭环;Qwen 适配器;WebUI 聊天查看器与实时聊天;自动 Skill 创建 |
| 1.5.0 | 修复 REPL 启动死锁;移除 /undo 静态导入;AtomCode 全部特性完整接线 |
| 1.4.9 | Baseline(无 AVX)构建,支持老款 x64 CPU |
| 1.4.8 | AtomCode 融合(Pangu CJK 间距、挫败检测、循环守卫、错误文件注入) |
| 1.4.7 | claude-mem 融合(content-hash 去重、token 经济学、90 天衰减、隐私标签) |
| 1.4.3 | mempalace 记忆融合(DrawerStore + TF-IDF + 4 层栈 + 知识图谱) |
| 1.3.0 | 项目本地化存储;legna migrate |
| 1.2.1 | 模型适配器层(MiMo、GLM、DeepSeek、Kimi、MiniMax) |
| 1.2.0 | 会话按项目分组;Windows 原生编译 |
| 1.0.0–1.0.9 | 初始发布;Feature Flags;i18n;BUDDY 宠物 |
完整记录 → CHANGELOG.zh-CN.md
致谢
基于 Claude Code CLI(Anthropic)构建——开创性的终端 AI 编程工具。LegnaCode 在完全兼容上游的基础上,增加了多模态能力、更智能的记忆和增强的用户体验。感谢 Anthropic 团队的开源贡献。
特性
🔀 多提供商路由
- 28 家提供商,9 种 API 协议
- Anthropic / OpenAI / Gemini / Bedrock / Azure / Vertex / Ollama
- 一键配置切换(Admin WebUI)
- URL 自动推断协议
✏️ Hashline 编辑
- 哈希锚点精确编辑
- 弱模型成功率提升 10 倍
- 输出 token 减少 61%
- 3-way merge 自动恢复
🌐 真实浏览器
- Puppeteer + CDP 无头控制
- 可访问性树提取
- 反检测 stealth 脚本
- Electron 应用附加
🐍 持久 Python
- 跨回合有状态 kernel
- 富显示(DataFrame、图表、图片)
- venv/conda 自动检测
- NDJSON 协议通信
🧠 记忆
- 4 层栈(~800 token/轮)
- TF-IDF 向量搜索(<5ms)
- 时序知识图谱
- 压缩前自动保存
🎨 多模态(MiniMax)
- 图像 / 视频 / 语音生成
- 音乐生成 / 视觉理解 / 网页搜索
- 自动编排工作流
/auth-minimax配置
⚡ Agent
- RPC 子进程工具执行
- 智能模型路由
- 自主技能检测
- 跨会话
/recall搜索
🔧 运维
- WebUI 管理面板(21 个提供商预设)
- 配置联邦(Cursor/Windsurf/Gemini/Codex/Copilot)
- 持久 Shell 会话
- 输出最小化器(git/npm/cargo)
环境要求
| 依赖 | 版本 | |------|------| | Bun | >= 1.2.0 | | Node.js | >= 18(可选) | | Git | >= 2.0 | | 操作系统 | macOS / Linux |
安装
方式一:npm 全局安装(推荐)
npm install -g @legna-lnc/legnacode如果使用镜像源(如 cnpm、淘宝源)安装失败或版本未同步,可指定官方源:
npm install -g @legna-lnc/legnacode --registry=https://registry.npmjs.org安装后即可在任意目录使用 legna 命令。会自动下载当前平台的预编译二进制(支持 macOS arm64/x64、Linux x64/arm64、Windows x64)。
老款 CPU(无 AVX 指令集)
如果看到 warn: CPU lacks AVX support, strange crashes may occur,请安装 baseline 版本:
# macOS Intel(2011 年前或无 AVX 的黑苹果)
npm i -g @legna-lnc/legnacode-darwin-x64-baseline
# Linux x64(无 AVX 的老服务器/虚拟机)
npm i -g @legna-lnc/legnacode-linux-x64-baselinebaseline 二进制位于 node_modules/@legna-lnc/legnacode-<platform>-baseline/bin/legna,添加到 PATH 或创建别名即可使用。
# 验证安装
legna --version
# 更新到最新版
npm update -g @legna-lnc/legnacode方式二:从源码编译
git clone https://github.com/LegnaOS/LegnaCode-cli.git
cd LegnaCode-cli
bun install
bun run compile
# 编译产物为 ./legna,可移动到 PATH 中快速开始
# 交互模式
legna
# 非交互模式(直接提问)
legna -p "解释这段代码的作用"
# 继续上次会话
legna --continue
# 查看版本
legna --version项目结构
├── src/
│ ├── entrypoints/ # 入口文件(cli.tsx)
│ ├── server/ # HTTP 服务器(admin WebUI)
│ ├── components/ # React/Ink 终端 UI 组件
│ ├── tools/ # 内置工具(Bash、文件操作、搜索等)
│ ├── services/ # API 调用、MCP 客户端、分析等
│ ├── native-ts/ # 纯 TS 实现的原生模块替代(语法高亮等)
│ ├── utils/ # 工具函数
│ └── hooks/ # React hooks
├── webui/ # Admin WebUI 前端(React + Vite + Tailwind)
├── stubs/ # 原生模块 stub(编译时外部依赖占位)
├── scripts/ # 构建脚本
├── bunfig.toml # Bun 构建配置(Feature Flags、宏定义)
└── package.json构建
LegnaCode 使用 Bun bundler 构建,两种模式:
bun run build— 构建到dist/,适合开发调试bun run compile— 编译为独立二进制legna,无需 Bun 运行时
Admin WebUI
legna admin 启动浏览器管理面板,通过 Web 界面管理所有配置。
# 启动管理面板(默认端口 3456,自动打开浏览器)
legna admin
# 自定义端口
legna admin 8080面板顶部通过 Tab 切换:Claude (~/.claude/) 和 LegnaCode (~/.legna/),每个 scope 提供四个面板:
| 面板 | 功能 |
|------|------|
| 配置编辑 | 可视化编辑 settings.json:API 端点、模型映射、超时、权限等 |
| 配置文件 | 列出所有 settings*.json,一键切换激活配置 |
| 会话记录 | 浏览历史会话,一键复制 legna --resume 命令 |
| 配置迁移 | Claude ↔ LegnaCode 双向迁移,迁移前预览 diff |
从源码运行需先构建前端:
cd webui && npm install && npm run build,然后bun run src/server/admin.ts。npm 安装版已包含预构建 WebUI。
构建时通过 bunfig.toml 的 [bundle.define] 注入编译时常量,[bundle.features] 控制 Feature Flags 实现死代码消除。
配置
LegnaCode 使用 ~/.legna/ 作为全局配置目录,项目级数据在 <project>/.legna/:
~/.legna/settings.json— 全局设置~/.legna/.credentials.json— 认证凭据<project>/.legna/sessions/— 会话记录(JSONL)<project>/.legna/skills/— 技能<project>/.legna/rules/— 规则LEGNA.md— 项目指令文件
首次启动自动从
~/.claude/迁移到~/.legna/。设置LEGNA_NO_CONFIG_SYNC=1可禁止。
legna migrate
legna migrate # 迁移全部
legna migrate --global # 仅全局数据
legna migrate --sessions # 仅项目会话
legna migrate --dry-run # 预览模式环境变量
| 变量 | 说明 |
|------|------|
| ANTHROPIC_API_KEY | Anthropic API 密钥 |
| CLAUDE_CODE_USE_BEDROCK | 使用 AWS Bedrock 后端 |
| CLAUDE_CODE_USE_VERTEX | 使用 GCP Vertex 后端 |
| CLAUDE_CODE_SYNTAX_HIGHLIGHT | 设为 0 禁用语法高亮 |
| MINIMAX_API_KEY | MiniMax API 密钥(启用多模态工具) |
| MINIMAX_REGION | MiniMax 区域:global(默认)或 cn |
| MINIMAX_BASE_URL | 自定义 MiniMax API 地址 |
MiniMax 多模态集成
使用 MiniMax 模型且配置了 MINIMAX_API_KEY 时,自动注册 6 个多模态工具。
配置
# 方式一:环境变量
export MINIMAX_API_KEY="your-api-key"
export MINIMAX_REGION="global" # 或 "cn"
# 方式二:交互式(持久化到 ~/.legna/minimax-credentials.json)
legna
> /auth-minimax your-api-keyAPI key 获取:MiniMax 国际站 或 MiniMax 国内站
工具
| 工具 | 功能 | 示例 |
|------|------|------|
| MiniMaxImageGenerate | 文字生成图像 | "生成一张赛博朋克风格的城市夜景" |
| MiniMaxVideoGenerate | 文字/图像生成视频 | "把这张图片做成 5 秒动画" |
| MiniMaxSpeechSynthesize | 文字转语音 | "把这段文字转成语音" |
| MiniMaxMusicGenerate | 文字生成音乐 | "生成一段轻快的钢琴背景音乐" |
| MiniMaxVisionDescribe | 图像理解 | "描述这张图片的内容" |
| MiniMaxWebSearch | 网页搜索 | "搜索最新的 TypeScript 5.x 特性" |
仅在使用 MiniMax 模型时自动启用,不影响其他模型。
工作流示例
用户:帮我做一个项目宣传视频
AI 自动编排:
1. 分析 README,提取核心卖点
2. MiniMaxImageGenerate → 生成关键帧
3. MiniMaxVideoGenerate → 生成视频
4. MiniMaxSpeechSynthesize → 生成旁白
5. 返回所有资源 URL许可证
本项目遵循上游 Claude Code CLI 的开源许可协议。详见 Claude Code CLI 原始仓库。
