# 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 驱动的终端编程助手,全面增强版**
[](./CHANGELOG.md)
[](#平台支持)
[](./LICENSE)
[](https://github.com/anthropics/claude-code)
🌐 [English](./README.md) · 🛠️ [开发者指南](./developer.en.md) · 📊 [对比 Claude Code](./COMPARISON.md) · 📊 [对比 Codex](./COMPARISON-CODEX.md) · 📋 [更新日志](./CHANGELOG.md)
---
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)**