Multi-Model · Structured Memory · Multi-Agent Collaboration
A powerful enhanced fork of Claude Code CLI with structured memory, multi-model switching, multi-agent parallelism, and extensible skill system.
Claude GLM Doubao DeepSeek Gemini Codex — switch with one command /model
Features · Quick Start · Docs · Architecture
Keywords: AI CLI tool, Claude Code CLI, multi-model CLI, structured memory, SQLite FTS5, multi-agent collaboration, developer productivity, terminal AI assistant, LLM tools, coding assistant, Claude Code fork, Ocean CLI, 智谱GLM, 豆包, DeepSeek, MCP protocol, Ink TUI, skill system, auto mode, bilingual assistant
- 完整的 Ink TUI 交互界面(与官方 Claude Code 一致)
- 多模型接入 — Claude / 智谱GLM / 豆包 / DeepSeek,
/model一键切换 - Auto Mode — AI 分类器自动审批安全操作,危险操作仍需确认
- 双层记忆系统 — 纯 SQLite 结构化事实存储(6 种分类 + 全局/项目双层隔离)+ 自动提取 + 语义去重 + AutoDream 清洗 — 使用指南
- 多模型协作 —
/multi-agent按角色分工,真实并行调用 — 使用指南 - 技能系统 —
/skillify从会话提炼技能,支持脚本自动生成 — 使用指南 - Channel IM 集成 — 飞书/钉钉/Telegram 远程控制 Agent — 使用指南
- Hook 系统 — 27 种事件、4 种类型,高度可定制 — 使用指南
- 智能过载重试机制,自动处理 API 限流和超时
支持 Anthropic 官方模型和第三方兼容 API,通过 custom-providers.json 配置:
{
"glm": {
"name": "智谱GLM",
"type": "anthropic",
"baseUrl": "https://open.bigmodel.cn/api/anthropic",
"apiKeyEnv": "YOUR_API_KEY",
"models": [
{ "id": "glm-5", "name": "GLM-5", "contextLength": 128000 }
]
}
}# 会话中一键切换
/model glm:glm-5
/model claude-opus-4-6内置智能过载重试:API 限流时自动指数退避,无需手动干预。
AI 分类器自动审批工具调用,所有模型提供商均可使用:
# 命令行启用
ocean --permission-mode auto
# 永久启用(~/.claude/settings.json)
{ "permissions": { "defaultMode": "auto" } }核心特性:
- 双层隔离 — 用户偏好全局共享,项目知识跟随项目,不串台
- 自动提取 — 每轮对话结束,后台 fork agent 自动提取用户偏好、项目结构、技术栈等事实写入 SQLite
- 分层自动注入 — 每轮对话前智能预取相关记忆,identity/workflow/项目概览始终注入,coding_style按技术栈匹配注入,其他记忆按相关性注入,总token占比<2%
- 三层递进式去重 + Upsert — 层1实体重叠+编辑距离(英文友好)→ 层2 Jaccard bigram相似度(中文回退)→ 层3 Containment包含率(子集检测),解决多模型切换导致的记忆重复问题
- 实体自动提取 — 中英文实体识别 + 自动分类(person/technology/topic),基于实体做关联检索和矛盾检测
- 需求变更自动降权 — 实体 JOIN 矛盾检测 + Jaccard 纯文本矛盾扫描(双通道),同主题内容冲突时自动降权旧事实,新需求自动覆盖旧设计
- FTS5 + 中文 bigram — 写入时预分词,毫秒级本地检索,不依赖 API
- 主题关键词提取 — 写入时从 tags+content 自动提取 3-8 个主题关键词,查询时精准区分"核心主题"和"附带提及",缓解 general 黑洞效应
- 五层递进式检索管线 — FTS5 MATCH → LIKE(含中文子串分解) → 字符级交叉匹配 → 分类推断 → trust fallback,弱模型模糊查询语义命中率 75%
- 查询双语扩展 — 种子术语表 + 事实库自动提取(括号注释/分隔符关联),中文查询自动追加英文术语,英文查询追加中文
- 信任评分机制 — helpful +0.05 / unhelpful -0.10,低信任(<0.5)事实自动排除在注入之外
- 五种高级检索 — search / probe / reason / related / contradict,支持语义搜索、实体关联、冲突检测
- 三层隔离保障 — 路由与分类解耦,category标签由AI标注(允许偏差),存储位置由内容级检测确定性地决定,防止项目知识污染全局库
六种事实分类:
| Category | 存储位置 | 说明 | 注入策略 |
|---|---|---|---|
identity |
全局库 | 用户身份、称呼偏好、AI角色设定、个人背景 | 始终注入 |
coding_style |
全局库 | 编码规范、命名约定、设计模式偏好(按语言) | 按项目技术栈匹配注入 |
tool_pref |
全局库 | 工具偏好、CLI配置、模型切换习惯 | prefetch 检索注入 |
workflow |
全局库 | 工作流习惯、提交流程、发布偏好、文档处理习惯 | 始终注入 |
general |
全局库 | 跨项目通用偏好、视觉审美、配色偏好 | prefetch 检索注入(内容含项目标识时自动路由到项目库) |
project |
项目库 | 项目架构决策、实现细节、经验教训、会议记录 | prefetch 检索注入 + 概览始终注入 |
/mem # 列出所有记忆
/mem add 项目架构说明 # 压缩当前对话为记忆
/mem add --full 交接文档 # 完整工作交接(需求+决策+变更+待办)
/mem show mem_001 # 加载全文
/mem search 关键词 # 搜索
/mem rm mem_001 # 删除SQLite 表结构详解
每个数据库包含 4 张核心表 + 1 个 FTS5 虚拟表 + 1 个统计表:
facts — 事实表
存储所有记忆事实,每条事实独立成行,支持信任评分和检索统计。
| 字段 | 类型 | 说明 |
|---|---|---|
fact_id |
INTEGER PK | 自增主键 |
content |
TEXT UNIQUE | 事实内容(唯一约束防重复) |
category |
TEXT | 分类:identity / coding_style / tool_pref / workflow / project / general |
tags |
TEXT | 逗号分隔标签(含中文 bigram 预分词结果) |
keywords |
TEXT | 主题关键词 JSON(写入时自动提取,如 [{"kw":"邮箱","w":0.9}]) |
trust_score |
REAL | 信任评分(0.0~1.0,默认 0.5) |
retrieval_count |
INTEGER | 被检索次数 |
helpful_count |
INTEGER | 被标记 helpful 次数 |
created_at |
TEXT | 创建时间(本地时区) |
updated_at |
TEXT | 最后更新时间(本地时区) |
entities — 实体表
自动从事实内容中提取的命名实体,支持别名和类型分类。
| 字段 | 类型 | 说明 |
|---|---|---|
entity_id |
INTEGER PK | 自增主键 |
name |
TEXT | 实体名称 |
entity_type |
TEXT | 自动分类:person / technology / topic |
aliases |
TEXT | 别名(逗号分隔) |
created_at |
TEXT | 创建时间 |
entity_type 分类规则:纯中文 2-4 字 → person(可能是人名),含英文 → technology,中文 5+ 字 → topic
fact_entities — 事实-实体关联表
多对多关联,一条事实可关联多个实体,一个实体可被多条事实引用。CASCADE 删除保证一致性。
| 字段 | 类型 | 说明 |
|---|---|---|
fact_id |
INTEGER FK | 关联 facts.fact_id |
entity_id |
INTEGER FK | 关联 entities.entity_id |
联合主键
(fact_id, entity_id),INSERT OR IGNORE 防重复关联
facts_fts — FTS5 全文索引(虚拟表)
绑定 facts 表,通过触发器自动同步。支持中文 bigram 分词检索。
| 字段 | 说明 |
|---|---|
content |
同步自 facts.content |
tags |
同步自 facts.tags(含 bigram 预分词) |
三个触发器(INSERT/UPDATE/DELETE)保证 FTS5 索引与 facts 表实时同步
category_token_stats — 类别词频统计表
增量维护每个 token 在各 category 中的文档频率,用于计算关键词的类别特异性权重。
| 字段 | 类型 | 说明 |
|---|---|---|
category |
TEXT | 分类名 |
token |
TEXT | 关键词 token |
df |
INTEGER | 文档频率(该 token 在该 category 中出现的事实数) |
联合主键
(category, token),ON CONFLICT 时df = df + 1
配置多个 AI 模型按角色分工,真实并行调用:
# 查看可用模型
/agent-config models
# 用预设创建 agent
/agent-config preset architect --model glm:glm-5.1
/agent-config preset reviewer --model vk:doubao-seed-2.0-pro
# 发起协作任务
/multi-agent 设计一个高并发缓存系统内置 5 个角色预设:架构师、审查员、实现者、测试专家、DevOps。
从成功的工作流中自动提炼可复用技能:
# 手动提炼当前会话为技能
/skillify 创建文件并运行验证的工作流自动提炼:任务完成后,系统自动检测可复用流程,提示确认后生成完整技能文件:
.claude/skills/<name>/
├── SKILL.md # 技能定义(触发条件、步骤、成功标准)
└── scripts/ # 可执行脚本(数据处理、模板生成等)
└── process.py
通过 MCP 协议接入 IM 平台,远程控制 Agent:
# 启动时绑定
ocean --channels server:feishu
# 会话中动态连接(无需重启)
❯ /feishu # 快速连接飞书
❯ /channel connect dingtalk # 连接钉钉
❯ /channel disconnect feishu # 断开连接- 入站:IM 消息 → Agent 接收执行
- 出站:Agent 结果 → IM 回复
- 权限中继:工具审批转发到 IM,远程回复 yes/no
- 动态连接:会话中途
/feishu一键连接,离开后断开
已验证平台:飞书、钉钉
前提:需要 Bun >= 1.3.5
# 全局安装
npm install -g @morningljn/ocean
# 或一次性使用
npx @morningljn/oceancurl -fsSL https://raw.githubusercontent.com/ArtLjn/ocean-cc-cli/main/install.sh | bash脚本会自动检测平台、安装 Bun、克隆仓库、构建并部署到
~/.local/bin/ocean。
国内访问 GitHub 较慢,脚本内置多源回退,优先从 Gitee 拉取:
curl -fsSL https://gitee.com/morning-ljn/ocean-cc-cli/raw/main/install.sh | bashiwr -useb https://raw.githubusercontent.com/ArtLjn/ocean-cc-cli/main/install.ps1 | iex国内用户:
iwr -useb https://gitee.com/morning-ljn/ocean-cc-cli/raw/main/install.ps1 | iexWindows 安装使用 Bun 直接运行,无需 C 编译器。推荐在 WSL 中使用 bash 脚本获得完整体验。
# 1. 安装 Bun
curl -fsSL https://bun.sh/install | bash
# 2. 克隆并构建(国内用 Gitee)
git clone https://github.com/ArtLjn/ocean-cc-cli.git && cd ocean-cc-cli
# git clone https://gitee.com/morning-ljn/ocean-cc-cli.git && cd ocean-cc-cli
bun install && ./build.shocean # 交互 TUI 模式
ocean --permission-mode auto # Auto Mode
ocean -p "your prompt" # 无头模式Ocean CLI 可替换 Claude Code 官方 CLI,在 IDE 插件中直接使用。安装 Ocean 后,按以下步骤配置你的 IDE:
安装 Claude Code 扩展后,在 IDE 的 settings.json 中添加:
{
"claudeCode.claudeProcessWrapper": "/Users/<你的用户名>/.local/bin/ocean"
}配置文件路径:
- VS Code:
~/.vscode/settings.json(全局)或项目.vscode/settings.json- Cursor:
~/.cursor/settings.json(全局)或项目.cursor/settings.json- Trae CN:
~/.trae-cn/settings.json(全局)或项目.trae/settings.json
- 打开 Settings → Tools → Claude Code [Beta]
- 将 Claude command 修改为
ocean(确保~/.local/bin在 PATH 中)
与 VS Code 方式相同,在 Qoder 的 settings.json 中配置 claudeCode.claudeProcessWrapper。
启动 IDE 中的 Claude Code 面板,输入 /model,如果看到 Ocean CLI 的模型列表(含自定义 Provider),说明配置成功。
| 类别 | 技术 |
|---|---|
| 运行时 | Bun |
| 语言 | TypeScript |
| 终端 UI | React + Ink |
| CLI 解析 | Commander.js |
| API | Anthropic SDK |
| 协议 | MCP, LSP |
| 记忆存储 | SQLite (bun:sqlite) + FTS5(全局+项目双层) |
├── src/ # 主源码
│ ├── agents/ # Agent 实现
│ ├── skills/ # 技能系统
│ │ └── bundled/ # 内置技能(skillify、auto-skillify 等)
│ ├── memory/ # 双层记忆系统(HolographicProvider + 全局/项目 SQLite)
│ ├── providers/ # 模型提供商接入
│ ├── utils/hooks/ # Hook 系统核心
│ └── cli/ # 命令行界面
├── docs/ # 文档 & 教程
├── static/ # 静态资源
└── build.sh # 构建脚本
| 教程 | 说明 |
|---|---|
| 快速开始 | 安装、构建、首次使用 |
| 自定义模型接入 | 智谱GLM/豆包/DeepSeek 配置 |
| 记忆系统 | 手动记忆 + 自动提取 + AutoDream |
| 多模型协作 | 角色分工 + 并行调用 |
| 技能系统 | 技能创建、提炼、脚本生成 |
| Channel 集成 | 飞书/钉钉远程控制 |
| Hook 系统 | 事件类型、配置格式、实用示例 |
| 文档 | 说明 |
|---|---|
| KAIROS 持久助手 | 后台持续运行、自动做梦、Cron 调度 |
| Coordinator 多 Agent | 指挥官+执行者编排模式 |
| Bridge 远程控制 | 网页/手机遥控终端 |
| 门控架构 | 三层门控:编译开关 + USER_TYPE + GrowthBook |
| Hermes 自学习方案 | 技能提炼 / 记忆增强 / Observer 用户建模路线图 |
- 主题关键词提取:写入时从 tags + 英文单词 + 引号内容自动提取 5-8 个主题关键词(位置权重 × 频率权重 × 类别特异性 × Tags 加权),查询时精准区分"核心主题"和"附带提及",缓解 general 黑洞效应
- 五层递进式检索管线:FTS5 MATCH → LIKE(含中文子串分解)→ 字符级交叉匹配 → 分类推断 → trust fallback,弱模型模糊查询语义命中率 75%
- 查询双语扩展:种子术语表 + 事实库自动提取(括号注释/分隔符关联),中文查询自动追加英文术语,英文查询追加中文
- Category 信号乘法强化:IDF 式加权 + 信号集中度归一化,查询信号集中时该 category 事实获得 ~1.5x 乘法提升
- 新增
category_token_stats表:增量维护 token 类别文档频率,支持关键词类别特异性计算 backfillKeywords()启动时补算已有事实的关键词
- 三层递进式去重管线:层1实体+编辑距离 → 层2 Jaccard bigram(≥0.45) → 层3 Containment包含率(≥0.8),彻底解决多模型切换导致的中文事实重复问题
- 去掉零实体短路:中文内容实体提取为空时不再跳过去重,回退到 bigram 分词相似度检测
- 启动矛盾审计增强:除实体 JOIN 外新增 Jaccard 纯文本矛盾扫描(≤200条时执行),捕捉中文事实的隐性冲突
- 删除废弃的 private findSimilar() 方法(逻辑已整合进 findSimilarFact 层2)
- 时间戳从 UTC 改为本地时区,修复 created_at/updated_at 显示错乱(datetime('now') → datetime('now', 'localtime'))
- 修复 retrieval_count 始终为 0:检索追踪从死代码 MemoryStore.searchFacts() 迁移到实际搜索路径 FactRetriever.search(),top3 结果额外 +0.01 信任刷新
- system prompt 添加 fact_feedback 使用指引,引导模型主动正向强化有效事实
- 内容检测路由从只覆盖 general 扩展到 general/workflow/coding_style,防止项目知识混入全局库
- 内容检测路由到项目库时 category 强制覆盖为 project(不再保留 AI 错标的 general/workflow)
- isProjectContent 新增技术调试模式匹配(测试/截图/调试 + 路由/dispatch/搜索/agent 组件名)
- 全局记忆分类细化:从 4 种 category 扩展到 6 种(identity / coding_style / tool_pref / workflow / project / general)
- 分层注入策略:identity/workflow 始终注入,coding_style 按项目技术栈匹配注入,其他走 prefetch
- 语义去重大幅优化:实体优先(≥50% 重叠)+ 归一化编辑距离辅助,彻底解决阈值两难问题
- 路由与分类解耦:category 标签由 AI 标注(允许偏差),存储位置由内容级检测确定性决定
- 去重搜索跨 category 回退:同 category 搜不到时回退搜索全部分类,合并时保留旧分类标签
- 需求变更自动检测:同实体下内容冲突时自动降权旧事实,新需求自动覆盖旧设计
- Skill 记忆增强:skillify 生成技能时自动注入用户偏好和项目知识,智能推荐项目级/全局级存储位置
- 实体提取修复:去掉 bigram 碎片入库,新增中文声明模式提取("我叫XXX"、"名字是XXX")
- 孤立实体自动清理:update/remove 事实时自动清理无关联实体
- system prompt 引导 AI 主动操作 fact_store("记住"时立即写入,update 时保留旧信息)
- 旧数据自动迁移(user_pref/tool → 新 category)
- 修复自动记忆提取从未触发(绕过 tengu_passport_quail feature flag)
- 放宽 extractMemories prompt:支持自动提取项目结构、技术栈、目录布局、构建配置
- fact_store 工具 description 改为支持读写,引导 AI 主动存储项目知识
- 双层 SQLite 记忆架构:全局库(user_pref/tool/general)+ 项目库(project)
- 去掉 memdir markdown 文件写入,统一为纯 SQLite 存储
- 实体优先去重 + Upsert 机制,共享实体 + 编辑距离判断相似事实自动合并更新
- 中文实体提取:bigram 关键词 + 引号/书名号匹配
- FTS5 中文搜索增强:写入时 bigram 预分词 + 查询时 bigram 拆分
- entity_type 自动分类(person/technology/topic)
- extractMemories forked agent 只写 fact_store,不再写 markdown 文件
- AutoDream 改为 SQLite consolidation(矛盾检测/去重/低信任清理)
- prefetch 简化为纯 SQLite 同步检索(<10ms),去掉 memdir 异步路径
- 结构化事实记忆系统(fact_store):SQLite + FTS5 毫秒级本地检索
- MemoryProvider 插件接口 + MemoryManager 编排器(借鉴 Hermes 架构)
- 五种高级检索:search / probe / related / reason / contradict
<memory-context>围栏注入 + 安全扫描(注入检测/PII/不可见Unicode)- 后台审查 Agent 自动提取事实(extractMemories 集成 fact_store)
- 信任评分 + 反馈机制(fact_feedback 工具)
- 技能自动提炼(auto-skillify):Stop hook 检测 + scripts 目录支持
- 移除 skillify 门控,
/skillify对所有用户可用
- Channel IM 集成(飞书/钉钉)
- 自动记忆提取 + AutoDream 整合
- 修复 Bun 1.3.12
@文件匹配和图片粘贴
- 多模型提供商支持(智谱GLM/豆包/DeepSeek)
- Auto Mode 解除全部门控
/mem轻量记忆系统/multi-agent多模型协作- 海洋深蓝 UI 主题
MIT License © 2025 ArtLjn
Ocean CLI — 让 AI 开发更高效,更顺畅


