# OmniContext CLI

上下文优先、零遥测的编程助手，可集成到 VS Code、Office、浏览器和移动端。兼容 Anthropic、OpenAI、Gemini 和 Responses API，并支持通过 Google Imagen 和 OpenAI Images 生成图像，提供自定义工作流、代码地图与跨会话记忆。

## 上下文优先架构

每一个 token 都很重要。OmniContext CLI 从底层开始就为最大化利用上下文窗口而设计。

- **精简系统提示词** - 内置提示词短小、聚焦、没有模板废话。工具描述力求精简。你的上下文预算用在实际工作上，而不是框架开销。
- **智能体式工具** - 探索性任务（搜索代码、勘察项目结构、预览文件）作为独立的智能体式工具运行，也可以单独指定 Agent 模型。中间工具调用、文件内容和推理过程不会进入主上下文。你只拿到一个简洁的结论，中间草稿完全不占空间。
- **代码地图** - 代码导航知识会保存为轻量的主题到文件索引，让助手先跳到关键文件，再决定是否需要继续搜索。
- **上下文编辑** - 随着对话增长，早期的工具调用负载和思考块变得不再相关。上下文编辑自动压缩这些内容，用紧凑的占位符替换庞大的工具输入输出，剥离推理痕迹，让模型看到干净、聚焦的历史。
- **跨会话记忆** - 每次对话压缩时，模型自动提炼关键要点并评估已有记忆。好的见解不断积累权重，过时的知识自然衰减。下次会话开始时，积累的记忆自动注入，让助手从第一句话就了解你的偏好和项目背景。
- **提示词缓存** - 你可以自主选择缓存 TTL：5 分钟适合快速迭代，1 小时适合长时间工作。Anthropic 的缓存控制自动应用，重复的上下文块直接从缓存读取，大幅降低 token 消耗和成本。

## 工作流系统

工作流控制 OmniContext CLI 行为的方方面面：系统提示词、可用工具列表、助手交互方式。内置五套工作流：

| 预设 | 使用场景 | 说明 |
|------|----------|------|
| **Programming**（默认） | 终端、VS Code | 编程助手，包含基础工具、Agent 工具和 MCP 集成。简洁输出，最小开销。 |
| **General** | Office、桌面端 | 多功能个人助理，处理文档、表格和演示文稿。主动使用工具，匹配对话语气。 |
| **Analytics** | 使用分析 | 查询本地请求分析数据库，探索 token 用量、成本、延迟和模型对比。 |
| **Memory** | 要点管理 | 浏览、编辑和清理项目记忆中的跨会话关键要点。 |
| **Recall** | 会话搜索 | 搜索和回顾过去的聊天会话，查找决策、上下文和讨论历史。 |

桌面应用还会安装 **Browser** 工作流供 Chrome 侧边栏使用（标签页、页面内容、书签、历史记录、截图和脚本执行）、**Memo** 工作流用于个人提醒和通知（macOS 上支持 Apple Reminders 同步），以及 **Research** 工作流用于 PDF 密集型研究和分析（PDF 拆分、分块阅读、预览和网页搜索）。

在 `~/.omx/workflows/` 或 `.omx/workflows/` 中放一个 Markdown 文件即可创建自定义工作流。每个工作流是一个带 YAML frontmatter 的 Markdown 文件，frontmatter 定义工具集，正文成为系统提示词：

```markdown
---
name: My Workflow
allowBuiltinTools: true
allowExternalTools: true
allowBuiltinAgents: true
allowExternalAgents: true
allowMcpTools: true
allowRemoteTools: true
---
你的系统提示词。可以使用模板变量 {{OS_TYPE}}、
{{PLATFORM}}、{{ARCH}}、{{CWD}} 和 {{TODAY}}。
```

启动时用 `omx --workflow my-workflow` 切换工作流，也可以把默认值保存到 OmniContext CLI 的应用配置中。

## 原生多协议

每种 LLM API 协议都有专用的请求构建器和流处理器。提示词缓存、扩展思考、函数调用和其他供应商专属特性都按原生协议工作。没有转换层，不会把 Anthropic 请求转成 OpenAI 格式，也不会反过来。

| 协议 | 说明 |
|------|------|
| **Anthropic** | Messages API，支持提示词缓存、扩展思考和流式传输 |
| **OpenAI** | Chat Completions API，兼容任何 OpenAI 格式的接口 |
| **Gemini** | generateContent API，原生流式传输和函数调用 |
| **Responses API** | OpenAI 的 Responses API，内置工具编排 |
| **Google Imagen** | Gemini generateContent 图像输出，用于图像生成 |
| **OpenAI Images** | OpenAI Images API（生成与编辑），用于图像生成 |

供应商专属拦截器处理协议和模型源差异，例如 Anthropic 新旧模型、DeepSeek、Responses API 调整、Gemini 旧模型、Kimi、MiniMax、OpenCode Go、通用 OpenAI 兼容端点、xAI、Zhipu GLM 和 Zenmux 模型路由，同时不影响协议本身。

配置图像生成模型后，允许 `ImageGen` 工具的工作流可以直接在聊天中生成图像，并把结果保存为生成物。如果要直接处理图像，可以用 `omx --serve --image-workshop` 打开图像工坊，支持生成、基于参考图和蒙版的编辑、结果会话和生成物文件夹访问。

一条命令添加供应商的所有模型：

```bash
omx --list-providers
omx --add-provider openrouter --api-key sk-...
omx --remove-provider openrouter
```

内置供应商：**Zenmux**、**DeepSeek**、**Kimi for Coding**、**MiniMax**、**OpenCode Go**、**OpenRouter**、**Zhipu (GLM)**

## 代码地图

Atlas 是面向大型或高频项目的持久代码导航索引。每张地图会把一个概念、功能或子系统映射到相关的关键文件、目录和符号，让后续会话直接跳到重要代码，而不是从头搜索。Atlas 存储在 `~/.omx/projects/<project-id>/atlas.sqlite`，并通过内置的 `AtlasList`、`AtlasRead`、`AtlasUpdate` 和 `AtlasDelete` 工具使用。

在有价值的调查或多文件修改后，可以使用内置 `/save-atlas` 技能回顾当前会话并保存长期有用的导航知识。

## 跨会话记忆

记忆提取在对话压缩时自动触发。模型回顾当前会话，提炼关键要点，并评估已有的要点。每个要点的评分从 0 开始，根据它在对话中的表现变动：

| 评价 | 分值变化 |
|------|----------|
| 有帮助 | +3 |
| 中性 | -1 |
| 有害 | -6 |

评分低于 -10 的要点被剪枝。好的见解在多次会话中不断积累权重，坏的建议很快被清除，过时的知识自然衰减。每个项目都会把记忆存放在 `~/.omx/projects/<project-id>/memory.json` 里，也可以直接编辑、使用内置记忆工具，或通过 Web 客户端的记忆面板管理。

## 桌面版与集成

终端是大本营，但 OmniContext CLI 延伸到你使用的每个工具。桌面版把一切串联起来，一个轻量级服务启动器，将你的 IDE、浏览器和 Office 应用连接到同一个 OmniContext CLI 实例。

- **桌面应用** - 工作区管理、模型配置、代理与审批设置、局域网访问、备忘录与提醒系统、PDF 工具（拆分、分块、预览，内嵌 pdfcpu）、由钩子驱动的桌面宠物和完成通知，以及一键启动服务并桥接下面所有集成
- **VS Code 扩展** - IDE 集成，感知打开文件、诊断信息和 diff 视图
- **Chrome 扩展** - 任意网页上的侧边栏，支持摘要、数据提取、标签页控制、截图和浏览器自动化
- **Office 插件** - Word、Excel 和 PowerPoint 内的 AI 面板
- **Web 客户端** - 浏览器 UI，支持登录、会话回退、LaTeX、Mermaid 图表、文件附件、拖拽、记忆管理、工具审批，以及桌面端图像生成与编辑的图像工坊
- **移动端访问** - 运行 `omx --serve --host 0.0.0.0` 后从手机连接

## 可扩展性

自定义工作流、Agent、技能、钩子、外部工具、MCP 服务器和远程工具客户端。大多数扩展点都是 Markdown 文件、JSON 配置或小型 JavaScript 模块。

- **自定义工作流** - 定义自己的系统提示词，精确控制可用工具列表：基础工具、Agent、MCP 服务器和远程工具。
- **智能体式工具** - 写一个带提示词模板、参数定义和工具权限的 Markdown 文件，立刻成为可调用的智能体式工具。添加 `AGENTS.md` 作为 Agent 专属指令，未找到时自动回退到 `OMX.md` 项目指令。
- **自定义技能** - 基于目录的提示词能力，通过斜杠命令（`/技能名`）调用。技能注入当前对话，提供领域知识和工作流。兼容 Claude Code 技能格式。
- **模型提示词** - 在 `~/.omx/model-prompts/` 或 `.omx/model-prompts/` 中添加带 frontmatter 的 Markdown 文件，即可为匹配的模型名称追加额外系统提示词。
- **外部工具** - 把 JavaScript 或 ESM 工具模块放到 `~/.omx/tools/` 或 `.omx/tools/`，即可和内置工具一起注册。
- **MCP 服务器** - 通过 Model Context Protocol 接入外部工具和数据源，支持 stdio 和 HTTP 传输。
- **钩子** - 在聊天和工具生命周期事件中运行命令或 HTTP handler。它们可以观察压缩与完成等事件，也可以在执行前拦截 prompt、指定工具和压缩。
- **远程工具** - Browser、Office、Desktop 和基于 SDK 的客户端可以通过 HTTP 长轮询注入工具，工具名显示为 `Remote_<clientType>_<toolName>`。
- **项目指令** - 在仓库根目录放一个 `OMX.md` 或 `CLAUDE.md`，团队里每个人都能得到相同的约定和上下文。

## 文档

**https://bluenoah1991.github.io/omni-context-cli-landing/docs/zh-Hans/**
