# Aka **Repository Path**: wenj91/Aka ## Basic Information - **Project Name**: Aka - **Description**: Aka基于Claude Code泄露源码而构建的自主AI智能体。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-12 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# LegnaCode CLI **AI 驱动的终端编程助手,全面增强版** [![version](https://img.shields.io/badge/version-2.1.2-blue)](./CHANGELOG.md) [![platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20Windows-brightgreen)](#平台支持) [![license](https://img.shields.io/badge/license-MIT-yellow)](./LICENSE) [![Claude Code](https://img.shields.io/badge/based%20on-Claude%20Code-blueviolet)](https://github.com/anthropics/claude-code) 🌐 [English](./README.md) · 🛠️ [开发者指南](./developer.en.md) · 📊 [对比 Claude Code](./COMPARISON.md) · 📊 [对比 Codex](./COMPARISON-CODEX.md) · 📋 [更新日志](./CHANGELOG.md) image
--- LegnaCode 基于 [Claude Code CLI](https://github.com/anthropics/claude-code) 深度增强,完全兼容原版,同时新增多模态工具、智能记忆、可视化工作流编排等能力。 ### 核心亮点 🧠 **记忆 Token 消耗降低 88%** — 4 层记忆栈 + 向量搜索替代平铺 MEMORY.md 注入\ 🎨 **6 种多模态工具** — 图像、视频、语音、音乐生成,视觉理解,网络搜索(MiniMax 模型)\ 🔀 **可视化工作流编辑器** — 基于 FlowGram 的拖拽式 DAG 编辑器,角色库,审批门\ ⚡ **即时反馈** — 从第 1 秒显示 Token 计数,状态信息显示在旋转指示器中,无静默操作\ 🔌 **可插拔记忆** — DrawerStore(SQLite + TF-IDF),时序知识图谱,WAL 审计\ 🤖 **更智能的 Agent** — RPC 子进程执行,自主技能检测,智能模型路由 --- ## 更新日志 | 版本 | 摘要 | |------|------| | **2.1.2** | 修复禁用沙箱时 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 提供商);管理后台配置热重载 + UI 自动刷新;getGlobalSettings 死代码修复 | | **2.0.3** | Kiro 网关优化;管理后台配置行内编辑;模型白名单移除;count_tokens 禁用;沙箱移除 | | **1.9.9** | Bash exit code 65 彻底修复;Admin 预设配置模板;ANTHROPIC_MODEL 字段 | | **1.9.5** | Admin 预设配置模板(7 个提供商);ANTHROPIC_MODEL 字段;迁移自动填充 | | **1.9.4** | macOS Seatbelt 沙箱重写(默认允许);Shell.ts 沙箱返回路径修复 | | **1.9.3** | OpenAI 兼容 API 路由;7 个国产提供商适配器深度对齐;管理后台配置克隆;Bash 沙箱修复 | | **1.9.2** | Computer Use Python 桥接(macOS + Windows);自动 Python 3.12+ 虚拟环境搭建;Computer Use 功能门移除 | | **1.9.0** | 可移植会话(相对路径 cwd);WebUI 大改版(项目浏览器、记忆编辑器、力导向图);全量项目迁移(会话 + 子 Agent + 记忆 + 技能 + Agent + 规则 + MCP 配置);指针文件切换配置 | | **1.8.5** | Token 优化:压缩工具提示词(BashTool/AgentTool/TodoWrite/EnterPlanMode);修复 Kimi/MiniMax/MiMo 适配器 cache_control |
1.8.x 补丁 | 版本 | 摘要 | |------|------| | 1.8.4 | 修复 `isVirtual in m` 崩溃 — 会话转录处理的空值防护 | | 1.8.3 | GitHub Actions CI 发布流程;OML agent 类型修复;跨平台 Rust 原生插件构建 | | 1.8.2 | 消息管道崩溃的空值防护修复;darwin-arm64 Rust 原生插件(沙箱/文件搜索/apply-patch) |
| **1.8.0** | Codex 完全兼容:插件适配器 + 市场、技能发现、配置互操作;TS/Python SDK;TTS + WebRTC 语音 |
更早版本 | 版本 | 摘要 | |------|------| | 1.6.1 | Rust NAPI 插件(cosine/tfidf/hash/tokens);内核沙箱(Seatbelt/seccomp);两遍唤醒;关键词密度 L1 | | 1.6.0 | 协作模式(`/mode`);JS REPL 桥接;JSON-RPC 应用服务器;Agent 配置迁移(`/migrate`) | | 1.5.9 | Guardian 子 Agent;Shell 提权协议;网络策略 Agent | | 1.5.8 | 进程加固;执行策略引擎;密钥检测器;回滚实现 | | 1.5.7 | Git 风格 `/fork` 命令:从任意消息分叉(`@N`),列出分支,切换分叉 | | 1.5.6 | WebUI SSE 超时修复(最大 255s);控制器双重关闭崩溃修复 | | 1.5.4 | 所有平台二进制同步重新发布 | | 1.5.3 | Hermes 自演化循环;Qwen 适配器;WebUI 聊天查看器 & 实时聊天;自动技能创建 | | 1.5.2 | 性能审计:异步 CodeGraph、undoTracker 大小防护、压缩 i18n、TTL 缓存 | | 1.5.1 | 主动技能调用(OML 1% 规则);自动注入前端/设计指南;增强设计器 Agent | | 1.5.0 | 修复 REPL 启动死锁;移除 /undo 静态导入;所有 AtomCode 功能完全接入 | | 1.4.9 | 无 AVX 基线构建,适用于旧 x64 CPU(darwin-x64-baseline, linux-x64-baseline) | | 1.4.8 | AtomCode 融合(Pangu CJK 间距、挫折检测、循环防护、错误文件注入、首次读取全文) | | 1.4.7 | claude-mem 融合(内容哈希去重、Token 经济学、相关性反馈、90 天衰减、隐私标签) | | 1.4.6 | OML 技能崩溃修复;计划 + 记忆 → 项目本地化;复合工程融合 | | 1.4.5 | OpenViking 内容分层(L0/L1/L2 降级 + 预算上限注入) | | 1.4.4 | 状态信息 → 旋转指示器行;对比文档 | | 1.4.3 | Mempalace 记忆融合(DrawerStore + TF-IDF + 4 层栈 + 知识图谱) | | 1.4.2 | 进度反馈(修复 8 条静默路径);verbose 默认开启 | | 1.3.6 | Windows 路径分隔符修复(Edit 工具) | | 1.3.5 | SessionStart 钩子修复;Windows 备用屏幕渲染 | | 1.3.4 | OML 超能力(11 项技能);SessionStart 引导 | | 1.3.3 | OML 智能编排(19 项 Agent 技能) | | 1.3.2 | 禁用 History Snip;Windows 流式修复 | | 1.3.1 | 1M 模型截断阈值修复 | | 1.3.0 | 项目本地存储;`legna migrate` | | 1.2.1 | 模型适配器层(MiMo、GLM、DeepSeek、Kimi、MiniMax) | | 1.2.0 | 会话按项目分组;Windows 原生编译 | | 1.1.5–1.1.9 | Windows 安装修复;WebUI 管理面板 | | 1.0.0–1.0.9 | 初始发布;功能开关;i18n;BUDDY 宠物 |
完整详情 → [CHANGELOG.md](./CHANGELOG.md) --- ## 致谢 本项目基于 Anthropic 的 [Claude Code CLI](https://github.com/anthropics/claude-code) 构建 —— 开创性的终端 AI 编程工具。LegnaCode 在保持完全上游兼容的前提下,扩展了多模态能力、更智能的记忆和增强的用户体验。感谢 Anthropic 团队开源这一优秀基础。 --- ## 功能特性
**🎨 多模态** (MiniMax) - 图像 / 视频 / 语音生成 - 音乐生成 / 视觉理解 / 网络搜索 - 自动编排流水线 - `/auth-minimax` 配置 **🧠 记忆系统** - 4 层记忆栈(~800 tokens/轮) - TF-IDF 向量搜索(<5ms) - 时序知识图谱 - PreCompact 自动保存
**🔀 工作流编排** - 可视化 DAG 编辑器(FlowGram) - 拖拽式节点组装 - 角色库(分析师、开发者、规划师、测试等) - 人工审批门 - 内置敏捷 & 热修复工作流 **🤖 Agent** - RPC 子进程工具执行 - 智能模型路由 - 自主技能检测 - 跨会话 `/recall` 搜索
**🛡️ 核心** - 45+ 内置工具 - 多云后端(Bedrock、Vertex、Foundry) - MCP 协议支持 - 多 Agent 协作 **🖥️ 用户体验** - Verbose 默认开启 - 从第 1 秒显示 Token 计数 - 状态信息显示在旋转指示器中 - 中断原因可见
**🔧 DevOps** - WebUI 管理面板 - `legna migrate` 迁移工具 - 纯 TS 语法高亮 - 跨平台二进制 **🌐 多提供商** - 7 个国产 AI 适配器(DeepSeek、GLM、Kimi、MiMo、MiniMax、Qwen) - OpenAI 兼容 API 路由 - Codex 提供商桥接 - `reasoning_content` 回传
--- ## 环境要求 | 依赖 | 版本 | |------|------| | [Bun](https://bun.sh) | >= 1.2.0 | | Node.js | >= 18(可选) | | Git | >= 2.0 | | 操作系统 | macOS / Linux / Windows | --- ## 安装 ### 方式一:npm 全局安装(推荐) ```bash npm install -g @legna-lnc/legnacode ``` 如果使用镜像源(如 cnpm、淘宝镜像)安装失败或版本不同步,可以指定官方源: ```bash npm install -g @legna-lnc/legnacode --registry=https://registry.npmjs.org ``` 安装后,`legna` 命令可在任意目录使用。它会自动下载对应平台的预编译二进制文件(支持 macOS arm64/x64、Linux x64/arm64、Windows x64)。 ### 无 AVX 的旧 CPU 如果看到 `warn: CPU lacks AVX support, strange crashes may occur`,请安装基线版本: ```bash # macOS Intel(2011 年前或无 AVX 的 Hackintosh) npm i -g @legna-lnc/legnacode-darwin-x64-baseline # Linux x64(无 AVX 的旧服务器/虚拟机) npm i -g @legna-lnc/legnacode-linux-x64-baseline ``` 基线二进制位于 `node_modules/@legna-lnc/legnacode--baseline/bin/legna`,添加到 PATH 或创建别名即可。 ```bash # 验证安装 legna --version # 更新到最新版本 npm update -g @legna-lnc/legnacode ``` ### 方式二:从源码构建 ```bash git clone https://github.com/LegnaOS/LegnaCode-cli.git cd LegnaCode-cli bun install bun run compile # 编译后的二进制文件为 ./legna — 移动到 PATH 中即可 ``` --- ## 快速开始 ```bash # 交互模式 legna # 非交互模式(直接提问) legna -p "解释这段代码的功能" # 继续上次会话 legna --continue # 查看版本 legna --version ``` --- ## 项目结构 ``` ├── src/ │ ├── entrypoints/ # 入口文件(cli.tsx) │ ├── server/ # HTTP 服务器(管理 WebUI、编排 API) │ ├── orchestrator/ # 工作流编排引擎(StateGraph、调度器、检查点) │ ├── orchestrator-roles/ # 角色定义(分析师、开发者、规划师、测试等) │ ├── orchestrator-workflows/ # 预置工作流(agile.yaml、hotfix.yaml) │ ├── components/ # React/Ink 终端 UI 组件 │ ├── tools/ # 内置工具(Bash、文件操作、搜索等) │ ├── services/ # API 调用、MCP 客户端、分析、记忆、LSP │ ├── memdir/ # 4 层记忆系统 + 向量搜索 │ ├── bridge/ # 远程控制 / 桥接模式 │ ├── skills/ # 技能系统(内置、MiniMax、MCP、Codex) │ ├── plugins/ # 插件系统(内置、OML) │ ├── utils/model/adapters/ # 模型提供商适配器(7 个国产提供商 + OpenAI) │ ├── native-ts/ # 纯 TS 替代原生模块 │ ├── buddy/ # BUDDY 宠物功能 │ ├── voice/ # 语音模式 │ ├── proactive/ # 主动 Agent 行为 │ ├── coordinator/ # 多 Agent 协调器 │ ├── security/ # 进程加固、沙箱 │ ├── hooks/ # React hooks │ └── utils/ # 工具函数 ├── webui/ # 管理 WebUI 前端(React + Vite + Tailwind + FlowGram) ├── extensions/legna-office/ # VS Code 扩展(像素可视化) ├── sdk/typescript/ # TypeScript SDK(@legna/legnacode-sdk) ├── sdk/python/ # Python SDK ├── native/ # Rust 原生插件(沙箱、文件搜索、apply-patch) ├── stubs/ # 原生模块桩文件 ├── scripts/ # 构建脚本 ├── docs/ # 文档 ├── bunfig.toml # Bun 构建配置(功能开关、宏定义) └── package.json ``` --- ## 构建 LegnaCode 使用 Bun 打包器构建,提供两种模式: - `bun run build` — 构建到 `dist/` 目录,适合开发和调试 - `bun run compile` — 编译为独立的 `legna` 二进制文件,无需 Bun 运行时 ### 管理 WebUI `legna admin` 启动基于浏览器的管理面板,通过 Web 界面管理所有配置 —— 无需手动编辑 JSON。 ```bash # 启动管理面板(默认端口 3456,自动打开浏览器) legna admin # 自定义端口 legna admin 8080 ``` 面板顶部标签页切换管理范围:**Claude**(`~/.claude/`)和 **LegnaCode**(`~/.legna/`)。每个范围提供四个面板: | 面板 | 功能 | |------|------| | 配置编辑器 | 可视化编辑 settings.json:API 端点、API 密钥、模型映射(Opus/Sonnet/Haiku)、超时、权限模式、语言等 | | 配置档案 | 列出所有 settings*.json 文件,显示 baseUrl/模型,一键切换活动配置 | | 会话历史 | 浏览历史会话,显示项目路径、标识、时间戳、提示数;一键复制 `legna --resume` 命令 | | 配置迁移 | 双向 Claude ↔ LegnaCode 迁移;支持全量或选择性字段迁移,迁移前可预览差异 | > 从源码运行时,需先构建前端:`cd webui && npm install && npm run build`,然后 `bun run src/server/admin.ts`。npm 全局安装版本已包含预构建的 WebUI。 版本号等构建时常量通过 `bunfig.toml` 中的 `[bundle.define]` 注入。`[bundle.features]` 中的功能开关可实现死代码消除。 原生模块(`color-diff-napi`、`modifiers-napi` 等)标记为 `external`,运行时从 `stubs/` 加载占位实现。语法高亮已切换到 `src/native-ts/color-diff/` 下的纯 TypeScript 实现,无需原生编译依赖。 --- ## 配置 LegnaCode 使用 `~/.legna/` 作为全局配置目录,项目级数据存储在 `/.legna/`: - `~/.legna/settings.json` — 全局用户设置 - `~/.legna/.credentials.json` — 认证凭据 - `/.legna/sessions/` — 项目会话记录(JSONL) - `/.legna/skills/` — 项目技能 - `/.legna/rules/` — 项目规则 - `/.legna/settings.json` — 项目级设置 - `LEGNA.md` — 项目指令文件,AI 自动读取并遵循 > 首次启动时,全局数据会自动从 `~/.claude/` 单向迁移到 `~/.legna/`(不覆盖已有文件)。`~/.claude/projects/` 下的旧会话通过回退链自动读取 —— 无需手动迁移。设置 `LEGNA_NO_CONFIG_SYNC=1` 可禁用自动迁移。 ### legna migrate 手动迁移数据: ```bash # 迁移全部(全局 + 当前项目会话) legna migrate # 仅迁移全局数据:~/.claude/ → ~/.legna/ legna migrate --global # 仅迁移当前项目会话到本地 .legna/sessions/ 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 URL(覆盖区域默认值) | --- ## 工作流编排 LegnaCode 内置 YAML 工作流编排引擎和可视化编辑器,支持从终端或 WebUI 直接进行结构化软件开发流程。 ### 可视化工作流编辑器(FlowGram) WebUI 内置基于 [FlowGram](https://github.com/alibaba/flowgram-lite) 的拖拽式 DAG 编辑器,替代了之前的自定义 DAG 组件: - **节点面板** — 将节点类型(开始、结束、任务、审批门、条件)拖拽到画布 - **节点属性面板** — 编辑节点配置:名称、角色、提示模板、审批门设置 - **YAML ↔ DAG 同步** — YAML 定义与可视化图之间的双向转换 - **角色库** — 浏览和分配预定义角色(分析师、开发者、规划师、测试、发布、回归测试) ### 预置工作流 | 工作流 | 说明 | |--------|------| | `agile.yaml` | 完整敏捷开发生命周期:需求分析 → 需求审批 → 规划 → 规划审批 → 开发 → 测试设计 → 用例审批 → 测试 → 测试审批 → 发布 | | `hotfix.yaml` | 缺陷修复流程:回归测试 → 开发 → 复测 → 发布审批 → 发布(热修复模式自动审批) | ### 预置角色 | 角色 | 职责 | |------|------| | analyst(分析师) | 需求分析与利益相关者沟通 | | planner(规划师) | 架构设计与任务拆解 | | developer(开发者) | 代码实现 | | tester(测试) | 测试设计与执行 | | releaser(发布) | 发布准备与部署 | | regression-tester(回归测试) | 回归测试与稳定性验证 | ### 核心能力 - **StateGraph 引擎** — 有向图执行,支持节点、条件路由和状态归约器 - **审批门** — 关键阶段的人工审批(热修复模式可自动审批) - **检查点/恢复** — SQLite 持久化;支持恢复、从阶段重试、从审批门重做 - **调度器** — 基于 Cron 的自动化工作流调度 - **制品管理器** — 保存/加载工作流输出 - **事件总线** — 实时事件流(兼容 SSE) - **迭代运行时注册表** — 跟踪和管理运行中的工作流迭代 ### 使用方式 ```bash # 从 REPL 启动工作流 /orchestrator # 通过 WebUI 管理工作流 legna admin # → 导航到"工作流"标签页 ``` --- ## MiniMax 多模态集成 使用 MiniMax 模型(`ANTHROPIC_BASE_URL` 指向 `api.minimax.io` 或 `api.minimaxi.com`)并配置 `MINIMAX_API_KEY` 时,LegnaCode 自动注册 6 个原生多模态工具,AI 可直接调用。 ### 配置 ```bash # 方式一:环境变量 export MINIMAX_API_KEY="your-api-key" export MINIMAX_REGION="global" # 或 "cn" # 方式二:交互式配置(持久化到 ~/.legna/minimax-credentials.json) legna > /auth-minimax your-api-key ``` 获取 API 密钥:[MiniMax 国际站](https://platform.minimax.io) 或 [MiniMax 国内站](https://platform.minimaxi.com) ### 多模态工具 | 工具 | 功能 | 示例 | |------|------|------| | `MiniMaxImageGenerate` | 文生图 | "生成一张赛博朋克夜景城市" | | `MiniMaxVideoGenerate` | 文/图生视频 | "将这张图片变成 5 秒动画" | | `MiniMaxSpeechSynthesize` | 文本转语音 | "将这段文字转换为语音" | | `MiniMaxMusicGenerate` | 文生音乐 | "生成一段欢快的钢琴背景音乐" | | `MiniMaxVisionDescribe` | 图像理解与分析 | "描述这张图片的内容" | | `MiniMaxWebSearch` | 网络搜索 | "搜索 TypeScript 5.x 最新特性" | 这些工具仅在使用 MiniMax 模型时启用,不影响其他模型的工具列表。 ### 多模态工作流 AI 可自动编排多个工具完成复杂任务: ``` 用户:帮我制作一个项目宣传视频 AI 自动编排: 1. 分析项目 README,提取核心卖点 2. MiniMaxImageGenerate → 生成关键帧图像 3. MiniMaxVideoGenerate → 从关键帧生成视频 4. MiniMaxSpeechSynthesize → 生成旁白配音 5. 返回所有生成资源的 URL ``` ### Schema 导出 MiniMax 工具 Schema 可导出为 Anthropic 兼容格式,用于外部集成: ```typescript import { exportMiniMaxToolSchemasJSON } from './src/tools/MiniMaxTools/schemaExport.js' console.log(exportMiniMaxToolSchemasJSON()) ``` --- ## 多提供商支持 LegnaCode 通过专用适配器支持 7 个国产 AI 提供商,以及 OpenAI 兼容端点: | 提供商 | 适配器 | 核心特性 | |--------|--------|----------| | DeepSeek | `deepseek.ts` | 自动推理强度,`reasoning_content` 回传 | | GLM(智谱) | `glm.ts` | 双端点支持 | | Kimi(月之暗面) | `kimi.ts` | `reasoning_content` 回传,cache_control 修复 | | MiMo(小米) | `mimo.ts` | `reasoning_content` 回传,cache_control 修复 | | MiniMax | `minimax.ts` | 多模态工具,cache_control 修复 | | Qwen(通义千问) | `qwen.ts` | OpenAI 格式流式桥接 | | OpenAI 兼容 | `openai-compat.ts` | 通用 OpenAI API 路由 | 所有适配器支持: - 双端点支持(Anthropic + OpenAI 格式) - 提供商特定的 `finish_reason` 映射 - 弱模型的 JSON 修复 - 流式 SSE → Anthropic 事件翻译 --- ## SDK ### TypeScript SDK ```typescript import { LegnaCodeClient } from '@legna/legnacode-sdk' const client = new LegnaCodeClient() const result = await client.query("解释这个函数") ``` ### Python SDK ```python import asyncio from legnacode_sdk import LegnaCodeClient async def main(): client = LegnaCodeClient() result = await client.query("解释这个函数") asyncio.run(main()) ``` 两个 SDK 均通过 stdio/WebSocket 使用 JSON-RPC 协议,并包含 Codex 兼容别名。 --- ## 许可证 本项目遵循上游 Claude Code CLI 的开源许可证。详见 [Claude Code CLI](https://github.com/anthropics/claude-code) 原始仓库。 ---
**[Claude Code CLI](https://github.com/anthropics/claude-code)** · **[Anthropic](https://www.anthropic.com)** · **[Model Context Protocol](https://modelcontextprotocol.io)**