# @aurigax-ai/ghostty-web 中文文档

规范地址：https://npmcn.com/package/%40aurigax-ai/ghostty-web/

版本：0\.3\.9
npm 元数据更新时间：2026-11-01T05:06:12.964Z
中文译文更新时间：2026-11-07T05:16:06.202Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aurigax-ai/ghostty-web
原文对照：https://npmcn.com/package/%40aurigax-ai/ghostty-web/?lang=original
项目主页：https://github.com/aurigax-ai/ghostty-web#readme
源码仓库：https://github.com/aurigax-ai/ghostty-web

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.2 MB，29 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-10-06T19:58:38.278Z
- 最新版本发布：2026-11-01T05:06:12.629Z
- 近 30 天下载量：13218（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 13 个）

## 中文简介

Ghostty在浏览器中的终端引擎(libghostty-vt):WebAssembly building,一个xterm.js-形状的API和WebGL和帆布渲染器. 一个硬叉 代码/鬼网.

## 安装

```sh
npm install @aurigax-ai/ghostty-web
```

也可以使用：`pnpm add @aurigax-ai/ghostty-web`、`yarn add @aurigax-ai/ghostty-web`、`bun add @aurigax-ai/ghostty-web`

## README

# 幽灵网(AurigaX)

[幽灵](https://github.com/ghostty-org/ghostty)浏览器中的终端引擎,带有 [x 任期.js](https://github.com/xtermjs/xterm.js)\- 成型的API和WebGL和帆布渲染器。 这是引擎 在奥斯提亚的幽灵终端后面.

这是一个硬叉 [编码器/鬼网](https://github.com/coder/ghostty-web) (麻省理工学院,编者), 保持历史。 它不跟踪上游。 改变了什么:

-   **(原始内容存档于2012-10-10). Official, unphopped libghostty-vt.** 鬼网用一个补丁来建鬼网 C函数。 这叉子建了Ghostty出版的 libghostty-vt API 在一个被钉住的承诺上 (单位:千美元)`GHOSTTY_COMMIT`并与之交谈通过 `lib/abi.ts`,它读取结构布局 `ghostty_type_json()` 所以,一个字段会大叫地移动,而不是读取垃圾.
-   **宿主钩子.** JavaScript 回调通过可生长函数表到达 libghostty-vt (单位:千美元)`Abi.addCallback`),因此主机可以收到快取标记(OSC 133),工作目录与 它的主机(OSC 7),通知,剪贴板写作和未知序列,并保持标记为 跟踪网格参考.
-   **WebGL 渲染器.** `renderer: 'webgl'` (默认)从甘油图集中取出WebGL 2, 只重写更改的行并只绘制显示的单元格和格来像素 某物; 没有WebGL 2 , 或者当其上下文丢失时, 终端 取而代之的是画布渲染器(`renderer: 'canvas'` 问取取取. 两种绘图框 挡住几何结构的元素 所以它们会填充细胞.
-   **pnpm 和 Vitest 数据** 而不是 Bun; 没有演示服务器、 基准或发布自动化 .

## 安装

```sh
pnpm add @aurigax-ai/ghostty-web
```

货包载运其TypeScript源和 `ghostty-vt.wasm`; 将它与Vite或类似的相捆.

## 构建

需求 [齐格](https://ziglang.org/) 0.16.0和pnpm (英语). 使用官方 Zig 沥青球( 如 CI 所做的): a 发行版的Zig用自己的LLVM制造了一种不同的,同样有效的 `ghostty-vt.wasm`, (中文(简体) ), 和CI检查 承诺的文件匹配 官方构建。 点 `ZIG` 如果不是的话 `zig` 在你的路径: `ZIG=/path/to/zig pnpm build:wasm`。 。 。 .

```sh
pnpm install
pnpm build:wasm   # clones Ghostty at GHOSTTY_COMMIT into vendor/ and builds ghostty-vt.wasm
pnpm test
pnpm build        # dist/ with the library and the WASM
```

libghostty -vt的API还不稳定,所以 `GHOSTTY_COMMIT` 试验为: 警卫 建筑 `ghostty-vt.wasm` 被承诺, 所以包安装没有 Zig; 构建 如果所承诺的文件与被绑定的承诺的新建文件不同,则CI失效. 软件包导出其 TypeScript 源(`lib/index.ts`),为维特等捆绑者提供.

## 主钩

除了xterm.js形状的API, `Terminal` 揭露了libghostty-vt报道的确切地点 在输出流中 :

| 钩子 | 报告的内容 |
| --- | --- |
| `onSemanticPrompt` | OSC 133 即时标记(`prompt-start`, (中文(简体) ), `input-start`, (中文(简体) ), `output-start`, (中文(简体) ), `command-end` 带有退出代码) |
| `onPwdChange` | 发送的OSC 7:原始 `file://host/path` URI 资源 |
| `onDesktopNotification` | OSC 9和OSC 777通知 |
| `onUnknownOsc` | OCS Ghostty不执行,例如:. `633;E;…` |
| `onBell`, (中文(简体) ), `onTitleChange` | 幽灵自己的钟和头衔 |
| `clipboardWriteHandler` | 决定 OSC 52 写作( 除非它返回为真实; 读作从未被回答) |
| `registerMarker(offset)` | Xterm.js 风格标记,通过滚动和回流遵循其行 |
| `modes.mouseTrackingMode` | `none`, (中文(简体) ), `x10`, (中文(简体) ), `vt200`, (中文(简体) ), `drag` 或者说 `any` |

渲染回路只在某事改变时运行(输出、输入、滚动、选择、光标) 眨眼),否则会入睡. `setPaused(true)` 停止绘制屏幕关闭的终端 继续解析输出; `setPaused(false)` 重新绘制整个. `setPaused(true, { releaseRenderer: true })` 并在此之前放弃其WebGL上下文,因为浏览器只保留了少数.

## 无头终端

`HeadlessTerminal` 为保留屏幕并回滚的服务器或工人绘制没有DOM、画布或渲染器的字节.

```ts
import { Ghostty, HeadlessTerminal } from '@aurigax-ai/ghostty-web';

const ghostty = await Ghostty.fromBytes(wasmBytes);
const term = new HeadlessTerminal({ ghostty, cols: 120, rows: 40, scrollback: 2000 });
term.parser.registerOscHandler(133, (data) => false);
term.parser.registerCsiHandler({ final: 'J' }, (params) => {});
term.write('hello\r\n', () => {});
term.buffer.normal.getLine(0)?.translateToString(true);
```

它已经 `buffer`, (中文(简体) ), `registerMarker`, (中文(简体) ), `onScroll`, (中文(简体) ), `onWriteParsed`, (中文(简体) ), `modes.bracketedPasteMode`, (中文(简体) ), `resize` 财务报告和审定财务报表 `dispose`,带有xterm.js名称。 OCS操作员在编号(7、133和任何其他编号)后获得有效载荷。 CSI处理器只观察一个序列,就在终端应用之前. `scrollback` 释放出整页,因此屏幕的行能比限制(80列时约一半)更能保持更窄的一行.

## 使用

```ts
import { Ghostty, Terminal, FitAddon } from '@aurigax-ai/ghostty-web';

const ghostty = await Ghostty.fromBytes(wasmBytes);
const term = new Terminal({ ghostty, fontSize: 14 });
const fit = new FitAddon();
term.loadAddon(fit);
term.open(element);
fit.fit();
term.onData((data) => pty.write(data));
pty.onData((data) => term.write(data));
```

## 释放

提升 `version` 内 `package.json`,并按下匹配键 `v<version>` 标签. `release.yml` 重建 WASM, 检查它是否匹配承诺的文件, 运行测试并发布到 npm 信任的出版( 无符号) 。 带有一个版本 `-` (例如:. `0.2.0-rc.1`(a) 载于 `next` 标签.

## 许可证

麻省理工学院. 见 [自由主义](https://npmcn.com/package/%40aurigax-ai/ghostty-web/LICENSE)鬼蒂是麻省理工学院的许可 由米切尔・桥本和鬼蒂 贡献者.

## 常见问题

### @aurigax-ai/ghostty-web 是什么？

Ghostty在浏览器中的终端引擎\(libghostty-vt\):WebAssembly building,一个xterm\.js-形状的API和WebGL和帆布渲染器\. 一个硬叉 代码/鬼网\.

### 如何安装 @aurigax-ai/ghostty-web？

在项目目录运行 npm install @aurigax-ai/ghostty-web，或使用 pnpm add / yarn add / bun add。

### @aurigax-ai/ghostty-web 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @aurigax-ai/ghostty-web 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @aurigax-ai/ghostty-web 可以商用吗？

@aurigax-ai/ghostty-web 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @aurigax-ai/ghostty-web 的下载量有多少？

根据 npm 官方下载统计，@aurigax-ai/ghostty-web 在 2026/10/07 – 2026/11/05 这 30 天内被下载 13,218 次，日均约 441 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aurigax-ai/ghostty-web 还在维护吗？

最新版本 0\.3\.9 发布于 2026/11/01（6 天前）；至今共发布 13 个版本，其中过去 12 个月发布了 13 个；首次发布于 2026/10/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

