momozi1996/momo-code
GitHub: momozi1996/momo-code
一款具备双速自进化学习能力的本地优先 AI 编程命令行助手,支持多模型切换和从 Claude Code 无缝迁移。
Stars: 47 | Forks: 3
# MOMO CODE
```
███╗ ███╗ ██████╗ ███╗ ███╗ ██████╗ ██████╗ ██████╗ ██████╗ ███████╗
████╗ ████║██╔═══██╗████╗ ████║██╔═══██╗ ██╔════╝██╔═══██╗██╔══██╗██╔════╝
██╔████╔██║██║ ██║██╔████╔██║██║ ██║ ██║ ██║ ██║██║ ██║█████╗
██║╚██╔╝██║██║ ██║██║╚██╔╝██║██║ ██║ ██║ ██║ ██║██║ ██║██╔══╝
██║ ╚═╝ ██║╚██████╔╝██║ ╚═╝ ██║╚██████╔╝ ╚██████╗╚██████╔╝██████╔╝███████╗
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝
```
# MOMO CODE 🔥v1.0.0
## 架构
| 双速进化算法 |系统技术架构 |
|------|----------|
|
|
|
## 目录
- [功能](#features)
- [安装说明](#installation)
- [快速开始](#quick-start)
- [用法](#usage)
- [CLI 命令](#cli-commands)
- [配置](#configuration)
- [体验快速循环 (`/evolve`)](#experience-fast-loop-evolve)
- [自进化训练 (`/fine-tune`)](#self-evolution-training-fine-tune)
- [从 Claude Code 迁移](#migrating-from-claude-code)
- [环境变量](#environment-variables)
- [架构](#architecture)
- [更新日志](#changelog)
- [许可证](#license)
## 功能
- **25+ LLM 提供商** — Deepseek、Zhipu (GLM)、Moonshot (Kimi)、Claude、GPT-4、Gemini、Doubao、OpenRouter、Groq、Mistral 等。\chat` 命令仅使用 OpenAI 兼容协议`
- **自定义提供商** — 通过 `MOMO_CUSTOM_*` 环境变量接入任何 OpenAI 兼容的 API
- **模型分层** — 零配置选择:`ultra` / `standard` / `lite`
- **体验快速循环 (`/evolve`)** — 通过 KEP 协议进行秒级 prompt 注入。从成功中提炼的战术通过 Thompson 采样自动选择
- **自进化训练 (`/fine-tune`)** — 通过 Monte Carlo Graph Search (MCGS) + LoRA 进行小时级的权重提升
- **Claude Code 互操作** — 无缝迁移,继承 `.claude/` 配置、MCP 服务器、prompt
- **本地优先** — 你的代码永远不会离开你的机器。开源,可审计
- **Effect 驱动** — 使用 Effect 构建,实现可组合、类型安全的代码
## 安装说明
### 前置条件
- **macOS** 或 **Linux**(Windows 需通过 WSL)
- **Node.js** ≥ 20.0.0 — 如果没有,请从 https://nodejs.org 安装
- **git** 和 **curl**
使用以下命令检查:
```
node -v # should print v20.x or later
npm -v
git --version
curl --version
```
### 快速安装(推荐)
```
curl -fsSL https://momozi.cc/install | bash
```
安装程序将执行以下操作:
1. 将仓库克隆到 \`~/.momo/lib/momo-code\`
2. 运行 \`npm install\` + \`npm run build\`(大约 30-60 秒)
3. 在 \`~/.momo/bin/momo\` 放置一个包装脚本
4. 将 \`~/.momo/bin\` 添加到你的 \`~/.zshrc\` 或 \`~/.bashrc\` 的 PATH 中
**打开一个新的终端**(或运行 \`source ~/.zshrc\`),然后:
```
momo --version # 1.0.0
momo --help
```
如果看到 \`command not found: momo\`,说明你的 PATH 没有生效 — 请参阅 [INSTALL.md](./INSTALL.md#troubleshooting)。
### 从源码安装(手动)
```
git clone https://github.com/momozi1996/momo-code.git
cd momo-code/packages/opencode
npm install # installs all deps including TypeScript
npm run build # compiles TS + fixes ESM imports
node bin/momo --version
```
### 从 npm 安装
### 卸载
```
# 移除安装构件
rm -rf ~/.momo
# 从你的 shell rc 中移除 PATH 行
sed -i.bak '/# momo Code CLI/,+1d' ~/.zshrc # zsh
sed -i.bak '/# momo Code CLI/,+1d' ~/.bashrc # bash
```
### 1. 设置 API key
```
# 通用 key(适用于任何 provider)
export MOMO_API_KEY=your-api-key
# 或特定于 provider
export MOMO_ANTHROPIC_API_KEY=sk-ant-...
export MOMO_OPENAI_API_KEY=sk-...
```
### 2. 开始编码
```
# 交互模式
momo
# 一次性任务
momo "Refactor auth to use Effect"
# 使用模型层级
momo --model ultra "Complex architecture review"
momo --model standard "Fix the login bug"
momo --model lite "Quick code review"
```
### 3. 首次运行
首次运行时,momo 会创建 `~/.momo/`:
```
~/.momo/
├── momo.jsonc # Config
├── sessions/ # History
├── experience/ # Learned tactics (auto-created)
│ ├── tactics.json
│ └── ledger.jsonl
└── ...
```
## 用法
### 模型分层
| 分层 | 用例 |
|------|----------|
| `ultra` | 复杂任务,大上下文 |
| `standard` | 日常编码工作 |
| `lite` | 快速任务,低延迟 |
### CLI 选项
```
momo [options] [prompt]
Options:
--model, -m Model ID or tier
--provider, -p Provider
--help Show help
--version Show version
```
## CLI 命令
### 编码会话
```
momo # Show help and banner
momo "prompt" # One-shot task
momo --model claude-sonnet-4 "task"
```
### 体验快速循环 (`/evolve`)
```
momo /evolve # Run evolution with default settings
momo /evolve --mode=explore # Favor exploration of new tactics
momo /evolve --mode=harden # Favor proven high-win-rate tactics
momo /evolve --mode=convention-only # Only convention-type tactics
momo /evolve --list # Show all learned tactics
momo /evolve --inject # Inject tactics for current task
momo /evolve --solidify # Apply verdict, update stats
```
### 自进化训练 (`/fine-tune`)
```
momo /fine-tune # Diagnose, show training proposal
momo /fine-tune run # Execute training pipeline
momo /fine-tune run --dry-run # Preview without executing
momo /fine-tune status # Check training status
momo /fine-tune promote # Promote candidate to production
```
### 模型
```
momo models list # List all models
momo models info # Show model details
momo models providers # Show available providers
```
## 配置
### 配置文件 (`~/.momo/momo.jsonc`)
```
{
"$schema": "https://momocode.cc/config.json",
"model": "standard",
"provider": "anthropic",
"inheritClaudeCode": true,
"evolve": {
"enabled": true,
"auto": false,
"clusterThreshold": 10,
"budgetUSD": 50
}
}
```
## 体验快速循环 (`/evolve`)
体验快速循环(KEP — Knowledge Embedding Protocol)是 momo 独特的**秒级**学习系统。与需要数小时更新模型权重的 `/fine-tune` 不同,`/evolve` 通过 prompt 注入在**几秒钟内**学习并应用知识。
### 工作原理
1. **观察** — 从会话中提取信号(测试通过/失败、编辑接受/拒绝、用户修正)
2. **提炼** — 将成功的模式转换为紧凑的 Tactic 卡片
3. **选择** — 通过 **Thompson 采样**(贝叶斯探索/利用)对 tactic 进行排名
4. **注入** — 将 top-k 的 tactic 插入到当前任务的系统 prompt 中
5. **巩固** — 应用判定结果,更新 Beta 分布统计数据
6. **提升** — 高置信度的 tactic 将升级为 `/fine-tune` 训练课程
### 三种 KEP 资产
| 资产 | 描述 |
|-------|-------------|
| **Tactic** | 带有触发条件、步骤、检查点、护栏的紧凑策略卡 |
| **Case** | 注入了 tactic 的成功任务记录 |
| **Ledger** | 仅追加的审计日志 (JSONL) |
### Tactic 统计数据(Beta 分布)
每个 tactic 追踪一个 Beta(α, β) 分布:
- α = 1 + 胜场,β = 1 + 负场
- 使用 **Thompson 采样** 平衡探索与利用
- 使用 **UCB1** 作为备选选择策略
### 进化模式
| 模式 | 行为 |
|------|----------|
| `balanced`(默认) | 正常的探索/利用权衡 |
| `explore` | 倾向于新 tactic,更广泛的采样 |
| `harden` | 倾向于已证明有效的 tactic,更严格的选择 |
| `convention-only` | 仅限约定类型的 tactic |
### 存储
学习到的 tactic 存储在 `~/.momo/experience/`:
- `tactics.jsonl` — 所有 tactic 记录
- `ledger.jsonl` — 所有操作的审计日志
### 环境变量
| 变量 | 描述 | 默认值 |
|----------|-------------|---------|
| `MOMO_XP_MODE` | 进化模式 | `balanced` |
| `MOMO_XP_DIR` | 存储目录 | `~/.momo/experience` |
## 自进化训练 (`/fine-tune`)
权重慢速循环通过 fine-tuning 提升 momo 的**模型权重**。这在小时级的时间尺度上运行。
### 工作原理
1. **信号挖掘** — 从会话中提取学习信号
2. **课程合成** — 构建训练数据(Gold/Hard-neg/Replay 切片)
3. **Monte Carlo Graph Search (MCGS)** — 探索训练 pipeline 空间
4. **LoRA Fine-tuning** — 训练候选模型
5. **Ratchet Gate** — 确保单调改进
### 命令
```
momo /fine-tune # Diagnose, show proposal
momo /fine-tune run # Execute training
momo /fine-tune run --dry-run # Preview
momo /fine-tune status # Check status
momo /fine-tune promote # Promote candidate
```
### 配置
| 变量 | 描述 | 默认值 |
|----------|-------------|---------|
| `MOMO_EVOLVE_ENABLED` | 启用自进化 | `true` |
| `MOMO_EVOLVE_AUTO` | 自动触发训练 | `false` |
| `MOMO_EVOLVE_BUDGET_USD` | 最大训练预算 | `50` |
## 从 Claude Code 迁移
零摩擦迁移:
1. **配置继承**(默认开启) — 自动合并 `~/.claude/settings.json`
2. **MCP 服务器**(默认开启) — `.claude/mcp/` 开箱即用
3. **Prompt**(默认开启) — 可使用 `.claude/prompts/`
```
# 禁用继承
export MOMO_CLAUDE_CODE_INHERIT=false
export MOMO_ONLY=1
```
## 环境变量
| 变量 | 描述 |
|----------|-------------|
| `MOMO_API_KEY` | 通用 API key |
| `MOMO_HOME` | 主目录(默认:`~/.momo`) |
| `MOMO_MODEL` | 默认模型/分层 |
| `MOMO_PROVIDER` | 默认提供商 |
| `MOMO_XP_MODE` | 进化模式 (balanced/explore/harden/convention-only) |
| `MOMO_XP_DIR` | 体验存储目录 |
| `MOMO_EVOLVE_ENABLED` | 启用自进化 |
| `MOMO_EVOLVE_BUDGET_USD` | 训练预算 |
| `MOMO_ANTHROPIC_API_KEY` | Anthropic key |
| `MOMO_OPENAI_API_KEY` | OpenAI key |
| `MOMO_OPENROUTER_API_KEY` | OpenRouter key |
完整列表:`src/env.ts`
## 架构
### 双速进化
```
┌─────────────────────────────────────────────────────────┐
│ momo Code │
├─────────────────────┬───────────────────────────────────┤
│ Experience Fast │ Weight Slow Loop │
│ Loop (/evolve) │ (/fine-tune) │
├─────────────────────┼───────────────────────────────────┤
│ Timescale: seconds │ Timescale: hours │
│ Mechanism: prompt │ Mechanism: LoRA fine-tuning │
│ injection │ │
│ Selection: │ Search: Monte Carlo Graph │
│ Thompson/UCB │ Search (MCGS) │
│ Storage: JSONL │ Training: LoRA │
│ (~/.momo/xp/) │ Gate: Ratchet check │
│ Bridge: promoted │ Storage: model registry │
│ → curriculum │ │
└─────────────────────┴───────────────────────────────────┘
```
### Provider 层
```
User Request
|
v
resolveModel("standard") → BUILTIN_TIERS.standard
| [claude-sonnet, gpt-4.1, ...]
v
getCredentials() → MOMO_*_API_KEY env
|
v
Provider Factory → baseUrl, headers, timeout
|
v
createModel() → LanguageModel adapter
|
v
wrapSSE() → Streaming with 8min timeout
```
### 项目结构
```
packages/opencode/src/
├── provider/ # 19 LLM provider integrations
├── evolve/ # Weight slow loop (/fine-tune) — MCGS
├── experience/ # Fast loop (/evolve) — KEP protocol
│ ├── tactic.ts # Tactic model + Beta stats
│ ├── selector.ts # Thompson/UCB selection
│ ├── injector.ts # Prompt injection
│ ├── gate.ts # Promotion ratchet
│ ├── bridge.ts # Two-speed bridge
│ └── ...
├── cli/cmd/ # CLI commands
├── session/ # Prompt routing
├── config/ # Configuration
└── effect/ # Effect utilities
```
## 测试结果
- **TypeScript**: `tsc --noEmit` — **0 错误**
- **Runtime**: 17/17 个测试通过
- **CLI 验证**: `/evolve`, `/fine-tune`, `models`, `help`
## 更新日志
### v1.0.0 (2026-06-16)
**新增:**
- 体验快速循环 (`/evolve`) — 带有 Thompson 采样的 KEP 协议
- 权重慢速循环 (`/fine-tune`) — MCGS 训练 pipeline
- CLI 命令系统 — `/evolve`, `/fine-tune`, `models`, `help`
- 跨越 provider/evolve/experience/cli 层的 53 个 TypeScript 模块
- 双速进化架构
- 用于 tactic 选择的 Beta 分布追踪
- 双速桥梁(提升的 tactic → fine-tune 课程)
**变更:**
- 产品名称:kqq Code → momo Code
- bin/momo:CJS → ESM 命令路由器
- package.json:生产就绪导出,文件白名单
## 许可证
[MIT](LICENSE) — 第三方归属说明请参阅 [NOTICE](NOTICE)。
另请参阅 [USE_RESTRICTIONS.md](USE_RESTRICTIONS.md) 和 [SECURITY.md](SECURITY.md)。
## 架构
| 双速进化算法 |系统技术架构 |
|------|----------|
|
|
|
## 目录
- [功能](#features)
- [安装说明](#installation)
- [快速开始](#quick-start)
- [用法](#usage)
- [CLI 命令](#cli-commands)
- [配置](#configuration)
- [体验快速循环 (`/evolve`)](#experience-fast-loop-evolve)
- [自进化训练 (`/fine-tune`)](#self-evolution-training-fine-tune)
- [从 Claude Code 迁移](#migrating-from-claude-code)
- [环境变量](#environment-variables)
- [架构](#architecture)
- [更新日志](#changelog)
- [许可证](#license)
## 功能
- **25+ LLM 提供商** — Deepseek、Zhipu (GLM)、Moonshot (Kimi)、Claude、GPT-4、Gemini、Doubao、OpenRouter、Groq、Mistral 等。\chat` 命令仅使用 OpenAI 兼容协议`
- **自定义提供商** — 通过 `MOMO_CUSTOM_*` 环境变量接入任何 OpenAI 兼容的 API
- **模型分层** — 零配置选择:`ultra` / `standard` / `lite`
- **体验快速循环 (`/evolve`)** — 通过 KEP 协议进行秒级 prompt 注入。从成功中提炼的战术通过 Thompson 采样自动选择
- **自进化训练 (`/fine-tune`)** — 通过 Monte Carlo Graph Search (MCGS) + LoRA 进行小时级的权重提升
- **Claude Code 互操作** — 无缝迁移,继承 `.claude/` 配置、MCP 服务器、prompt
- **本地优先** — 你的代码永远不会离开你的机器。开源,可审计
- **Effect 驱动** — 使用 Effect 构建,实现可组合、类型安全的代码
## 安装说明
### 前置条件
- **macOS** 或 **Linux**(Windows 需通过 WSL)
- **Node.js** ≥ 20.0.0 — 如果没有,请从 https://nodejs.org 安装
- **git** 和 **curl**
使用以下命令检查:
```
node -v # should print v20.x or later
npm -v
git --version
curl --version
```
### 快速安装(推荐)
```
curl -fsSL https://momozi.cc/install | bash
```
安装程序将执行以下操作:
1. 将仓库克隆到 \`~/.momo/lib/momo-code\`
2. 运行 \`npm install\` + \`npm run build\`(大约 30-60 秒)
3. 在 \`~/.momo/bin/momo\` 放置一个包装脚本
4. 将 \`~/.momo/bin\` 添加到你的 \`~/.zshrc\` 或 \`~/.bashrc\` 的 PATH 中
**打开一个新的终端**(或运行 \`source ~/.zshrc\`),然后:
```
momo --version # 1.0.0
momo --help
```
如果看到 \`command not found: momo\`,说明你的 PATH 没有生效 — 请参阅 [INSTALL.md](./INSTALL.md#troubleshooting)。
### 从源码安装(手动)
```
git clone https://github.com/momozi1996/momo-code.git
cd momo-code/packages/opencode
npm install # installs all deps including TypeScript
npm run build # compiles TS + fixes ESM imports
node bin/momo --version
```
### 从 npm 安装
### 卸载
```
# 移除安装构件
rm -rf ~/.momo
# 从你的 shell rc 中移除 PATH 行
sed -i.bak '/# momo Code CLI/,+1d' ~/.zshrc # zsh
sed -i.bak '/# momo Code CLI/,+1d' ~/.bashrc # bash
```
### 1. 设置 API key
```
# 通用 key(适用于任何 provider)
export MOMO_API_KEY=your-api-key
# 或特定于 provider
export MOMO_ANTHROPIC_API_KEY=sk-ant-...
export MOMO_OPENAI_API_KEY=sk-...
```
### 2. 开始编码
```
# 交互模式
momo
# 一次性任务
momo "Refactor auth to use Effect"
# 使用模型层级
momo --model ultra "Complex architecture review"
momo --model standard "Fix the login bug"
momo --model lite "Quick code review"
```
### 3. 首次运行
首次运行时,momo 会创建 `~/.momo/`:
```
~/.momo/
├── momo.jsonc # Config
├── sessions/ # History
├── experience/ # Learned tactics (auto-created)
│ ├── tactics.json
│ └── ledger.jsonl
└── ...
```
## 用法
### 模型分层
| 分层 | 用例 |
|------|----------|
| `ultra` | 复杂任务,大上下文 |
| `standard` | 日常编码工作 |
| `lite` | 快速任务,低延迟 |
### CLI 选项
```
momo [options] [prompt]
Options:
--model, -m 标签:AI编程助手, MITM代理, SOC Prime, 人工智能, 代码生成, 开发工具, 渗透测试工具, 用户模式Hook绕过, 网络调试, 自动化, 自动化攻击