# openwarp
**Repository Path**: jiangmenglin-dev/openwarp
## Basic Information
- **Project Name**: openwarp
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: AGPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-11
- **Last Updated**: 2026-05-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OpenWarp
**完全去中心化的终端,把 AI 与 Agent 的控制权全部交还给你**
OpenWarp 是基于 [Warp](https://github.com/warpdotdev/warp) 开源代码的社区分支 ——
保留 Warp 全部终端体验,同时**剥离对 Warp 云端的依赖**,
开放 AI 接入层、第三方 Agent 接入、SSH 管理与渲染细节,
让密钥、模型、提示词、Agent、会话历史 **全部留在本地**。
[English](./README.md) · [上游 Warp](https://www.warp.dev) · [上游同步说明](docs/openwarp-upstream-sync.md)
> 当前项目处于早期开发,尚未发布正式版本。与 Warp 官方公司**无任何附属关系**。
---
## 为什么选 OpenWarp
Warp 官方客户端的 AI、账号、同步、Agent 历史全部依赖 Warp 云端服务。
OpenWarp 把这层完全打开,并在上游基础上**追加**了一批上游不支持的能力:
| 维度 | Warp 上游 | OpenWarp |
| --- | --- | --- |
| 云端依赖 | 强依赖 Warp 后端(账号 / Drive / 历史 / Agent) | **完全去中心化,无任何强制云端调用** |
| AI 提供商 | 仅 Warp 官方网关 | **任意 OpenAI 兼容端点 + 6 种原生协议** |
| 第三方 Agent | 仅内置 Warp Agent | **可接入任意 CLI Agent,内置 DeepSeek-TUI / Codex / Claude Code 等** |
| SSH 管理 | 无内置 SSH 管理器 | **内置 SSH 主机管理器(连接 / 配置 / tmux 集成)** |
| Markdown 渲染 | 上游基础渲染 | **优化 MD 渲染管线,代码块 / 表格 / 中文混排更稳** |
| 字体渲染 | 上游 cosmic_text 默认路径 | **CJK 软换行 caret / 中文加粗子像素优化** |
| 凭证存储 | 云端账户 | **本地配置文件,零外发** |
| 系统提示词 | 后端组装,客户端不可见 | **minijinja 模板,完全可改** |
| 界面语言 | 英文 | **原生中英文,可扩展** |
| Cloud Agent / Computer Use | 默认开启 | **默认关闭(并在持续物理剥离中)** |
| 体验(Blocks / Workflows / 键位) | 保留 | 完整保留并持续合并上游 |
| 协议 | AGPL-3.0 / MIT 双许可 | 与上游一致 |
## 上游不支持、OpenWarp 独有的能力
以下能力上游 Warp **不提供**,是 OpenWarp 在 fork 之上新增的差异化功能:
- **SSH 主机管理器** —— 内置 SSH 连接、配置与会话管理(支持 tmux 集成),不再依赖外部工具切换远端。
- **第三方 CLI Agent 接入** —— 可把任意 CLI Agent 接入终端 Block 体系,内置适配:
- **DeepSeek-TUI**(完成通知 / 文本通知映射 / 输入框恢复链路均已打通)
- **Codex CLI**、**Claude Code** 等主流 CLI Agent
- 通过 OSC9 / OSC777 通知机制统一进入 Warp 通知中心
- **多 AI 提供商 BYOP** —— 6 种原生协议(OpenAI / OpenAIResp / Anthropic / Gemini / Ollama / DeepSeek)显式绑定,任意 OpenAI 兼容代理即插即用,凭证仅存本地。
- **完全去中心化** —— 无 Warp 账号、无强制登录、无云端 Drive / Notebook 同步、无 Agent 云端历史;按计划逐步物理删除 Warp 云端代码路径。
- **Markdown 渲染优化** —— 改进 AI Block 中代码块、表格、列表与中英文混排的渲染稳定性。
- **字体渲染算法优化** —— 修复 CJK 软换行后 caret 索引偏移、设置页中文小字号加粗发糊等上游遗留问题。
## 三步,把终端完全握在自己手里
**01 · 接入任意提供商**
设置中粘贴 Base URL 与 API Key —— 任何 OpenAI Chat Completions 兼容端点都即插即用,
凭证仅保存在本地。
**02 · 编写动态提示词**
基于 minijinja 模板引擎,根据当前工作目录、语言、角色实时渲染系统提示词。
**03 · 在终端立即启用**
一键切换模型、对话、命令补全、第三方 Agent —— 体验与 Warp 一致,但每一层都由你掌控。
## 已验证的 AI 提供商
| 提供商 | Base URL | 备注 |
| --- | --- | --- |
| **OpenAI** | `https://api.openai.com/v1` | 官方协议 |
| **Anthropic** | 通过 genai 原生协议 | Claude 4.x 全系列 |
| **DeepSeek** | `https://api.deepseek.com/v1` | thinking + tool calling |
| **Gemini** | 通过 genai 原生协议 | Google AI Studio |
| **Ollama** | `http://localhost:11434/v1` | 本地推理,无需 Key |
| **OpenRouter** | `https://openrouter.ai/api/v1` | 聚合网关 |
| **Qwen / Groq / Together / LM Studio / 任意 OpenAI 兼容代理** | — | 配置即用 |
## 核心特性
- **BYOP 自定义提供商** — 6 种原生协议显式绑定,基于 [genai](https://github.com/jeremychone/rust-genai) 0.6
- **第三方 Agent 接入** — DeepSeek-TUI / Codex CLI / Claude Code 等通过 OSC9 通知统一进入 Block 与通知中心
- **SSH 主机管理器** — 终端内直接管理 SSH 主机与会话,集成 tmux
- **流式打字机** — SSE 增量渲染,与 Warp 自家路径一致的 Block 体验
- **18 个本地工具** — shell / read / edit / search / mcp / drive 文档 / skills / ask 等,全部本地执行
- **系统提示词模板** — 移植 opencode 的 8 份模型族 prompt(default / anthropic / gpt / beast / gemini / kimi / codex / trinity)
- **models.dev 数据源** — Providers 子页搜索框快速添加,内置数千模型元数据
- **渲染优化** — Markdown 渲染管线 + CJK 字体软换行 / 加粗算法修复
- **隐私优先** — Cloud Agent / Computer Use / Referral / 遥测全部默认关闭
- **保留 Warp 体验** — 持续合并上游,Blocks / Workflows / AI 命令 / Keymaps / 主题完整保留
- **多语言界面** — 简体中文 + English,后续社区可扩展
## 我们的期望
OpenWarp 想成为这样一个终端:
1. **不依赖任何中心化服务也能完整运行** —— 没有账号、没有强制登录、没有"必须连云端才能用"的功能。
2. **AI 与 Agent 是开放生态而非单一供应商** —— 主流 LLM Provider 与 CLI Agent 都能平等接入。
3. **远端工作流原生融入终端** —— SSH / tmux / 远端会话作为一等公民,而不是外挂。
4. **渲染细节配得上长时间使用** —— 中英混排、Markdown、代码块、字体渲染都不应是体验的短板。
5. **持续与上游 Warp 同步** —— 享受 Warp 团队的工程红利,但保留 fork 的方向自主权。
如果你认同这些目标,欢迎一起把它做完。
## 本地构建
```bash
git clone https://github.com/zerx-lab/openwarp
cd openwarp
./script/bootstrap # 平台依赖
./script/run # 构建并运行
./script/presubmit # fmt / clippy / tests
```
若要直接用 `cargo`,**必须显式指定 OSS 二进制**:
```bash
cargo build --release --bin warp-oss
cargo run --release --bin warp-oss
```
> 不要不带过滤地跑 `cargo build --release`,也不要 `--bin {warp,stable,dev,preview}` ——
> 这些入口(`local.rs` / `stable.rs` / `dev.rs` / `preview.rs`)通过 Warp 私有的
> `warp-channel-config` 二进制加载 channel 配置,而该二进制位于闭源私仓。编译能过,
> 但运行时会 panic 提示 `./script/install_channel_config`,而那个脚本会去 clone 只有 Warp
> 员工才有 SSH 权限的私仓。OpenWarp 用户只需要 `warp-oss` 这一个 bin。
详见 [WARP.md](WARP.md) 获取完整工程指南(代码风格、测试、平台说明)。
## 协议
与 Warp 上游一致:
- `warpui_core` / `warpui` crates 采用 [MIT](LICENSE-MIT)
- 其余代码采用 [AGPL-3.0](LICENSE-AGPL)
## 分支与上游同步
`zerx-lab/warp` 维护两条长期分支:
| 分支 | 跟踪 | 用途 |
| --- | --- | --- |
| `main` | `zerx-lab/warp:main`(默认分支) | OpenWarp 主开发线,**所有 PR 都提到这条分支**。 |
| `warp-upstream` | `warpdotdev/warp:master` | 上游 Warp 的纯净镜像,用于拉取上游更新,**不在此分支做 fork 自有改动**。 |
**贡献者须知**
PR 请提到 **`main`**,不要提到 `warp-upstream`。
**维护者须知(具有写权限)**
**不要在 GitHub 网页上点 `main` 分支的 "Sync fork" 按钮**。这会把上游整段历史直接合并进 OpenWarp 主线,造成大规模冲突。拉取上游更新请通过镜像分支,并参考 [`docs/openwarp-upstream-sync.md`](docs/openwarp-upstream-sync.md) 中的黑名单与流程:
```bash
# 一次性配置
git remote add upstream https://github.com/warpdotdev/warp.git
# 刷新镜像分支
git checkout warp-upstream
git pull # 从 upstream/master 快进
git push origin warp-upstream
# 把需要的上游 commit 引入 main
git checkout main
git cherry-pick # 或在需要整体同步时 merge warp-upstream
```
## 合作伙伴
**[DeepSeek-TUI](https://github.com/Hmbown/DeepSeek-TUI)** —— DeepSeek 模型家族的
终端 UI。OpenWarp 提供一流的接入支持:完成通知、OSC9 文本通知映射、输入框恢复
链路均已打通,DeepSeek-TUI 可作为原生 Block 在 OpenWarp 中运行。
在任意 OpenWarp 终端中执行 `deepseek` 即可启动,Block 生命周期、底部状态条与
通知中心全部开箱即用。
> **Windows 用户注意** —— DeepSeek-TUI 的 `[notifications].method` 默认值是
> `auto`,在 Windows 上,只有当 `TERM_PROGRAM` 命中其内置白名单
> (iTerm.app / Ghostty / WezTerm)时才会走 OSC9,否则 fallback 为 `Off`。
> OpenWarp 将自身标记为 `WarpTerminal`,因此 Windows 下要让 DeepSeek-TUI 的
> 完成通知进入 OpenWarp 通知中心,需要在 `~/.deepseek/config.toml` 中显式指定:
>
> ```toml
> [notifications]
> method = "osc9"
>
> [tui]
> notification_condition = "always" # 可选:每轮都通知,不受时长阈值限制
> ```
如果你在维护 CLI Agent 或与终端深度结合的工具,希望获得同等级别的接入支持,
欢迎开 issue —— 我们乐于继续接入更多合作伙伴。
## 贡献
欢迎社区贡献。完整流程见 [CONTRIBUTING.md](CONTRIBUTING.md)。
提交 Issue 前,请先 [搜索现有 Issues](https://github.com/zerx-lab/warp/issues)。
安全漏洞请按 [CONTRIBUTING.md#reporting-security-issues](CONTRIBUTING.md#reporting-security-issues) 私下上报。
## 致谢
OpenWarp 站在 Warp 团队和众多开源项目的肩膀上:
[Warp](https://github.com/warpdotdev/warp) · [genai](https://github.com/jeremychone/rust-genai) · [opencode](https://github.com/opencode-ai/opencode) · [models.dev](https://models.dev) · [DeepSeek-TUI](https://github.com/Hmbown/DeepSeek-TUI) · [Codex CLI](https://github.com/openai/codex) · [Tokio](https://github.com/tokio-rs/tokio) · [NuShell](https://github.com/nushell/nushell) · [Alacritty](https://github.com/alacritty/alacritty) · [Hyper](https://github.com/hyperium/hyper) · [minijinja](https://github.com/mitsuhiko/minijinja) · [cosmic-text](https://github.com/pop-os/cosmic-text)