Nebula Terminal
一款 GPU 加速的 Windows 终端:它能让你的会话保持存活 —— 关闭窗口,你的 claude 对话依然存在。
一款 GPU 加速的 Windows 终端:关闭窗口不杀会话,重新打开,你的 claude 对话原样回来。
English · 简体中文
## English
### ✨ 关于
Nebula 是一款 Windows 上的终端模拟器,使用 Rust 编写,基于 GPU 加速的渲染内核构建,并围绕一个理念设计:**你的终端会话太宝贵,不应随窗口一起消亡**。它结合了 tmux 式的常驻会话模型、玻璃质感界面、AI CLI 感知侧边栏,以及无需额外配置即可使用的 shell 体验。
### 🚀 功能特性
**存活的会话**
- **会话驻留** — 关闭窗口是*分离*而不是终止:每个 PTY(你正在运行的 `claude`、构建任务、SSH 会话)都会在常驻进程中继续运行。再次启动 Nebula,窗口会重新附加 —— 进程不变、回滚历史不变、对话进行到一半也不中断。
- **冷会话恢复** — 如果常驻进程消失(重启、崩溃),下一次启动仍会从持续自动保存的快照中恢复你的标签页布局和每个标签页的工作目录,并带有崩溃循环断路器。
- **单实例** — 第二次启动会移交给正在运行的实例,而不是堆积窗口。
**专为 AI CLI 工作流构建**
- **侧边栏显示真实品牌标识** — 运行 `claude` 的标签页会显示真正的 Anthropic 星芒;`codex` 显示根据主题染色的 OpenAI 花朵。其他程序则使用 Nerd Font 图标(`gemini`、`copilot`、`git`、`vim`、`cargo` 等)。
- **实时对话轮次状态,与源直连** — Nebula 会安装指向内置桥接器(`nebula-hook.exe`,无外部依赖)的 Claude Code hooks(以及 Codex notify):提交 prompt → 显示加载圈;对话轮次完成 → 圆点 + 通知;Claude 需要你的输入 → 带有实际消息文本的通知。通过本地命名管道传递,不需要任何 shell 集成。
- **点击聚焦通知** — 每个 toast 都知道是哪个面板触发了它:点击它,Nebula 就会来到前台,切换到该标签页并聚焦该分屏。
- **零配置、自愈** — hook 条目在首次启动时安装,如果配置切换器重写了文件,它们会自动重新安装(配置目录上的监视器会重新应用它们)。由环境变量限定作用域:在任何其他终端中运行的 claude 都不受影响。`nebula setup-ai --remove` 可以撤销所有操作。
- **兼容现有的通知器** — codex 只有一个通知槽位;Nebula 使用 `--chain` 包装它,而不是抢占它,因此预先存在的通知器仍会继续触发。
- **兜底信号** — OSC 133 命令跟踪 + BEL 仍然覆盖所有其他 CLI:长时间构建完成时会弹出 toast,并显示其耗时。
**性能与准确性**
- **全链路启动监测** — 启动路径完全可追踪(`NEBULA_BOOT_TRACE=1`);不加载任何 shell profile,并且历史记录采用惰性加载。
- **现代 ConPTY 宿主** — 内置 side-by-side ConPTY 宿主以确保正确的 resize 行为,并预加载其启动握手(DA1),从而避免新标签页在此次往返中卡顿。
- **合并式调整大小** — 交互式拖动仅调整网格大小;PTY 一次性获知其最终尺寸,因此全屏 TUI 不会将重绘错乱刷入回滚历史中。
**Shell 体验**
- **行内幽灵文本补全** — 源自命令历史和文件系统路径的 fish 风格暗色建议;按 `→` 或 `Tab` 接受。
- **持久化索引历史** — 命令以 JSONL 格式存储在 `%APPDATA%\Nebula` 下,跨会话共享,并带有前缀提示。
- **内置 Powerline 提示符** — 适用于 PowerShell 和 Git Bash 的带主题渐变提示符,包含 git 分支和时钟,无需安装任何插件。
- **体验优化修复** — 不带引号的 `cd D:/Program Files` 直接可用,裸的 `$env:KEY=value` 赋值会自动加引号,`ls` 支持颜色和可点击的 OSC 8 超链接。
**界面**
- **玻璃质感界面与七款主题** — Nebula 加上三对配套的浅色/深色主题:Silver Light / Steel Dark、Limestone / Coal Dark、Linen Light / Moss Dark。一套皮肤系统驱动 chrome、提示符和对话框;每个主题都能在重启后保持。
- **标签页与分屏** — 支持拖拽排序的侧边栏标签页,以及拖拽停靠至分屏;未聚焦的面板会变暗,而不是增加边框。
- **快速终端** — 全局
Ctrl+
` 可从顶部边缘下拉出一个 Quake 风格的终端。
- **悬浮设置面板与命令面板** — 主题、背景图片/不透明度、shell 选择、补全行为;全部保持持久化。
- **行内图片** — 支持 OSC 1337 图片协议,惰性锚定到回滚行。
### 📥 安装
**Release 构建(推荐)** — 从
[Releases](https://github.com/Kuddev/nebula/releases) 下载
`NebulaTerminal-v0.1.0-windows-x64.zip`,解压到任意位置,安装 `MapleMono-NF-CN-Regular.ttf`,然后运行 `nebula.exe`。请将内置文件与 exe 保持在一起(`nebula-hook.exe` 驱动 AI 通知;`conpty.dll` + `OpenConsole.exe` 提供现代 ConPTY 宿主)。
**从源码构建**
```
cargo build --release # artifacts land in target/release/
```
### 🧩 技术栈
| 层级 | 技术 |
| --- | --- |
| 语言 | Rust(2024 edition) |
| 渲染 | OpenGL / OpenGL ES 2.0+,自定义字形与 UI 四边形渲染器 |
| 终端内核 | GPU 网格 + 基于 Alacritty 衍生基础的 VTE 解析 |
| 会话模型 | 常驻 mux 进程,环回 attach 协议 |
| Shell 集成 | PowerShell + PSReadLine, Git Bash;OSC 7/8/9/133/1337 |
| 字体 | Maple Mono NF CN(Nerd Font 图标,支持 CJK) |
### 📦 环境要求
- 至少 OpenGL ES 2.0
- Windows 10 (1809+) / 11,需支持 ConPTY
### 📜 许可证
基于 [GNU 通用公共许可证 v3.0](LICENSE) 发布。
Nebula 的部分代码衍生自上游开源项目;其原始许可声明保留在 [LICENSE-APACHE](LICENSE-APACHE) 和 [LICENSE-MIT](LICENSE-MIT) 中。组合作品在 GPL-3.0 下分发。
## 简体中文
### ✨ 简介
Nebula 是一款 Windows 上的终端模拟器,以 Rust 编写,构建在 GPU 加速渲染
内核之上,并围绕一个理念设计:**终端会话太宝贵,不该随窗口一起消失**。它
把 tmux 式的常驻会话模型、玻璃质感界面、AI CLI 感知侧边栏和无需额外配置
的 shell 体验组合在一起。
### 🚀 功能特性
**会话永生**
- **会话驻留** — 关闭窗口是*分离*而不是杀死:所有 PTY(正在跑的
`claude`、构建、SSH)继续在常驻进程里运行。再次启动 Nebula,窗口原样接回
—— 同样的进程、同样的回滚缓冲、对话进行到一半也不丢。
- **冷恢复** — 常驻进程不在了(重启、崩溃)也没关系:下次启动从持续自动保
存的快照恢复标签布局和每个标签的工作目录,并带崩溃循环保护。
- **单实例** — 重复启动会交棒给运行中的实例,不会堆一堆窗口。
**为 AI CLI 工作流而生**
- **侧栏显示真品牌标识** — 跑 `claude` 的标签显示 Anthropic 珊瑚星芒,
`codex` 显示 OpenAI 花结(贴图渲染、跟随主题染色);其余程序用
Nerd Font 图标(`gemini`、`copilot`、`git`、`vim`、`cargo`……)。
- **回合状态实时直连** — Nebula 自动安装 Claude Code hooks(及 Codex
notify),指向随包的桥接器 `nebula-hook.exe`(无第三方依赖):
提交 prompt → 转圈;回合完成 → 圆点 + 通知;claude 要你确认 → 通知里
带消息原文。经本地命名管道传递,无需任何 shell 集成。
- **通知点击直达** — 每条 toast 都知道自己来自哪个 pane:点一下,Nebula
前置、切到那个标签、聚焦那个分屏。
- **零配置、自愈合** — hook 条目首次启动自动写入;被配置切换工具覆盖后
会自动补回(配置目录上有监视器重新写入)。作用域由环境变量限定:其他
终端里的 claude 完全不受影响。`nebula setup-ai --remove` 一键撤销。
- **不抢占已有 notifier** — codex 只有一个 notify 槽位,Nebula 用
`--chain` 包装而非顶掉:原有通知程序照常触发。
- **兜底信号** — OSC 133 命令跟踪 + BEL 覆盖其余所有 CLI:长构建完成也
弹通知,并带耗时。
**性能与正确性**
- **启动全程可观测** — 启动路径全程打点(`NEBULA_BOOT_TRACE=1`),不加载
shell profile,历史惰性加载。
- **现代 ConPTY 宿主** — 内置 side-by-side ConPTY 宿主保证 resize 行为正确,
并预热其启动握手(DA1),让新标签不必卡在这一次往返上。
- **合并式 resize** — 拖动窗口时只调整网格,PTY 在拖动结束后一次性获知最终
尺寸,全屏 TUI 不会把重绘刷进历史。
**Shell 体验**
- **行内幽灵补全** — fish 风格暗色建议,来自命令历史与文件路径,
`→` 或 `Tab` 接受。
- **持久化索引历史** — 命令以 JSONL 存于 `%APPDATA%\Nebula`,跨会话共享,
提供前缀提示。
- **内置 powerline 提示符** — 主题化渐变提示符,含 git 分支与时钟,
PowerShell 与 Git Bash 皆可用,无需安装任何插件。
- **顺手的小修正** — 不带引号的 `cd D:/Program Files` 直接可用,裸
`$env:KEY=value` 自动加引号,`ls` 带颜色和可点击的 OSC 8 超链接。
**界面**
- **玻璃质感与七套主题** — Nebula + 三对明暗成组主题:Silver Light /
Steel Dark、Limestone / Coal Dark、Linen Light / Moss Dark。一套皮肤
系统驱动 chrome、提示符与弹窗,主题选择跨重启持久化。
- **标签与分屏** — 侧边栏标签支持拖拽排序、拖入终端区四方位分屏;非焦点
面板压暗而非描边。
- **快速终端** — 全局
Ctrl+
` 从屏幕顶部滑出
Quake 式终端。
- **悬浮设置面板与命令面板** — 主题、背景图/透明度、shell 选择、补全行为,
全部持久化。
- **行内图片** — 支持 OSC 1337 图片协议,惰性锚定到回滚行。
### 📥 安装
**Release 包(推荐)** — 从
[Releases](https://github.com/Kuddev/nebula/releases) 下载
`NebulaTerminal-v0.1.0-windows-x64.zip`,解压到任意目录,先安装
`MapleMono-NF-CN-Regular.ttf`,再运行 `nebula.exe`。请保持随包文件与 exe
同目录(`nebula-hook.exe` 动 AI 通知;`conpty.dll` + `OpenConsole.exe`
提供现代 ConPTY 宿主)。
**从源码构建**
```
cargo build --release # 产物在 target/release/
```
### 🧩 技术栈
| 层级 | 技术 |
| --- | --- |
| 语言 | Rust(2024 edition) |
| 渲染 | OpenGL / OpenGL ES 2.0+,自定义字形与 UI 四边形渲染器 |
| 终端内核 | GPU 网格 + VTE 解析,基于 Alacritty 衍生的地基 |
| 会话模型 | 常驻 mux 进程,环回 attach 协议 |
| Shell 集成 | PowerShell + PSReadLine、Git Bash;OSC 7/8/9/133/1337 |
| 字体 | Maple Mono NF CN(Nerd Font 图标,支持 CJK) |
### 📦 环境要求
- 至少 OpenGL ES 2.0
- Windows 10(1809+)/ 11,需 ConPTY 支持
### 📜 许可证
基于 [GNU 通用公共许可证 v3.0(GPL-3.0)](LICENSE) 发布。
Nebula 的部分代码衍生自上游开源项目,其原始许可声明保留于
[LICENSE-APACHE](LICENSE-APACHE) 与 [LICENSE-MIT](LICENSE-MIT)。整体作品以
GPL-3.0 分发。
## 🔗 友情链接 / Community
- **[linux.do](https://linux.do)** — 新的理想型社区 / a thriving developer community.
## ⭐ Star History