github AnalyseDeCircuit/oxideterm v2.2.1
OxideTerm Native 2.2.1

2 hours ago

中文 | English

中文

OxideTerm 2.2.1 完善了插件市场、按需语言支持和文件预览,新增供工作概览、主机来源与文本工具使用的原生插件能力。同时,本版本升级云同步合并与恢复机制,支持分别设置应用和终端主题,并修复 SFTP 文件夹上传导致连接中断、IDE 多选、终端输入和 Windows 控制台兼容问题。

🧩 插件市场与按需语言支持

  • 插件市场和已安装列表统一采用紧凑行布局,保留介绍、版本、状态与操作入口,展开详情减少重复说明和嵌套容器。分类来自市场索引,已安装插件也可以按分类筛选。
  • 两个列表均支持分页,默认每页 10 项,可自定义每页数量并直接跳转页码;每页数量设置放在列表底部。启用、禁用等结果提示使用插件名称。
  • 修复插件管理器搜索框及分页输入框获得焦点后无法输入文字的问题。
  • 刷新插件列表或启用、禁用、卸载其他插件时,保留未发生变化的运行中插件入口和界面,修复 Toolbox 等插件报“标签页未声明”的问题。
  • 插件入口集中排列在内置工具下方,以分隔线区分;修复插件侧栏面板声明底部位置却显示在上方的问题。插件标签页复用应用统一页头、原生控件和主题。
  • 将 C、C++、C#、CSS、Common Lisp、Elixir、Go、HTML、Java、JavaScript、Objective-C、Perl、PHP、R、Ruby、Rust、Scala、Swift、TypeScript、TSX、Zig 共 21 种语言的语法支持移入独立插件;另增加 Nginx、Terraform/HCL 和 Protobuf 的识别与插件入口。
  • 继续内置 Bash、Zsh、Fish、PowerShell、JSON、YAML、TOML、Markdown、Dockerfile、Make、CMake、Diff、Python、Lua、SQL 共 15 种语言。外置语言缺少插件时仍可编辑文件,并通过语言插件提示补装语法支持。
  • 市场按当前主程序和平台选择最高兼容插件版本,区分可安装更新与需要升级主程序的新版。启动时重新检查已安装插件,覆盖应用升级和降级;不兼容时保留插件文件和设置。

🔎 原生文件预览与插件工作区

  • 本地文件管理器和 SFTP 的文件预览入口支持调用已安装的 PDF、SQLite、证书和二进制检查插件,无需为每种文件打开额外工作区。
  • 本地代码预览也会显示缺少语言支持的安装入口;只读预览接入原生编辑器,并在安装语言插件后更新高亮。
  • PDF 预览支持翻页;SQLite 使用原生表格展示表和分页数据,保持只读。远程数据库存在非空 WAL、回滚日志或下载期间发生变化时会拒绝预览,避免展示不完整的数据库副本。
  • 证书预览支持浏览同一文件中的多个证书,分别展示有效期和详细字段;有效期不等同于系统信任或吊销检查。二进制检查可展示格式、架构和节区,并结合现有十六进制预览定位文件偏移。
  • 关闭预览会取消相关后台任务并释放远程临时文件,继续使用共享 SSH 连接的终端和其他消费者不受影响。进程插件沿用启用时的本机代码信任确认。
  • 为 Workspace Dashboard 提供工作区状态摘要和跳转能力,可聚合最近连接、活动标签页、录制状态、连接与插件问题,并返回对应应用页面;终端正文和诊断内容不包含在摘要中。
  • 为 Tailscale、Ansible 等主机来源插件提供原生连接表单入口:发现的主机信息交由用户检查并配置认证,再保存或连接。
  • 为 Toolbox 等文本工具提供多行输入、只读结果、复制及连续处理能力。终端右键入口在点击时捕获选区,切换标签后仍使用当时选择的内容;结果不会自动发送回终端。

☁️ 云同步合并与恢复

  • 云同步改为汇总各设备的独立加密快照,自动合并互不冲突的修改;并发冲突保留候选值,由用户明确选择。未纳入同步的资源不会因此从云端删除。
  • 新增同步应用中断后的恢复记录,协调连接、转发、设置、快捷命令、插件数据和凭据变更。上传重试复用已准备的数据,上传期间的新本地修改继续保留待同步状态。
  • 桌面、命令行和 MCP 使用同一同步流程;命令行支持预览合并结果后再应用。旧云端数据可导入新机制,原对象保留,旧版 .oxide 文件仍可读取。
  • 修复旧备份和旧云同步数据升级时丢失应用主题选择的问题。

🎨 主题与工作区

  • 应用界面和终端配色可以分别选择,并在设置中通过同一个工作区预览查看组合效果;透明度在接近不透明的区间提供更细调整。(PR #650)
  • 终端使用当前配色响应颜色查询和明暗外观请求;SSH 主题更新通过队列发送,避免阻塞界面。(PR #650)
  • 各类工作区页面均可放入分屏标签布局。IDE 文件树支持修饰键多选、连续选择和对应批量操作,底栏高度与其他工作区统一。
  • 命令面板可以找到已保存的本地终端和 WSL 配置;启动失败会在工作区显示原因,列表悬停状态也能正确刷新。(PR #649)

🛠️ 连接、传输与终端修复

  • 修复 SFTP 上传文件夹时共享 SSH 传输可能被关闭、连带断开终端的问题,完善底层通道流控和断开诊断。
  • 恢复已保存连接的认证选择,并仅在认证成功后持久化用户确认的凭据,确保保存目标对应实际完成认证的连接。(PR #647)
  • 修复 JumpServer 等回显验证码提示下的 TOTP 自动填写,以及便携模式从错误目录查找用户 SSH 配置的问题。
  • trzsz 和 ZMODEM 下载正确执行用户选择的覆盖行为。
  • 修复双向文本中的宽字符网格定位、输入法候选位置与预编辑颜色、触控板滚动增量,以及括号粘贴中的换行保留。(PR #651)
  • Windows 随包提供固定版本的 ConPTY,修复管道就绪与空读取处理、Ctrl+J 身份以及按键释放与已发送按下事件的配对。(PR #648)
  • 修复窗口宽度或时间戳栏变化时,未修改的终端行被重新标记为当前时间的问题;保留对有样式空白的实际内容变化识别。(PR #655)
  • 更新原生界面依赖与相关平台适配,撤回会触发重复悬停样式断言的标签页改动。

👥 贡献者

  • @stabey:贡献应用与终端主题分离、本地和 WSL 配置查找、SSH 认证恢复,以及终端输入和 Windows 控制台修复。(PR #647、PR #648、PR #649、PR #650、PR #651)
  • @m00nLi:修复终端行时间戳随网格宽度变化而错误更新的问题。(PR #655)

📌 升级说明

  • 外置语言及本次新增宿主能力对应的插件需要 OxideTerm 2.2.1 或更高版本,通过插件市场按需安装;插件独立发布,具体平台支持和运行依赖以插件详情为准。
  • 多设备同步请将参与设备统一升级。新版本升级旧云端数据后使用新的同步机制,不再向旧机制回写;HTTP JSON 自托管后端需要支持新的对象列表和删除接口。
  • RDP、VNC 本版继续内置,插件化安排在后续版本。

English

OxideTerm 2.2.1 improves the plugin marketplace, on-demand language support, and file previews, with native plugin capabilities for workspace summaries, host discovery, and text tools. This release also upgrades cloud-sync merging and recovery, separates application and terminal themes, and fixes shared SSH disconnects during SFTP directory uploads, IDE multiselection, terminal input, and Windows console behavior.

🧩 Plugin marketplace and on-demand languages

  • The marketplace and installed-plugin pages use compact rows with descriptions, versions, status, and actions. Expanded details remove repeated descriptions and nested containers. Categories come from the catalog and also filter installed plugins.
  • Both lists support pagination, defaulting to 10 entries per page, with a custom page size and direct page navigation. Page-size controls appear below the list, and enable/disable notifications use plugin names.
  • Fixed focused search and pagination fields in the plugin manager not accepting text input.
  • Refreshing the plugin list or enabling, disabling, or uninstalling another plugin preserves unchanged running plugins' navigation entries and views, fixing undeclared-tab errors in plugins such as Toolbox.
  • Plugin navigation entries are grouped below built-in tools with a separator. Plugin sidebar panels now honor their declared bottom position. Plugin tabs reuse the application's page headers, native controls, and themes.
  • Moved syntax support for 21 languages into independent plugins: C, C++, C#, CSS, Common Lisp, Elixir, Go, HTML, Java, JavaScript, Objective-C, Perl, PHP, R, Ruby, Rust, Scala, Swift, TypeScript, TSX, and Zig. Added file recognition and plugin entry points for Nginx, Terraform/HCL, and Protobuf.
  • Kept 15 languages built in: Bash, Zsh, Fish, PowerShell, JSON, YAML, TOML, Markdown, Dockerfile, Make, CMake, Diff, Python, Lua, and SQL. Files remain editable when an external language plugin is missing, with a prompt to install syntax support.
  • The marketplace selects the highest plugin version compatible with the host and platform, distinguishing available updates from newer releases that require an application upgrade. Installed plugins are checked again at startup after upgrades or downgrades; incompatible plugins retain their files and settings.

🔎 Native file previews and plugin workspaces

  • Local file-manager and SFTP previews can use installed PDF, SQLite, certificate, and binary-inspection plugins through the existing preview entry point.
  • Local code previews also offer installation of missing language support. Read-only previews use the native editor and update highlighting after a language plugin is installed.
  • PDF previews support page navigation. SQLite previews provide read-only native tables with table selection and pagination. Remote databases with nonempty WAL or rollback journals, or changes during download, are rejected to avoid displaying an incomplete copy.
  • Certificate previews browse multiple certificates in one file and show validity dates separately from trust or revocation verification. Binary inspection displays format, architecture, and sections, with offset navigation through the existing hexadecimal preview.
  • Closing a preview cancels its background work and releases remote temporary files without disconnecting other consumers of the shared SSH connection. Process plugins retain the existing enable-time approval for trusted local code.
  • Added workspace summaries and navigation for Workspace Dashboard, supporting recent connections, active tabs, recording states, connection and plugin issues, and links back to application pages. Summaries exclude terminal content and diagnostic text.
  • Host-source plugins such as Tailscale and Ansible can open the native connection form with discovered host metadata for users to review, configure authentication, and then save or connect.
  • Text tools such as Toolbox can use multiline input, read-only results, copying, and chained operations. Terminal context-menu actions capture the selection at click time, preserve it across tab changes, and never send results back to the terminal automatically.

☁️ Cloud-sync merging and recovery

  • Cloud sync now combines independent encrypted snapshots from participating devices, automatically merging nonconflicting edits and retaining concurrent candidates for explicit resolution. Excluding a resource from sync does not delete it remotely.
  • Added recovery records for interrupted application of connection, forwarding, settings, Quick Command, plugin, and credential changes. Upload retries reuse prepared data, while edits made during upload remain pending for the next sync.
  • Desktop, CLI, and MCP share the synchronization flow, with CLI support for previewing merges before applying them. Legacy cloud data can be imported into the new mechanism without deleting the original objects, and older .oxide files remain readable.
  • Fixed application-theme preservation when upgrading legacy backups and cloud-sync data.

🎨 Themes and workspaces

  • Application and terminal themes can be selected independently and viewed together in a workspace preview. Opacity offers finer adjustment near the opaque end of the slider. (PR #650)
  • Terminal color and appearance queries use the active palette. SSH palette updates are queued to avoid blocking the interface. (PR #650)
  • Workspace pages can share split-tab layouts. The IDE file tree supports modifier-key multiselection, range selection, and related batch actions, with a bottom bar aligned to other workspaces.
  • The command palette finds saved local-terminal and WSL profiles. Launch failures surface in the workspace, and hovered list rows refresh correctly. (PR #649)

🛠️ Connection, transfer, and terminal fixes

  • Fixed shared SSH transport shutdown during SFTP directory uploads, which could also disconnect the terminal, with improvements to channel flow control and disconnect diagnostics.
  • Restored saved authentication choices and persisted confirmed credentials only after successful authentication, against the connection that actually authenticated. (PR #647)
  • Fixed TOTP autofill for echoed verification prompts such as JumpServer's, and SSH configuration discovery from the wrong directory in portable mode.
  • trzsz and ZMODEM downloads honor the requested overwrite behavior.
  • Fixed wide-glyph placement in bidirectional rows, IME caret positioning and preedit colors, touchpad scroll accumulation, and newline preservation in bracketed paste. (PR #651)
  • Bundled a pinned ConPTY runtime on Windows and fixed pipe readiness, empty reads, Ctrl+J identity, and key-release pairing with delivered key presses. (PR #648)
  • Fixed unchanged terminal rows receiving new timestamps when the window or timestamp gutter changes width, while preserving detection of meaningful styled-blank changes. (PR #655)
  • Updated native UI dependencies and platform integration, and reverted tab hover changes that could trigger a duplicate-hover-style assertion.

👥 Contributors

  • @stabey contributed independent application and terminal themes, saved local and WSL profile discovery, SSH authentication restoration, terminal input fixes, and Windows console fixes. (PR #647, PR #648, PR #649, PR #650, PR #651)
  • @m00nLi fixed terminal row timestamps changing when the grid width changes. (PR #655)

📌 Upgrade notes

  • External language plugins and plugins using the new host capabilities require OxideTerm 2.2.1 or later and are installed separately through the marketplace. Consult each plugin's details for supported platforms and runtime dependencies.
  • Upgrade all participating devices for multi-device sync. After importing legacy cloud data, the new client uses the new synchronization mechanism and does not write back to the legacy one. Self-hosted HTTP JSON backends must support the new object-listing and deletion endpoints.
  • RDP and VNC remain bundled in this release; plugin migration is planned for a later version.

📥 Download for your system

Operating system x64 ARM64
Windows Setup (.exe) Setup (.exe)
macOS DMG (Intel) DMG (Apple Silicon)
Linux AppImage · DEB · RPM AppImage · DEB · RPM

Portable archives, signatures, and sha256sums.txt remain available in the release assets below.

📌 Installation Tips / 安装提示

macOS

Downloaded .dmg files may be quarantined by Gatekeeper. Run in Terminal:

xattr -cr ~/Downloads/OxideTerm_*.dmg
# or after install / 或安装后
xattr -cr /Applications/OxideTerm.app

Windows

If SmartScreen warns, click More info -> Run anyway.

若 SmartScreen 弹出警告,点击 更多信息 -> 仍要运行。

Linux

# AppImage
chmod +x OxideTerm_*_linux_*.AppImage && ./OxideTerm_*_linux_*.AppImage

# Debian/Ubuntu
sudo dpkg -i OxideTerm_*_linux_*.deb && sudo apt-get install -f

# Fedora/RHEL-compatible systems
sudo dnf install ./OxideTerm_*_linux_*.rpm

🔗 Links

Don't miss a new oxideterm release

NewReleases is sending notifications on new releases.