Repolode
coder

coder/ghostty-web

基于 Ghostty WASM 解析器、兼容 xterm.js API 的浏览器终端模拟库。

Star
2,980
Fork
186
未关闭 Issue
69
最近提交
4天前

这是什么?

ghostty-web 将 Ghostty 的终端模拟器引入浏览器,以 npm 包的形式提供。解析器由 Ghostty 自身源码编译为 WebAssembly,与原生 Ghostty 应用使用的是同一套 VT100 实现,而不是用 JavaScript 重新实现。

该库力求与 xterm.js 的 API 保持兼容,现有项目只需把导入从 `@xterm/xterm` 改为 `ghostty-web` 即可迁移。它没有运行时依赖,WASM 包约 400KB。项目对 Devanagari、阿拉伯文等复杂文字的渲染处理更好,并支持 xterm.js 尚未实现的 XTPUSHSGR/XTPOPSGR 序列。

项目最初为并行智能体开发桌面应用 Mux 而创建,同时也设计为可通用。npx 演示会在回环地址上启动一个带有单次运行令牌保护的本地 shell。

核心功能

  • 01解析器由 Ghostty 源码编译为 WebAssembly
  • 02兼容 xterm.js API,便于迁移
  • 03无运行时依赖,WASM 包约 400KB
  • 04对 Devanagari、阿拉伯文等复杂文字正确处理字形簇
  • 05支持 XTPUSHSGR/XTPOPSGR 转义序列

适用场景

  • 替换网页终端或 IDE 面板中的 xterm.js
  • 构建通过 WebSocket 连接服务端的浏览器 shell
  • 在基于 Web 技术的桌面应用中嵌入终端
  • 渲染包含复杂非拉丁文字的终端输出

快速上手

  1. 1

    安装软件包

    npm install ghostty-web
  2. 2

    导入并初始化,然后在页面元素中打开终端(参见用法)

  3. 3

    或者在本地试用演示

    npx @ghostty-web/demo@next

使用前须知

  • 从源码构建需要 Zig 和 Bun。
  • 演示会启动真实的本地 shell,因此请勿将其暴露到远程。

标签

常见问题

ghostty-web 是什么?
基于 Ghostty WASM 解析器、兼容 xterm.js API 的浏览器终端模拟库。 ghostty-web 将 Ghostty 的终端模拟器引入浏览器,以 npm 包的形式提供。解析器由 Ghostty 自身源码编译为 WebAssembly,与原生 Ghostty 应用使用的是同一套 VT100 实现,而不是用 JavaScript 重新实现。
ghostty-web 可以免费使用吗?用的什么许可证?
ghostty-web 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
ghostty-web 还在维护吗?
活跃维护中。ghostty-web 最近一次提交是在 2026年10月15日。
ghostty-web 适合用来做什么?
替换网页终端或 IDE 面板中的 xterm.js 构建通过 WebSocket 连接服务端的浏览器 shell 在基于 Web 技术的桌面应用中嵌入终端 渲染包含复杂非拉丁文字的终端输出
ghostty-web 怎么安装和运行?
安装软件包: npm install ghostty-web 导入并初始化,然后在页面元素中打开终端(参见用法) 或者在本地试用演示: npx @ghostty-web/demo@next
在哪里获取 ghostty-web?
源代码和安装说明在 GitHub 上:https://github.com/coder/ghostty-web

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目