跳转到内容

常见问题

OxideTerm 是一个使用 Rust 和 GPUI 构建的面向远程服务器的原生工作区。它把 SSH 终端、本地 Shell、SFTP、IDE、端口转发、远程桌面、trzsz 传输、OxideSens AI、插件系统和主题整合在同一个 GPU 加速桌面应用中。

OxideTerm 采用 GPL-3.0(GNU 通用公共许可证 v3.0):

  • 所有人:可免费用于个人、教育、研究和商业用途。
  • 衍生作品:分发时必须继续使用 GPL-3.0。
  • 源代码:分发修改版本时必须提供源码。

OxideTerm 曾使用 PolyForm Noncommercial,后来转为 GPL-3.0,是为了避免 source-available 陷阱、非商用歧义和竞业禁止附加条款。

公开代码不自动等于开源。如果许可证在熟悉的开源名称之外又加上“禁止再分发”“禁止重新打包”“禁止竞争产品”或平台审批条款,那它更像 source-available 的包装,而不是开源自由。OxideTerm 不添加这些附加限制:GPL-3.0 就是完整许可证。

macOS(Apple Silicon 和 Intel)、Windows(x64 和 ARM64)、Linux(x64 和 ARM64)。

OxideTerm 和基于 Electron 的终端有什么区别?

Section titled “OxideTerm 和基于 Electron 的终端有什么区别?”

OxideTerm 使用 GPUI 直接绘制原生桌面界面,不捆绑 Chromium,也不依赖系统 WebView:

对比项基于浏览器的桌面应用OxideTerm
界面渲染浏览器运行时与 DOMGPUI GPU 表面
安装包通常包含浏览器运行时通常约 50–70 MB
终端数据流常经过脚本层和进程桥接Rust 终端状态进程内更新
SSH 实现依实现而定纯 Rust russh

密码存储在操作系统原生钥匙串中(macOS 钥匙串、Windows 凭据管理器、Linux Secret Service),不会以明文形式存储在配置文件中。已保存连接的元数据也会在本地静态加密。

能从其他 SSH 客户端导入连接吗?

Section titled “能从其他 SSH 客户端导入连接吗?”

可以。OxideTerm 支持:

  • .oxide 加密格式导入。
  • SSH config 导入:解析 ~/.ssh/config 中的主机、跳板机、密钥路径和常见选项。
  • 通过连接向导手动创建连接。

支持。OxideTerm 支持多跳 ProxyJump 和拓扑图:

  • 在连接向导中配置跳板链。
  • ~/.ssh/config 自动解析 ProxyJump。
  • 可视化展示节点和连接关系。
  • 每一跳可使用不同认证方式。
  • 直连场景支持 keyboard-interactive / 2FA;ProxyJump 链路中的显式 keyboard-interactive 仍有限制。

支持密码、Ed25519/RSA/ECDSA 密钥、带口令密钥、SSH 证书、SSH Agent 和直连 keyboard-interactive。Agent Forwarding 可按连接开启。

OxideTerm 内置优雅期重连

  1. 检测断连后先探测旧连接。
  2. 如果旧 SSH TCP 流在短时间内恢复,vim、htop、yazi 等 TUI 程序可以继续保留。
  3. 如果恢复失败,则建立新 SSH 连接,并恢复端口转发、SFTP 和 IDE 相关消费者。

多个功能可以共享一个 SSH 连接吗?

Section titled “多个功能可以共享一个 SSH 连接吗?”

可以。终端、SFTP、端口转发和 IDE 模式共享同一个物理 SSH 连接,避免重复握手和重复认证。

可以。OxideSens 采用 BYOK(自带密钥) 模式,支持 OpenAI、Anthropic、Google、DeepSeek、Ollama 和 OpenAI 兼容端点。密钥存储在系统钥匙串。OxideTerm 的核心远程服务器工作流和 OxideSens AI 不需要应用订阅;AI provider 费用由你选择的 provider 决定。

AI 功能会把终端数据发送到云端吗?

Section titled “AI 功能会把终端数据发送到云端吗?”

只在你主动请求并让 OxideSens 使用相关上下文时才会发送给你配置的 AI provider。OxideTerm 不做遥测,也不会自动收集终端内容。需要完全离线 AI 时,可以使用 Ollama 本地模型。

OxideSens 不再把大量底层工具直接摊给模型,而是把保存连接、活动 SSH 会话、终端缓冲区、SFTP 路径、设置和知识库看成工作区目标。模型需要先明确目标,再执行连接、命令、文件或设置操作。

可以。SSH/SFTP/端口转发/本地 Shell 工作流不需要 OxideTerm 账号或订阅。访问远程网络目标、检查更新、可选 Cloud Sync 或云端 AI provider 时才需要网络。AI 可通过 Ollama 本地模型离线使用。

远程 Agent 是一个可选的小型 Rust 二进制,用于增强 IDE 模式,例如更快的文件树、符号搜索和文件监听。IDE 模式在没有 Agent 的情况下也可以工作。

什么是 CLI 伴侣工具(oxideterm)?

Section titled “什么是 CLI 伴侣工具(oxideterm)?”

oxideterm 是可独立运行的无头管理工具,用于检查和修改设置、连接、转发、备份、云同步与诊断数据。它直接调用 Rust 领域 crate,不要求桌面应用运行,也不通过本地套接字或 RPC 服务控制 GUI。

可以。OxideTerm 以 asciicast v2 格式录制终端会话,支持变速回放和导出。

先选择要加入广播的终端面板,再从终端命令栏提交命令。原生工作区会把这条命令发送给当前面板和每个选中的目标。直接在终端画面中键入的内容不会逐键镜像;广播会立即执行,因此请仔细检查破坏性命令。

插件从当前配置目录中发现。每个插件包都包含 plugin.json 清单,并使用受支持的原生入口,例如 Wasm 模块、进程入口或仅清单贡献。原生应用不会执行旧版 JavaScript 入口,也不会把脚本加载到界面中。

插件位于当前 OxideTerm 配置目录下的 plugins/{plugin-id}/。运行 oxideterm paths --json 可以查看实际目录,也可以在插件管理器中直接打开它。

Wasm 插件运行在 wasmtime 沙箱中,只能调用清单声明且由宿主授权的类型化能力。进程插件由宿主管理生命周期和协议边界,但不是 Wasm 沙箱;启用前仍应检查插件身份、权限和声明的功能。插件界面由宿主使用 GPUI 原生控件渲染,不会执行网页界面代码。

插件可以直接访问文件系统吗?

Section titled “插件可以直接访问文件系统吗?”

不能任意访问。插件只能通过类型化 Host API 使用已声明并获授权的文件、SFTP、存储或网络能力。

首次启动时 macOS Gatekeeper 可能会阻止应用。右键点击应用 → 打开,或前往 系统设置隐私与安全性允许

  • 检查网络稳定性。
  • OxideTerm 的优雅期重连会先尝试恢复旧连接。
  • 在连接配置中调整 keepalive。
  • 默认 SSH keepalive 间隔为 15 秒。
  • 在运行时查看当前连接和系统健康状态,在事件日志中查看重连阶段与失败详情。
  • 检查 GPU 驱动和系统图形栈是否正常。
  • 在设置中选择兼容渲染配置,或使用 OXIDETERM_RENDER_PROFILE=compatibility 重新启动。
  • 暂时关闭背景图、模糊等高成本视觉效果。
  • 如果只有大输出时变慢,请同时检查终端滚动缓冲大小和远端输出速率。

实际路径取决于操作系统、安装模式、可选的 OXIDETERM_CONFIG_DIR 和当前命名配置。请让 CLI 返回解析后的路径:

Terminal window
oxideterm paths --json

设置、连接和其他配置使用 JSON 或加密文档存储;部分历史、索引和运行时状态使用本地 redb 数据库。不要假设所有数据都位于同一个数据库文件中。

  1. 删除已安装的应用或便携目录。
  2. 在卸载前运行 oxideterm paths --json,只删除你确实不再需要的数据目录。
  3. 如果还要删除已保存的凭据,请在操作系统的凭据管理器中移除 OxideTerm 条目。
  4. 如果不想保留已安装插件,请删除 oxideterm paths 返回的当前插件目录。