English
OxideTerm 2.0.28 adds AI message queues and optional subagent collaboration, expands encrypted credential sync and RDP proxy support, raises the IDE editing limit to 100 MiB with encoding preservation, and improves terminal interaction, session recovery, and settings navigation.
💬 OxideSens Conversations and Subagents
- Added queued follow-up messages while a response is running, with editing, deletion, reordering, and send-now actions. Normal completion sends the next queued message; stopping or a failed turn keeps pending messages available for explicit continuation. Each message retains its originating conversation, model, and prepared context.
- Added separate steering and interrupt-and-send actions. Steering supplies additional instructions to a native run without replacing its model or permissions; interrupt-and-send cancels the current turn and submits the replacement before queued messages. Drafts and pending queues remain in memory and are not replayed after restarting the workspace.
- Added optional subagent collaboration for native AI conversations, disabled by default per conversation. Child tasks can inherit the parent model or use another configured model, with one to four runnable subagents across the application and a default of two. ACP sessions are not subagent backends.
- Added task-group progress, individual and group stopping, follow-up instructions, expandable task details, and parent/child token-usage reporting. Completed child history stays with its parent conversation; unfinished historical runs reopen as interrupted.
- Scoped delegated terminal, SFTP, and IDE access to the resources assigned to each task. User terminal input takes priority over queued AI work. Stopping an agent does not guarantee that an already-issued remote command has ended; unresolved terminal control requires explicit handling.
🖱️ Terminal Input, Selection, and Display
- Added a setting to disable terminal command suggestions while preserving the current draft. Windows local PowerShell suggestions now read PSReadLine history.
- Added independent horizontal and vertical terminal padding, both defaulting to 1 px. Selection at the content edges no longer accidentally consumes input, and Shift-click can extend an existing selection.
- Added optional highlighting of other occurrences of selected text, with global and per-session controls in the existing highlighting interface. This feature is off by default.
- Kept selections attached to their original content during scrolling and scrollback eviction. Stabilized timestamp row identity, and restored free-type mouse positioning after leaving history search.
- Improved cell-aligned box, block, and other terminal graphics, and preserved the actual DirectWrite fallback font face on Windows to avoid incorrect glyph rendering.
- Fixed IME candidate positioning in alternate-screen applications such as Vim and tmux, including switching back from another terminal. Regression checks cover the terminal input-handler path; native Windows Chinese-input-method behavior still needs confirmation.
⚡ Terminal Output and File Transfers
- Reduced repeated scanning and copying of ordinary terminal output while retaining the stateful detection paths for terminal control strings, graphics, triggers, and transfer protocols.
- Made local terminal snapshots defer a busy parser lock with bounded retries, reducing UI waits during continuous output without indefinitely postponing a fresh snapshot.
- Fixed long or truncated command-like output being mistaken for XMODEM/YMODEM transfer commands. Complete subsequent transfer commands remain detectable, including across input chunks.
- Made trzsz wait for complete handshake lines before starting a transfer, avoiding premature detection when protocol markers are split across reads.
Local benchmark results for OxideTerm 2.0.28, recorded on 2026-09-10 at 09:00:29 UTC using the repository benchmark: 16 MiB per workload, one warm-up and three measured runs. The table reports medians.
| Workload | Median time (ms) | Median throughput (MiB/s) |
|---|---|---|
| plain | 133.606 | 119.755 |
| ansi | 159.822 | 100.111 |
| unicode | 165.883 | 96.454 |
| long-csi | 153.803 | 104.029 |
These results measure process-to-PTY throughput, not completed rendering or input latency.
🔌 Connections, Recovery, and Encrypted Sync
- Added restart recovery for standalone serial, Telnet, Mosh, RDP, and VNC session entries, including temporary sessions. Entries return disconnected; temporary credentials are not persisted and must be supplied again when reconnecting. This restores session entries, not past terminal output.
- Added SOCKS5 routing for RDP, including authentication, session-manager editing, and synchronization of its saved configuration. When an SSH gateway is selected, the gateway's own proxy settings take precedence; RDP's SOCKS5 settings apply when no SSH gateway is used.
- Extended the separately selectable encrypted credential-sync scope to standalone SFTP and Mosh authentication, RDP/VNC passwords, and supported SOCKS5/HTTP upstream proxy credentials. Restored secrets use protected storage on the receiving device rather than copied device-local keychain references.
- Preserved explicitly configured SSH algorithms during host-key preflight as well as connection setup. Improved SSH terminal-channel cleanup and retention of startup failures, and cleared expired keyboard-interactive authentication prompts.
- Restored revealing saved SSH passwords without replacing the saved credential, and preserved saved serial profile names in active sessions.
- Updated IronRDP to handle additional Font Map messages from RDP servers.
📂 SFTP, IDE, and Knowledge
- Made the SFTP sidebar follow the active SSH terminal, with a pin action to keep a chosen server. Pending file selections are retired when the destination changes, preventing uploads to an unintended server. Reopening SFTP from session management preserves an existing full-tab view.
- Raised the IDE editing limit to 100 MiB independently of the file-preview limit, across local, SFTP, and remote-agent file access. Large-file mode disables syntax processing and wrapping to limit editing overhead.
- Preserved file encoding, BOM, and line endings when opening and saving. Added encoding and line-ending controls to the IDE status bar, including reopening with a specified encoding and choosing the save format. Text is normalized internally, and saving rejects characters that the selected encoding cannot represent.
- Added knowledge-document pagination beyond the first 100 documents, with page navigation and recovery when the final page becomes empty. Embedding configuration now has its own card and remains available before a collection is created.
⚙️ Settings Organization
- Renamed the connection and network pages to clarify their scope, reorganized cards across General, Terminal, Appearance, Connections, SFTP, and IDE, and restored missing card descriptions. Terminal input now separates clipboard, mouse/link, and keyboard/suggestion controls.
- Moved external connection-link handling to Network & External Access and the terminal performance overlay to Help & About → Diagnostics. Clarified the two MCP directions, placed pending external MCP approvals before client management, and made client permissions expandable.
- Separated current-conversation subagent options from global tool concurrency. Corrected missing and misplaced search entries, removed unavailable targets, and expanded matching collapsed AI settings when navigating from search. Updated all 11 languages and platform-specific labels.
🖥️ Desktop Interaction
- Fixed Windows animation-frame scheduling that could starve input and quit messages.
- Made connection tabs select on mouse press so fullscreen input-event ordering cannot clear a pending switch before release.
- Restored a consistently visible close button on non-blocking connection progress cards.
中文
OxideTerm 2.0.28 新增 AI 消息排队与可选的子 Agent 协作,扩展加密凭据同步和 RDP 代理支持,将 IDE 编辑上限提高至 100 MiB 并保留文件编码,同时改进终端交互、会话恢复和设置导航。
💬 OxideSens 对话与子 Agent
- 支持在回复生成期间排队发送后续消息,并提供编辑、删除、调整顺序和立即发送操作。正常完成后发送下一条;停止或本轮失败时保留待发消息,等待手动继续。每条消息保留所属对话、模型和已准备的上下文。
- 增加独立的调整方向与打断后发送操作。调整方向向原生运行中的任务补充指令,不替换模型或权限;打断后发送取消当前轮次,并优先于队列发送替代消息。草稿与待发队列保存在内存中,重启工作区后不会自动重放。
- 原生 AI 对话新增可选的子 Agent 协作,默认按对话关闭。子任务可继承父任务模型或选择其他已配置模型;应用内同时运行的子 Agent 上限可设为 1–4 个,默认 2 个。ACP 会话不作为子 Agent 后端。
- 增加任务组进度、单个及整组停止、补充指令、可展开的任务详情,以及父子任务的 Token 用量展示。已完成的子任务历史归属父对话;历史中未完成的运行恢复为已中断状态。
- 子任务的终端、SFTP 和 IDE 访问限定在分配给它的资源内,用户在终端中的输入优先于排队的 AI 工作。停止 Agent 不代表已经发出的远程命令一定结束;未确认释放的终端控制需要显式处理。
🖱️ 终端输入、选择与显示
- 新增关闭终端命令提示的设置,并保留当前输入草稿。Windows 本地 PowerShell 的命令建议现可读取 PSReadLine 历史。
- 新增独立的水平、垂直终端边距设置,默认均为 1 px。修正内容边缘的选择行为,支持通过 Shift-click 扩展已有选区。
- 新增可选的选中文本同词高亮,在现有高亮界面提供全局与会话级控制,默认关闭。
- 滚动和历史缓冲淘汰时,选区继续跟随原始内容;稳定时间戳的行身份,并修复退出历史搜索后自由输入模式的鼠标定位。
- 改进框线、方块等终端图形与单元格的对齐;Windows 下保留 DirectWrite 实际选用的后备字体,避免错误字形渲染。
- 修复 Vim、tmux 等备用屏幕程序中的 IME 候选框定位,包括从其他终端切回的场景。回归检查已覆盖终端输入接口路径,Windows 原生中文输入法的实际表现仍待确认。
⚡ 终端输出与文件传输
- 减少普通终端输出的重复扫描和复制,同时保留控制字符串、图形、触发器和传输协议所需的有状态检测。
- 本地终端快照遇到繁忙的解析锁时采用有上限的延后重试,减少持续输出期间的界面等待,避免无限推迟快照更新。
- 修复过长或被截断的类命令输出误触发 XMODEM/YMODEM 传输。后续完整的传输命令仍可正常识别,并支持跨输入分块检测。
- trzsz 等待完整握手行后再启动传输,避免协议标记跨读取分块时提前触发。
OxideTerm 2.0.28 本机基准结果,测试时间为 2026-09-10 09:00:29 UTC,使用仓库内的 benchmark:每种负载 16 MiB,预热 1 次、实测 3 次,下表为中位数。
| 负载 | 耗时中位数(ms) | 吞吐量中位数(MiB/s) |
|---|---|---|
| plain | 133.606 | 119.755 |
| ansi | 159.822 | 100.111 |
| unicode | 165.883 | 96.454 |
| long-csi | 153.803 | 104.029 |
该结果衡量进程向 PTY 输出的吞吐量,不代表完整渲染耗时或输入延迟。
🔌 连接、恢复与加密同步
- 补齐独立串口、Telnet、Mosh、RDP 和 VNC 会话条目的跨重启恢复,覆盖临时会话。条目以断开状态恢复;临时凭据不落盘,重连时需重新提供。恢复的是会话条目,不包含过去的终端输出。
- RDP 新增 SOCKS5 路由,支持认证、会话管理中的编辑及已保存配置的同步。选择 SSH 网关时使用网关自身的代理设置;未使用 SSH 网关时才采用 RDP 的 SOCKS5 设置。
- 将可单独选择的加密凭据同步范围扩展至独立 SFTP、Mosh 认证、RDP/VNC 密码,以及受支持的 SOCKS5/HTTP 上游代理凭据。接收设备将恢复后的秘密写入受保护存储,不直接沿用其他设备的钥匙串引用。
- SSH 主机密钥预检和正式连接均遵循显式配置的算法偏好;改进终端通道清理和启动失败信息保留,并清除过期的键盘交互认证提示。
- 恢复查看已保存 SSH 密码的功能,不替换原凭据;串口活动会话保留已保存配置的名称。
- 更新 IronRDP,兼容 RDP 服务器额外发送的 Font Map 消息。
📂 SFTP、IDE 与知识库
- SFTP 侧栏跟随活动 SSH 终端,并支持固定指定服务器。目标变化时清理待处理的文件选择,防止上传到错误服务器;从会话管理重新打开 SFTP 时保留已有的完整标签页。
- IDE 编辑上限提高至 100 MiB,与文件预览上限分离,覆盖本地、SFTP 和远程 Agent 文件访问。大文件模式关闭语法处理与自动折行,以控制编辑开销。
- 打开和保存文件时保留编码、BOM 与换行格式;IDE 状态栏新增编码及换行入口,支持按指定编码重新打开和修改保存格式。文本在内部统一换行;所选编码无法表示部分字符时拒绝有损保存。
- 知识库文档超过 100 个后可继续分页查看,支持翻页,并在最后一页变空时回退。嵌入配置独立成卡片,尚未创建集合时也可访问。
⚙️ 设置整理
- 调整连接和网络页面名称以明确范围,整理通用、终端、外观、连接、SFTP 和 IDE 页内卡片,并恢复缺失的卡片说明。终端输入分为剪贴板、鼠标与链接、键盘与输入提示三组。
- 将外部连接链接移至“网络与外部访问”,终端性能浮层移至“帮助与关于 → 诊断”。说明两处 MCP 的访问方向,将外部 MCP 待审批操作置于客户端管理之前,并支持按需展开客户端权限。
- 分开当前会话的子 Agent 选项与全局工具并发设置;修正搜索漏项和错误位置,移除不可用目标,搜索进入 AI 设置时展开对应折叠区域。同步更新全部 11 种语言及平台专用文案。
🖥️ 桌面交互
- 修复 Windows 动画帧调度挤占输入与退出消息处理的问题。
- 连接标签在鼠标按下时切换,避免全屏下输入事件顺序导致松开前待切换状态丢失。
- 恢复非阻塞连接进度卡片中持续可见的关闭按钮。
📥 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.appWindows
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
- Documentation: https://oxideterm.app
- GitHub Issues: https://github.com/AnalyseDeCircuit/oxideterm/issues
- Changelog: https://github.com/AnalyseDeCircuit/oxideterm/blob/main/.github/release-notes/stable-changelog.md
