RTerm v3.2.9
RTerm v3.2.9 — AI-Native Terminal App by Hyperspace Technologies
v3.2.9 (2026-08-22)
Features — GyShell v1.7.0 parity (agent speed, remote control, reliability)
Ports the remaining GyShell v1.7.0 feature set. (Parallel tool execution,
captureStatus, reconcileToolCalls, reading frontier, shortDescription, and
session rename had already landed in v3.2.4–v3.2.8.)
-
New
rtermCLI — agyll-style command CLI for the backend's WebSocket
JSON-RPC gateway. Zero dependencies (native WebSocket on Node ≥ 21,ws
fallback). Commands:ping,version,methods,call,terminals,
open,close,run,fleet,sessions,chat,dashboard,metrics.
run/fleetdrive the gateway's write + buffer-delta surface and settle on
stable output. Verified live against a running backend (126 methods).
Location:apps/cli/rterm-cli.mjs. -
Per-model OpenAI-compatible request-body overrides (
requestParams) —
typed text/number/boolean/JSON overrides per model, with model-level winning
over profile-level. Runtime-owned fields (model,messages,tools,
tool_choice,stream,stream_options,apiKey,baseURL,n) are
protected and silently dropped so a bad override can never break the agent
loop. Wired intocreateChatModelfor the global, action, thinking, and
compaction models + the command-draft model. Files:model_config.ts
(sanitizeRequestParams/resolveRequestParams),types/index.ts. -
Agent Setting auto-save — while a profile is active, every settings
change is written back into that profile automatically (no manual overwrite).
Re-entrancy guarded: the write-back itself triggers a settings change, and
theautoSaveInFlightflag stops that from looping. Files:
AgentSettingProfileService.ts(autoSaveActiveProfile),
startGyBackend.ts(listener wiring). -
Agent-managed terminal tabs (close side) — new
close_terminal_tab
agent tool, the counterpart ofopen_terminal_tab. Guarded: refuses to close
the last remaining tab and reports how many tabs remain. Registered as a
single-call boundary tool (the visible tab list changes). Files:
terminal_tools.ts,tools.ts,prompts.ts,AgentService_v2.ts. -
Faster SSH→SSH file transfers — single-file copies between two Unix SSH
hosts now stream directly between the machines (catover the source's
side-band exec channel → target'swriteFileChunk) instead of relaying
through the RTerm host. NewexecStreaminSSHBackendreturns stdout as an
async iterable (no buffering);TerminalExecOptions.streamStdoutopts in.
Automatic fallback to the existing chunked relay when either side declines
(non-Unix, no side-band exec, or any mid-stream error). Files:
FileSystemService.ts(tryDirectSshToSshTransfer),SSHBackend.ts. -
More predictable Skill discovery — the backend now scans only its managed
Skills folder and~/.agents/skills. Compatibility roots (~/.claude/skills,
~/.codex/skills,APPDATA/agents/skills,~/.config/agents/skills) are
opt-in viaincludeCompatibilityRootsorRTERM_SKILL_COMPAT_ROOTS=1.
File:skills/scanRoots.ts. -
Cleaner Seamless activity with accurate failure states — the Seamless
tool-group banner now computes per-step severity (error for command exit ≠ 0,
tool errors, error messages; warning for alerts/sub_tool warnings). The group
header shows the worst state (Failed · N steps/Done with warnings · N steps), an ✕/! marker replaces the tree connector on failing steps, and
error/warning counts appear in the meta. Files:ChatBanner.tsx,
chatBanner.scss. -
Chat selection stays put — creating or attaching a chat tab in another
panel no longer changes the session selected in the current chat panel.
moveTabBindingonly syncs the global active tab when the move lands in the
focused panel. File:LayoutStore.ts. -
More stable Windows terminals — terminal writes are routed through a
singleserializedWritehelper and the refit path repaints the full viewport
after resize, keeping cursor position and reflowed rows synchronized when
continuous output and panel resizing overlap. File:XTermView.tsx. -
Background SSH tabs stay monitorable — verified this GyShell behavior
already holds in RTerm: an SSH tab created without a visible terminal panel
stays layout-bindable, binds automatically when a terminal panel appears
later, and the monitor panel follows the terminal kind (existing
appStore.extreme.spec.tscases cover both directions). No code change was
needed; the earlier v3.2.x work already implemented it.
Tests
New v329Features.extreme.spec.ts (29 tests, all passing) covering
requestParams sanitization/precedence, scan-root restriction + opt-in +
dedupe, auto-save guard logic (no active profile, missing profile,
re-entrancy), close-tab last-tab guard, direct-transfer eligibility + empty
file + fallback + shell quoting, and Seamless severity computation
(error/warning/ok mapping + group dominance). Registered in
test:backend-unit-extreme.
Downloads
| Platform | File |
|---|---|
| macOS ARM64 | RTerm-3.2.9-arm64.dmg |
| Windows x64 (Portable) | RTerm.Portable.3.2.9-x64.exe |
| Windows x64 (Setup) | RTerm.Setup.3.2.9-x64.exe |
| Linux x64 (AppImage) | RTerm-3.2.9-x64.AppImage |
| Linux x64 (deb) | RTerm-3.2.9-x64.deb |
| Linux x64 (pacman) | RTerm-3.2.9-x64.pacman |
| Linux x64 (rpm) | RTerm-3.2.9-x64.rpm |
| Linux ARM64 (AppImage) | RTerm-3.2.9-arm64.AppImage |
| Linux ARM64 (deb) | RTerm-3.2.9-arm64.deb |
| Linux ARM64 (rpm) | RTerm-3.2.9-arm64.rpm |
Install
macOS: After installing, run xattr -cr /Applications/RTerm.app to remove quarantine.
Linux AppImage: chmod +x RTerm-*.AppImage && ./RTerm-*.AppImage
Linux deb: sudo dpkg -i RTerm-*.deb
Linux rpm: sudo rpm -i RTerm-*.rpm
Contact: rterm@hyperspace.ng