Releases

Latest release: v0.4.4 · 2026-10-17. These links always point at the newest build.

macOS

Linux (x64)

Windows (x64) beta

Early support: the installer is unsigned (SmartScreen will ask — "More info → Run anyway"), updates are manual, and session continuity across restarts is still landing. Please report what breaks.

Version history

v0.4.4 2026-10-17

Highlights

Windows is a real target now — as an unsigned beta, and that word is doing work. The session-host phase landed, so the whole core experience works there: agent sessions and their hooks, managed Claude and Codex accounts, native SSH (port and agent forwarding, ProxyCommand, Pageant, ssh.exe), live links and co-attach, the phone relay, dev tools, run configurations, the tray with background mode, and the session reaper and memory panel. What it does not have is a code-signing certificate, so Windows SmartScreen will warn on the installer, and the build cannot update itself: it checks for new versions and shows a card that links to the download, and you run the new installer over the old one. Your projects and settings are kept, and on 0.4.1+ your running sessions survive the update. Signing is the next phase.

A simulator is a node now. iOS simulator and Android emulator screens live on the canvas: click to tap, drag or scroll to swipe, type straight into the device, Home and Lock buttons, and a device picker that boots one. It is a real stream rather than a screenshot — nothing is encoded while the screen sits still, about 19–30 fps while it moves, first frame in roughly 0.4 s. A run node gets a phone button that opens its device inline under the run controls, so a Flutter or React Native run and the screen it produces are one node; you can pop that screen out into a node of its own and dock it back. The overflow menu mirrors DeviceHub's own: appearance, text size, location, status-bar overrides, shake, Face ID, Open URL, push notifications, installs, screenshots — and what cannot be driven from outside is listed greyed out with the reason instead of quietly missing. iOS needs macOS and Xcode (the node draws the device through a small Swift helper it compiles on first use, about three seconds, once per Xcode build); Android virtual devices work on every desktop OS, Windows included, over the emulator's own interface. Desktop only — a browser or relay tab says so rather than showing an empty frame.

You can pause a whole project, including the sessions you cannot see. The project menu pauses every agent in a project, a group frame pauses the ones inside it, and a selection of two or more pauses just those; the tab carries a count while they are down, and Resume all brings them back. The sessions that are not on screen are the point — a project you are not looking at has no terminal mounted, and those are exactly the ones holding a few hundred megabytes each. Nothing is interrupted: a session mid-turn, or sitting on a question, is marked and pauses the moment its turn ends cleanly, and Cancel pending pauses drops those marks. A pause exits the agent CLI only; the session, your shell and your scrollback stay, and resuming continues the conversation where it stopped. It also tells you the truth about every session it touched — paused, pausing when the turn ends, unreachable, not eligible, skipped and why — so a batch against a disconnected host never reports a silent zero. Right after an app restart only a session last seen idle is paused and the rest are skipped rather than guessed at, because at that moment an idle CLI and one mid-turn look identical. SSH projects included.

The Cursor Agent CLI is a builtin agent. cursor-agent now sits beside Claude, Codex, Gemini, Copilot, opencode, Grok and Antigravity in the new-session menus, and it arrived with nearly the whole harness rather than a bare launch command: the RUNNING and NEEDS YOU badges, the unread dot and the completion notification, session names synced both ways with the node title, resume after an app restart or a reboot, the context meter, the ⌘M transcript view, context links to other agents, subagent cards, canvas control so it can open and arrange nodes itself, permission modes, model switching and --after dependencies. /loop, /schedule, /cron and Branch stay Claude-only. Every leg was measured against a real cursor-agent build, and docs/cursor-agent.md says which facts came from a run and which from reading its bundle.

Updates stop nagging, and Restart finally says something. This is the part macOS users will notice. Clicking Restart to update used to look like nothing had happened while macOS staged the update underneath; now the button shows Preparing… and Restarting… and the canvas is saved before the app quits. Automatic checks download quietly — no progress card and no "You're up to date" flash unless you asked — a staged update is no longer re-downloaded every six hours, and a failed background check no longer puts up an error card. When a release carries notes, the card shows the first few lines. Errors that do reach you are plain sentences instead of net::ERR_*.

The canvas and the board got a wide pass. The ⌘M chat view puts the keyboard straight in its composer and gives every code block a Copy button. Kanban cards carry the session's own agent actions, and a held launch now shows on the board with a ▶ to start it. You can choose per project which agent actions skip the confirm dialog. There are commands for the zone thirds and quarters; ⌘+middle-drag pans past a locked canvas and the lock has its own command; the tab strip and sessions sidebar auto-scroll while you drag something across them. Sticky notes and group frames can take a solid backing, the model & context meter can be hidden, rendered Markdown gets a font family, a size and visible table gridlines — and a running Flutter app can switch between checkouts without rebuilding. nodeterm://open links from other apps exist behind a flag that is off by default.

Memory and power got stricter. Minimize nodeterm or send it to the tray and, after two minutes, its terminals release their GPU contexts and parked emulators — then come back warm when you return. A window merely *covered* by another app stays warm; that distinction cost a bug on macOS and is now explicit. On Windows, session-host scrollback is capped at 10,000 lines, which was the single biggest memory win there. Keep-awake, which holds off idle sleep while a local agent works, now lets go below 5% battery and re-holds when you plug in, and on a Mac a critical thermal state releases it too — latched until things cool down so it cannot flap. An unreadable battery level changes nothing, so a broken reader can never switch the feature off silently.

New

  • windows — Session-host agent operations (terminate owner, detached write, typed chat input, mode read) [1/13] · #1190 by @eneskirca
  • windows — Session-host observability (reaper, session-memory panel, dev-server ports) [2/13] · #1191 by @eneskirca
  • windows — Live links and co-attach on session-host terminals (watch join, visible keyframe, pane cwd) [3/13] · #1192 by @eneskirca
  • windows — Phone relay parity for relay-only (Windows) hosts [4/13] · #1193 by @eneskirca
  • windows — Agent launch dialect wiring (prepareAgentLaunch / sessionHostExecuteLaunch) [5/13] · #1194 by @eneskirca
  • windows — Quick wins: shell recognition, transcript dir encoding, dropped-path quoting, co-attach mouse [6/13] · #1195 by @eneskirca
  • windows — Windows agent hooks and canvas/context shims for PowerShell-based agents [7/13] · #1196 by @eneskirca
  • windows — Managed accounts on Windows (Codex login and identity, symlinks, Claude link paths) [8/13] · #1197 by @eneskirca
  • windows — Native SSH transport parity (port forward, agent forward, ProxyCommand, Pageant, ssh.exe, download names) [9/13] · #1198 by @eneskirca
  • windows — Dev tools on Windows (run configs, setup scripts, worktree paths, publish fallback, commit agent) [10/13] · #1199 by @eneskirca
  • windows — Desktop polish (title bar, clipboard files, mic consent, reveal label, trackpad routing, wallpaper) [11/13] · #1200 by @eneskirca
  • windows — Windows tray, background mode and notification identity [12/13] · #1201 by @eneskirca
  • windows — Passive update notice for the unsigned Windows beta [13/13] · #1202 by @eneskirca
  • windows — desktop parity with macOS (umbrella for the 13 stacked PRs) · #1189 by @eneskirca
  • windows — P1 - Session-host scrollback and attach-seed cap (biggest Windows-only RAM win) [1/5] · #1205 by @eneskirca
  • windows — P2 - Windows session-host overhead: visibility in the memory panel, cheaper PowerShell probes, Eco on Windows [2/5] · #1206 by @eneskirca
  • windows — P3 - Hidden/tray window releases memory, plus the WebGL budget and app-wide pressure signal [3/5] · #1207 by @eneskirca
  • windows — P4 - Updater and UpdateCard UX (macOS-visible now, platform-neutral) [4/5] · #1208 by @eneskirca
  • windows — P5 - Windows update path: reach stranded 0.4.x, fix the feed, staged-host-aware Prepare, installer silent-mode safety; signing is phase B [5/5] · #1209 by @eneskirca
  • keep-awake — let the machine sleep on low battery or critical heat · #1203 by @eneskirca
  • chat — Copy button on every code block in the ⌘M chat view · #1217 by @probertson
  • chat — focus the composer when the ⌘M chat view opens · #1163 by @probertson
  • settings — Markdown font family and size · #1164 by @probertson
  • auto-scroll the tab strip and sessions sidebar while dragging · #1188 by @ezwep
  • canvas — quick ways past the canvas lock (#1130) · #1167 by @probertson
  • run — switch a running Flutter app between checkouts without rebuilding · #1174 by @Senzaiken
  • kanban — show a held launch on the board and start it with ▶ · #1183 by @gor3a
  • links — nodeterm://open links from other apps, behind a feature flag (off by default) · #1212 by @Senzaiken
  • kanban — agent session actions on cards and the card modal · #1185 by @gor3a
  • canvas — choose per project which agent actions skip the confirm dialog · #1181 by @priitkustala
  • keybindings — commands for the zone thirds and quarters · #1219 by @eneskirca
  • appearance — option to hide the model & context meter · #1222 by @eneskirca
  • appearance — solid backing for sticky notes and group frames · #1231 by @eneskirca
  • node — Simulator node: live iOS and Android screens on the canvas, inline in run nodes · #1177 by @Senzaiken
  • pause — pause a whole project, group or selection — including sessions not on screen · #1184 by @gor3a
  • agents — Cursor Agent CLI as a builtin agent · #1128 by @builtbyd3v

Improved

  • Mobile parity: push eventId (Google Play license source already on main) · #1213 by @eneskirca
  • Codex hook trust: sandbox HOME in tests, repair trust at launch, decoded TOML keys · #1139 by @FabricioCasali

Fixed

  • terminal — size an emoji followed by VS16 as two cells, like the writer does · #1182 by @priitkustala
  • windows — hook process cost, inherited session markers, pane-read budget and Codex trust key · #1180 by @priitkustala
  • style sticky-note tables and honour board --project (#1179) · #1220 by @eneskirca
  • pty — spawn the local tmux client from a stable dir, not the node's cwd · #1221 by @eneskirca
  • pty — let only one DA answer per query reach a shared tmux client · #1223 by @eneskirca
  • launch — claim held launches in the core so two viewers never type one twice · #1224 by @eneskirca
  • integrations — never grandfather a fresh install on a later boot · #1226 by @eneskirca
  • usage — back off after a Codex usage 429 and keep the last good numbers · #1227 by @eneskirca
  • agents — no NEEDS YOU for a codex PermissionRequest under its auto-reviewer · #1228 by @eneskirca
  • canvas — type link notes only into an idle agent at an empty prompt (#1144) · #1229 by @eneskirca
  • browser — settled scroll readout, +N scroll, unknown flags refused, full-page screenshot as one viewport · #1230 by @eneskirca
  • canvas — keep cursor-less new nodes inside the visible canvas · #1233 by @eneskirca
  • usage — tell a Grok 401 that starting a Grok session refreshes credentials · #1234 by @eneskirca
  • terminal — Shift+Cmd click opens a file link after a click elsewhere · #1235 by @eneskirca
  • opencode — load the status plugin on OpenCode 2.x without breaking 1.x · #1239 by @eneskirca
  • windows — derive the Windows pane-probe budget from the probe worker's deadlines · #1225 by @eneskirca
  • codex — identify shared-daemon hooks by their payload thread · #1232 by @eneskirca
  • ssh — route an SSH project's nodes by the project, never spawn them locally · #1238 by @eneskirca
  • hooks — only the pane's foreground claude speaks for a node (#1112, #1153) · #1236 by @eneskirca
  • settings — stop the Team seats section crashing on render · #1243 by @eneskirca
  • terminal — keep xterm viewport scroll in sync across CSI 3 J redraws and renderer swaps · #1242 by @FabricioCasali
  • ssh — fall back to a loopback TCP hook tunnel when the unix socket is unusable · #1246 by @desdelinux
  • chat — Chat view fixes — select and copy message text, keep the view across project switches · #1247 by @danny-acv2
Internal changes (8) — tests, refactors, chores, dependency bumps
  • pty — stop the #914 session-host test timing out on Windows CI [6/6] · #1210 by @eneskirca
  • pin the clock past the strict node-identity cutoff · #1214 by @eneskirca
  • markdown — visible gridlines on rendered tables · #1166 by @probertson
  • readme — make the downloads badge live · #1165 by @eneskirca
  • deps — bump source-map-js from 1.2.1 to 1.2.2 · #1147 by @dependabot[bot]
  • deps-dev — Bump the dev-dependencies group across 1 directory with 5 updates · #1204 by @dependabot[bot]
  • release — describe what v0.4.4 actually ships · #1241 by @eneskirca
  • release — the three features that landed after the v0.4.4 notes were written · #1244 by @eneskirca

New contributors

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.4.3...v0.4.4

node-terminal_0.4.4_amd64.deb (137 MB) · nodeterm-0.4.4-arm64.dmg (165 MB) · nodeterm-0.4.4.AppImage (179 MB) · nodeterm-0.4.4.dmg (172 MB) · nodeterm-Setup-0.4.4.exe (149 MB)

v0.4.3 2026-10-09

Highlights

If you use hold-to-talk dictation, take this release. A support report traced a bug that had been there for many versions: after a short Cmd+Alt tap — or any Cmd+Opt shortcut, or the window simply losing focus — the microphone could stay open and keep typing into your selected terminal, one line every couple of minutes for about ten minutes. Sometimes what it typed was speech from the user's meetings. Opening a microphone is asynchronous, and the overlay could close before the capture handle existed, so the cleanup found nothing to cancel and the capture lived on alone.

A run node. VS Code's "Run Without Debugging" for any .vscode/launch.json configuration, as a node on the canvas: pick a folder, a configuration or compound, and for Flutter a device, then Run / Stop / Restart — with hot reload, hot restart and reload-on-save. It is under New view ▸ New run configuration (⌘K: "New run configuration"). Several run nodes can live in one project, each pointed at a different checkout and simulator, which is the case it was built for.

Canvas and window handling. Terminals resize from every edge with Liquid Glass on, the grab zone is wider, and a hovered terminal now keeps the keyboard after the pointer leaves — sloppy focus, the way a tiling window manager does it.

Live links get a Figma-style create dialog, and Billing & invoices opens the Stripe customer portal, so a desktop buyer can fetch their own invoice.

Smaller, but you will meet them: every agent confirmation now offers "don't ask again for agents in this project"; writing agent config asks first, and skills replace the old AGENTS.md marker blocks; chat-view prompts arrive as typed text instead of a paste; bulk agent restarts stream their progress with bounded concurrency; arrange can work by lineage and inside a group; and the shared GPU renderer draws strikethrough.

New

  • canvas — arrange by lineage, and arrange inside a group · #836 by @FabricioCasali
  • integrations — ask before writing agent config; skills replace AGENTS.md blocks · #1107 by @eneskirca
  • terminal — bound concurrency and stream progress for bulk agent restarts (#849) · #1111 by @Abhirup0
  • canvas — run node — VS Code launch.json "Run Without Debugging" on the canvas · #1118 by @Senzaiken
  • chat — send chat-view prompts as typed text, not a paste (carries #1103) · #1125 by @eneskirca
  • glyphgrid — render strikethrough (SGR 9) in the Shared GPU renderer · #1142 by @probertson
  • license — Billing & invoices button → Stripe customer portal · #1160 by @eneskirca
  • kanban — card menu and modal offer the node's own actions, from one shared builder · #1158 by @gor3a

Improved

Fixed

  • relay — a phone attach never spawns an SSH project's node locally · #1126 by @eneskirca
  • share — plain installer log; a failed install says it failed · #1121 by @eneskirca
  • palette — tell a team tab apart from the SSH project it was shared from · #1122 by @eneskirca
  • canvas — resize from every edge with Liquid Glass on, a wider grab zone, and window-management fixes · #1154 by @iceclatterWT
  • canvas-control — every agent confirm offers "don't ask again for agents in <project>" · #1157 by @eneskirca
  • speech — hold-to-talk no longer leaves a mic recording that types into the terminal minutes later · #1159 by @eneskirca
  • canvas — keep a hovered terminal's keyboard after the pointer leaves (sloppy focus) · #1162 by @eneskirca
Internal changes (3) — tests, refactors, chores, dependency bumps
  • deps — bump zustand from 4.5.7 to 5.0.15 · #701 by @dependabot[bot]
  • install from the official Homebrew cask · #1156 by @eneskirca
  • speech — type the overlay's onClose mock so main typechecks again · #1161 by @eneskirca

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.4.2...v0.4.3

node-terminal_0.4.3_amd64.deb (137 MB) · nodeterm-0.4.3-arm64.dmg (165 MB) · nodeterm-0.4.3.AppImage (179 MB) · nodeterm-0.4.3.dmg (172 MB) · nodeterm-Setup-0.4.3.exe (149 MB)

v0.4.2 2026-10-05

Highlights

Live links grew up. v0.4.1 introduced them read-only. This release puts a Share live link button straight in the terminal node header, drops the limit on how many you can have, adds a Live chat drawer where you follow and answer a link's chat, and adds the one thing v0.4.1 could not do: a Control role that lets the other side actually type.

Control is opt-in per link and gated, because handing someone your terminal is not a small thing. A viewer needs a name plus a password you send them separately — 8 to 128 characters, or a generated 16-symbol one shown once — and it is stored only as an scrypt hash beside the link, never in the URL and never logged. Wrong guesses are throttled on your machine: one attempt every two seconds, three wrong ends that connection, ten wrong locks control until you press "Allow control again", and that count survives an app restart. What a typist sends reaches the pane rather than a tmux client, so they cannot use the tmux prefix key to wander into your other sessions.

Groundwork for the Android companion: phone pairing is now platform-neutral instead of assuming iOS.

⌘M fixes. The composer stays usable while the agent is working (and queues what you type for Claude), the output view no longer prints raw terminal control sequences at you, and the chat view falls back to the node's launch session id when it cannot resolve one on its own.

Unlimited links need the matching server, which went out on 2026-10-04. If yours is older the dialog says so rather than failing quietly.

Improved

  • Live links: a Share live link button in the terminal node header · #1119 by @eneskirca
  • Live links: a Control role, unlimited links and a Live chat drawer · #1123 by @eneskirca
  • Platform-neutral phone pairing for the Android companion · #1127 by @eneskirca

Fixed

  • md-view — drop terminal control sequences from the ⌘M output view · #1115 by @eneskirca
  • server — keep ssh2 external in server:build · #1120 by @eneskirca
  • chat — ⌘M chat view falls back to the node's launch session id · #1116 by @eneskirca
  • chat — keep the composer usable while the agent works, and queue for Claude · #1102 by @probertson
Internal changes (1) — tests, refactors, chores, dependency bumps
  • deps-dev — dev-dependencies bump (#1104) + brandPulse test fix for jsdom 30.1 · #1108 by @eneskirca

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.4.1...v0.4.2

node-terminal_0.4.2_amd64.deb (137 MB) · nodeterm-0.4.2-arm64.dmg (165 MB) · nodeterm-0.4.2.AppImage (179 MB) · nodeterm-0.4.2.dmg (172 MB) · nodeterm-Setup-0.4.2.exe (149 MB)

v0.4.1 2026-10-02

Highlights

Windows gets real SSH projects. An SSH project on Windows used to go through the system ssh binary down a POSIX-shaped path that does not exist there; it now runs over an in-process SSH transport written for it, with ProxyJump support and an opt-in way to add a passphrase-unlocked key to the Windows ssh-agent. If you work from Windows against a remote host, this is the release to take.

Live links (Pro). A read-only, expiring browser link to one terminal: you send the link, the other side watches the session live, nothing can be typed back, and it stops working when it expires.

Ports and recents. A session's dev-server ports are listed and can be forwarded over SSH, so a server running on the remote host opens in the browser on your own machine. And "Open recent" resumes a past agent conversation from its history instead of making you dig out a session id.

The ⌘M composer completes as you type — slash commands, skills and @files — and a script or a CI job can ring your paired phone through a push webhook.

Smaller, and opt-in wherever it would change a habit: custom sounds for agent alerts, per-terminal font size on Cmd/Ctrl + / − / 0, one-way context links, click-to-focus for terminal nodes, and an offer to close a project once its last session is closed. The collapsed usage pill now names the account new sessions will actually use.

New

  • phone — push webhook — let a script or CI job ring the paired phone · #1061 by @eneskirca
  • recent — "Open recent" — resume a past agent conversation from its history · #1062 by @eneskirca
  • usage — collapsed usage pill shows the "Use for new sessions" account · #1070 by @eneskirca
  • ports — show a session's dev-server ports and forward them over SSH · #1063 by @eneskirca
  • ssh — in-process SSH transport for Windows (phase 1: foundation, not wired) · #1068 by @eneskirca
  • chat — ⌘M composer completes slash commands, skills and @files · #1066 by @eneskirca
  • ssh — run SSH projects over the native transport on Windows (phase 2) · #1072 by @eneskirca
  • canvas — curated glyph icons for nodes · #973 by @ezwep
  • terminal — opt-in copy on select for selections xterm owns · #963 by @ezwep
  • ssh — ProxyJump on the Windows in-process SSH transport · #1078 by @eneskirca
  • canvas — opt-in click-to-focus for terminal nodes; make a click on a terminal focus it · #966 by @ezwep
  • ssh — add a passphrase-unlocked key to the Windows ssh-agent (opt-in) · #1080 by @eneskirca
  • live links — a Pro, read-only, expiring browser link to one terminal · #1087 by @eneskirca
  • canvas-control — group, move, arrange and align a project that is not on screen · #1085 by @FabricioCasali
  • projects — offer to close a project after its last session is closed (opt-in) · #965 by @ezwep
  • sidebar — show running/attention/unread badges per canvas frame · #835 by @FabricioCasali
  • notifications — custom sounds for agent alerts · #974 by @ezwep
  • kanban — show project name and color in card modal header · #932 by @igorschlum
  • terminal — opt-in per-terminal font size on Cmd/Ctrl + / - / 0 · #972 by @ezwep
  • context-link — one-way context links · #971 by @ezwep
  • terminal — preview linked local files in nodeterm · #810 by @igorschlum

Improved

  • Zellij as an optional local session backend (+ herdr measurement) · #1067 by @eneskirca
  • Relay host proof-of-possession: prove the host key before minting relay tokens or pushing · #1071 by @eneskirca
  • Quality-of-life improvements for Chat question card · #979 by @probertson
  • Share an SSH project with a hosted team in one step · #1096 by @eneskirca

Fixed

  • status — keep a "last seen" clock across an app restart · #1060 by @eneskirca
  • status — confirm grok NEEDS YOU from events.jsonl; confirm claude image paste · #1065 by @eneskirca
  • codex — keep nodeterm Codex sessions out of Codex's auto-started shared daemon · #1064 by @eneskirca
  • naming — Name with AI uses the node's Claude account; never titles a node with a CLI error · #1069 by @eneskirca
  • usage — keep each provider's account, meters and action in one block · #970 by @ezwep
  • sidebar — cut a long project name to one line in the sessions sidebar and on the welcome screen · #939 by @ezwep
  • chat — render Claude Code's injected records as chips, not the user's bubbles · #1079 by @eneskirca
  • chat — summary-only task-notification reads as finished; README states the allowlist · #1083 by @eneskirca
  • control — name every agent's state in list · #1086 by @FabricioCasali
  • messaging — queue a send to a node whose launch is still held · #1084 by @FabricioCasali
  • hook-server — read a native Windows curl's code-page escapes instead of failing silently · #1082 by @FabricioCasali
  • usage — make ⟳ re-read the other providers past their debounce · #926 by @ezwep
  • projects — cap project names at 100 characters · #954 by @ezwep
  • terminal — link a path an agent wrapped under a hanging indent (narrowed #962) · #1089 by @eneskirca
  • windows — updates no longer block on the session host — staged host runtime + in-app Prepare for update (#829) · #1093 by @eneskirca
  • subagents — decay subagent cards from their last activity, not their start · #989 by @ezwep
  • restart — quit codex with two Ctrl-Cs instead of typing /quit · #927 by @ezwep
  • restart — quit claude with three Ctrl-Cs instead of typing /exit · #942 by @ezwep
  • restart — quit grok, opencode and copilot with Ctrl-Cs too · #952 by @ezwep
  • welcome — two-column lists aligned with the card row · #1097 by @eneskirca
  • canvas — keep a focused node clear of a pinned side panel · #958 by @ezwep
  • settings — Settings blanks once Dispatch agents is on (TDZ on repository) · #1106 by @eneskirca
  • node-identity — mint node tokens on a Linux desktop with no keyring · #1105 by @eneskirca
  • chat — render single line breaks and quotes as Claude Code does · #1098 by @probertson
  • chat — show prompts typed while a turn was running · #1099 by @probertson
  • chat — never send into Claude Code's own dialogs from the ⌘M view · #1101 by @probertson
  • chat — show a finished reply without reopening the view · #1100 by @probertson
Internal changes (12) — tests, refactors, chores, dependency bumps
  • deps — bump the production-minor-patch group across 1 directory with 3 updates · #984 by @dependabot[bot]
  • performance method and rules, and the Windows SSH transport · #1077 by @eneskirca
  • ssh — ProxyJump and the Windows ssh-agent rule · #1081 by @eneskirca
  • deps — bump lucide-react to 1.48.0 with our own GitHub glyph · #1076 by @eneskirca
  • readme — Founding Sponsor section with ten logo spots · #1092 by @eneskirca
  • remove three sources of random CI failures · #1091 by @FabricioCasali
  • readme — sell the Founding Sponsor spots through Stripe · #1094 by @eneskirca
  • windows — fix the #829 shutdown and preflight tests on real Windows CI · #1095 by @eneskirca
  • pty — stop pty-project-settings waiting on the remote spawn gate · #947 by @Temikus
  • skip electron-rebuild in the quality jobs · #694 by @Temikus
  • deps-dev — bump vitest from 4.1.11 to 5.0.1 · #833 by @dependabot[bot]
  • deps-dev — Bump undici from 6.28.0 to 6.29.0 · #1074 by @dependabot[bot]

New contributors

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.4.0...v0.4.1

node-terminal_0.4.1_amd64.deb (137 MB) · nodeterm-0.4.1-arm64.dmg (165 MB) · nodeterm-0.4.1.AppImage (178 MB) · nodeterm-0.4.1.dmg (171 MB) · nodeterm-Setup-0.4.1.exe (149 MB)

v0.4.0 2026-09-30

Highlights

The kanban board runs work now. Drag an issue card into a dispatch column and it starts its own agent run. A board comment that @mentions a session reaches that agent. An orchestrator's card shows its team's progress instead of repeating facts you have already read, and agents can read the board's GitHub lane themselves through new read-only issues and prs verbs. Orchestration state also survives an app restart, --after-pr holds a node's launch until a pull request passes checks or merges, and --run-now starts a queued node headless.

⌘M is no longer Claude-only. The chat view now works for Gemini — on the desktop and on the phone over the relay — and for Codex, Copilot, opencode and Grok on SSH hosts. Antigravity joins the agent list too.

A team can be hosted from a Server Edition core, joinable by invite code, so the machine holding the session no longer has to be running the desktop app.

Clicking a path in terminal output got serious. Unicode, bracketed, spaced and bare paths and file:// URIs are all detected; a relative path resolves against the pane's live cwd; hovering shows you the resolved path before you commit to the click; Shift+Cmd/Ctrl+click opens it with the OS app; and "could not check" is no longer reported to you as "file not found". There is also a new file-manager node — click selects, double-click opens, type-ahead finds.

Smaller, but you will meet them: a Figma-style Update button in the title bar, a minimize button on the minimap, crisp WebGL text when zoomed in on a low-DPI display, and on a project switch the terminals you can actually see attach first.

New

  • mobile-chat — relay chat verbs + golden fixtures for the phone chat view (desktop half) · #981 by @eneskirca
  • mobile-chat — carry the resolved session id on the chat.page reply · #982 by @eneskirca
  • mirror — advertise custom agents to the phone (derived, credential-safe binaries) · #988 by @eneskirca
  • agents — Antigravity CLI (agy) as a builtin agent, with a hook that cannot deny tools · #799 by @FabricioCasali
  • canvas — minimize button on the minimap · #996 by @eneskirca
  • antigravity — brand icon, and list it above Gemini · #998 by @eneskirca
  • canvas — file-manager node — click selects, double-click opens, type-ahead · #1002 by @eneskirca
  • chat — ⌘M chat view for gemini (desktop + phone over relay) · #1006 by @eneskirca
  • chat — ⌘M chat view for codex, copilot, opencode + grok on SSH hosts · #1007 by @eneskirca
  • core — headless launcher with echo-verified delivery; Server Edition opens use it (#925, 1/2) · #1009 by @eneskirca
  • control — --run-now and run start queued nodes headless (#925, 2/2) · #1010 by @eneskirca
  • relay — host a team from a Server Edition core, joinable by invite code · #1011 by @eneskirca
  • kanban — team progress on an orchestrator's card, and no repeated facts · #1020 by @eneskirca
  • control — --after-pr holds an open until a pull request passes checks or merges · #1019 by @eneskirca
  • kanban — a board comment that @mentions a session reaches that agent · #1022 by @eneskirca
  • file-links — hover shows the resolved path; Shift+Cmd/Ctrl+click opens with the OS app · #1029 by @eneskirca
  • file-links — detect Unicode, bracketed, spaced and bare paths and file:// URIs · #1031 by @eneskirca
  • updates — Figma-style Update button in the title bar · #1046 by @eneskirca
  • kanban — board dispatch — an issue card you move into the dispatch column starts its own agent run · #1051 by @eneskirca
  • control — orchestration state survives an app restart · #1054 by @eneskirca
  • control — read-only issues and prs verbs, the board's GitHub lane for agents · #1058 by @eneskirca

Improved

  • Kanban board: lifecycle categories, top-insert moves, status chips, log folding, keyboard · #999 by @eneskirca
  • GitHub sync foundation: free idle polling, rate budget, throttled ≠ signed out, safer writes · #1001 by @eneskirca
  • Start an agent from a GitHub issue card (reference-only launch, live binding chips, run history) · #1000 by @eneskirca
  • Kanban board: rank strings, saved views, handoff pings · #1004 by @eneskirca
  • Kanban: PR cards show CI and mergeability; PRs link to issues and session cards · #1008 by @eneskirca
  • Kanban: start an issue's agent in its own worktree, one click · #1021 by @eneskirca
  • Tell the orchestrator, once, when a station it opened stops · #1017 by @eneskirca
  • Canvas control: a retried open does not open a second node (--request-id) · #1027 by @eneskirca
  • Claude subagent cards from its own SubagentStart/SubagentStop hooks · #1032 by @eneskirca
  • Canvas control: name the request id on a timeout, and finish late answers (review follow-ups to #1027) · #1033 by @eneskirca
  • Canvas control: --after-success waits for a station to report success, not just end its turn · #1034 by @eneskirca
  • Canvas control: --after-success counts a report only once new work has LANDED (review fixes for #1034) · #1042 by @eneskirca
  • Omni Kanban: live active lane, modal wiring, per-lane session; Omni as a board scope · #1041 by @eneskirca
  • Shared canvas authority: hosted cores persist shared canvas edits, with edge and board sync · #1056 by @eneskirca
  • canvas — bound the unread glow, minimap beats and waiting-rope flow · #1050 by @eneskirca
  • ssh — on-screen terminals attach first on a project switch · #1057 by @eneskirca

Fixed

  • ssh — treat a not-yet-created transcript as idle in the remote context tail · #977 by @eneskirca
  • terminal — hide the SSH chip when it only repeats the project's host · #978 by @eneskirca
  • editor — let Space and arrow keys reach the Monaco editor node · #964 by @ezwep
  • chat — ⌘M never reads a remote node's transcript from this machine · #987 by @eneskirca
  • chat — bind ⌘M answer cards to the request the thread was read for · #990 by @eneskirca
  • chat — render /model and ! commands as one tool chip; keep meta turn prompts · #991 by @eneskirca
  • ssh — push an agent-state edge to the host at once, not after the 2 s throttle · #993 by @eneskirca
  • mirror — keep a node's session identity past the 6 h state expiry · #994 by @eneskirca
  • mirror — seed known session ids at boot so idle sessions show on the phone · #995 by @eneskirca
  • canvas-control — open nodes into free cells, never onto one spot · #997 by @eneskirca
  • usage — keep the last good numbers through a failed read; name HTTP 429 · #1005 by @eneskirca
  • uninstall — look for the desktop's data under node-terminal, not nodeterm · #1013 by @eneskirca
  • keep canvas control fallback on its owning instance · #911 by @eneskirca
  • ssh — a remote write never leaves a truncated file · #1016 by @eneskirca
  • kanban/github — clear the review follow-ups from the issues-on-kanban round · #1015 by @eneskirca
  • bound the control/context endpoint walk and take the owner token from the primary only · #1018 by @eneskirca
  • control — spill long prompts on the --project and cold-open paths too · #1014 by @eneskirca
  • file-links — resolve relative paths against the pane's live cwd, toast on a miss · #1024 by @eneskirca
  • file-links — "could not check" is never "file not found" · #1030 by @eneskirca
  • ssh — keep an SSH host's agent shims, skills and instruction blocks current · #1028 by @eneskirca
  • accounts — move an account's sessions all at once, and survive a project switch · #1026 by @eneskirca
  • relay — keep relay pty output out of local terminals · #1035 by @eneskirca
  • relay — removing a device revokes its relay trust; split pin stores by role · #1036 by @eneskirca
  • terminal — crisp WebGL text when zoomed in on low-DPI displays · #992 by @ezwep
  • security — make pendingLaunch a machine-local exec field · #1038 by @eneskirca
  • relay — a relay tab never makes the guest dial SSH · #1040 by @eneskirca
  • relay — make a project-scoped relay session an actual boundary · #1037 by @eneskirca
  • canvas — zoom flicker (tile memory) and an idle re-render loop · #1047 by @eneskirca
  • agents — end an interrupted Claude turn from the transcript marker · #1053 by @eneskirca
  • control — plain --after waits for handed-over and background work, not a stale done · #1052 by @eneskirca
Internal changes (8) — tests, refactors, chores, dependency bumps
  • antigravity — why there is no chat view yet, and the capture that unblocks it · #1003 by @eneskirca
  • mirror — pin the clock in the seeded-entry age test (flaky) · #1025 by @eneskirca
  • fakePlatform's temp dirs no longer outlive the run · #1039 by @eneskirca
  • canvas-sync's userDataDir lives under the run root · #1043 by @eneskirca
  • stop the suite leaving temp directories behind · #1044 by @eneskirca
  • relay-host — stop the scoped-guest root leaking (main CI red) · #1045 by @eneskirca
  • give jsdom suites jsdom's localStorage on Node 25+ · #1048 by @eneskirca
  • pendingLaunch — behavioural tests for the owner and relay trust paths · #1049 by @eneskirca

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.3.17...v0.4.0

node-terminal_0.4.0_amd64.deb (136 MB) · nodeterm-0.4.0-arm64.dmg (164 MB) · nodeterm-0.4.0.AppImage (178 MB) · nodeterm-0.4.0.dmg (171 MB) · nodeterm-Setup-0.4.0.exe (148 MB)

v0.3.17 2026-09-27

Highlights

Update for this one: a project switch could overwrite a canvas with another project's nodes. It happened in the field on 2026-09-26 — the 7 nodes of an SSH project replaced the 18 nodes of a local one, and the next autosave wrote that to .nodeterm/project.json. The guard meant to stop it compared the canvas against a tag saying which project's nodes it held, but the tag and the nodes were set on different React lanes, so for a moment a render paired the new project's tag with the old project's nodes, and every commit in that window passed: a switch, an autosave, a launch write. Both now move in the same tick. If a project's node list already looks wrong, restore it from git — .nodeterm/project.json is a committed file, which is exactly why it is recoverable.

Two new right-click menus. Links in terminal output have one, so a URL or file path an agent printed is no longer reachable only by Cmd/Ctrl+click, and the file-manager node's menu gained Download.

Relay reconnection stops hammering. v0.3.15's backoff cut host-token 429s from about 15% to about 1%; two remaining loops are now closed. A host whose relay WebSocket fails while the API is still answering backs off instead of retrying at round-trip speed, and token refresh is timed against the server's clock instead of the local one, so a skewed machine clock no longer drives it.

New

  • canvas — Download in the file-manager node's right-click menu · #960 by @eneskirca
  • terminal — right-click menu on links in terminal output · #968 by @eneskirca

Fixed

  • canvas — a project switch could write the previous project's nodes into the new one · #967 by @eneskirca
  • relay — back off when the relay drops an idle listener; time token refresh on the server clock · #969 by @eneskirca
Internal changes (1) — tests, refactors, chores, dependency bumps
  • readme — replace every README video with new renders · #961 by @eneskirca

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.3.16...v0.3.17

node-terminal_0.3.17_amd64.deb (136 MB) · nodeterm-0.3.17-arm64.dmg (164 MB) · nodeterm-0.3.17.AppImage (178 MB) · nodeterm-0.3.17.dmg (171 MB) · nodeterm-Setup-0.3.17.exe (148 MB)

v0.3.16 2026-09-26

Highlights

The ⌘M chat view answers back. You can approve a plan — accept-edits or manual — send one back for revision, and pick AskUserQuestion options, all from the chat view, without a keystroke going into the terminal pane. It rides the existing PermissionRequest hook channel. The same change fixes a silent no-op that was worse than it looked: the node header's ✓ Approve, and the phone's allow, did nothing on a plan, because Claude Code drops a bare allow for tools that require interaction — the answer has to carry the updated input with it.

And it reads like a conversation. The panel gained a claude.ai-style thread — user bubbles, unbubbled assistant text, a turn action row — and a real composer with file attach, dictation, and model · effort labels. A working indicator and live refresh show the agent answering, and a long transcript now loads in pages instead of making you wait for the whole file.

It also got cheaper to leave open. CPU and GPU drop during camera moves, animations, polling and autosave: the viewport raster scale freezes while the camera moves, the minimap projects transform-only, the working glow settles after four pulses, SSH transcript tails back off while a transcript is idle, and scrollback snapshots are paced and skipped when unchanged. A co-attach joiner no longer loses tmux's alternate screen, and links inside rendered markdown can no longer navigate the app window away from your canvas.

One note for existing installs: the managed hook script updates to revision 5, and its PermissionRequest entry gets an explicit timeout: 600 — without it a plan or question cannot be held open long enough for you to answer it.

New

  • chat-view — working indicator + live refresh while the agent answers · #953 by @eneskirca
  • chat-view — approve plans and answer AskUserQuestion from nodeterm (hook-reply) · #955 by @eneskirca
  • chat-view — claude.ai-style composer (+ attach, model·effort, mic) and thread · #957 by @eneskirca

Improved

  • fix joiner alt-screen loss and cut CPU/GPU on camera moves, animations, polling and autosave · #950 by @eneskirca

Fixed

  • markdown — rendered-markdown links never navigate the app window · #943 by @eneskirca
  • chat — ⌘M chat composer never types into a TUI dialog or a bare shell; UX fixes · #944 by @eneskirca
  • md-view — ⌘/Ctrl+M in the Server Edition; consistent multi-select toggle · #945 by @eneskirca
  • md-view — readable terminal output, focus/freshness lifecycle, and the ⌘M view in the card modal · #946 by @eneskirca
  • chat-view — fast ⌘M chat panel — paged transcript, loading states, tool-row layout, ⌘M hint · #949 by @eneskirca
  • chat-view — show plan-mode plans and AskUserQuestion questions in the ⌘M chat · #951 by @eneskirca

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.3.15...v0.3.16

node-terminal_0.3.16_amd64.deb (136 MB) · nodeterm-0.3.16-arm64.dmg (164 MB) · nodeterm-0.3.16.AppImage (178 MB) · nodeterm-0.3.16.dmg (171 MB) · nodeterm-Setup-0.3.16.exe (148 MB)

v0.3.15 2026-09-25

Highlights

Fixes only — and the two that matter most happen when your Mac comes back.

Waking from sleep. An open SSH project's terminals used to show their last screen and then take no input for about a minute — measured at 74 seconds — while agent badges sat on RUNNING. Sleep kills the connection but leaves the local ssh master process alive, and ssh -O check asks that master about itself, so it cheerfully answered "Master running" and the wake pass did nothing. It now makes a real round trip over each master and drops one that cannot answer, so the project reconnects instead of freezing. Relatedly, a single slow tunnel probe no longer flashes "lost verified connection" when nothing was lost.

Coming back from another Space. Swipe away with four fingers, click something over there, swipe back — and the canvas was stuck in pan mode: scrolling over a terminal panned the canvas and clicking did not focus it, until you pressed Escape. The Cmd/Ctrl latch behind the hover guard now reads the state the OS reports on the next mouse event, so the first movement after you return corrects it. Cmd+wheel zoom over a terminal is unchanged.

Also: ~/-prefixed paths in terminal output are Cmd/Ctrl+clickable like absolute ones, so an agent mentioning ~/.claude/settings.json hands you a link; and a relay host-token mint that gets refused now backs off instead of re-minting in a tight loop.

Fixed

  • ssh — drop a half-dead ControlMaster on wake instead of trusting -O check · #935 by @eneskirca
  • canvas — a lost Cmd/Ctrl keyup no longer strands terminals behind the hover guard · #936 by @eneskirca
  • ssh — don't flash "lost verified connection" on one slow tunnel probe · #934 by @eneskirca
  • terminal — make ~/ paths in terminal output Cmd/Ctrl+clickable · #937 by @eneskirca
  • relay — a refused host-token mint backs off instead of re-minting in a tight loop · #938 by @eneskirca

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.3.14...v0.3.15

node-terminal_0.3.15_amd64.deb (136 MB) · nodeterm-0.3.15-arm64.dmg (164 MB) · nodeterm-0.3.15.AppImage (178 MB) · nodeterm-0.3.15.dmg (171 MB) · nodeterm-Setup-0.3.15.exe (148 MB)

v0.3.14 2026-09-25

Highlights

Liquid Glass. Settings → Appearance has a fourth option beside Follow terminal / Dark / Light: windows, menus, the sidebar, the dock, Settings and the kanban board all become frosted glass, with a wallpaper behind the canvas (on a Mac it can read your own system wallpapers), a Clear → Tinted slider whose "Readable" mark shows where text stays legible over any wallpaper, and switches for the grid dots and for keeping blur while you pan. It is off by default — change nothing and the only difference is a colour clean-up: duplicate shades merged, "needs you" dots always red, and a few light-theme text colours made easier to read. macOS Reduce Transparency, Increase Contrast and Reduce Motion are respected.

Persistent agent sessions on Windows now actually persist: they run through the session host, so they survive a restart instead of quietly becoming plain shells. The macOS and Windows packages also ship the Codex relay, which was missing from both.

Two ways of losing work quietly are closed. A restart no longer gives up on an agent CLI that is slow to quit — it keeps watching and hands over the resume line — and opening a new agent on an SSH project no longer waits on the connection before typing the launch, so a node's first open stops showing a QUEUED chip it never needed.

Smaller, but you will notice them: Codex sessions over SSH now show their usage and context meter, ⌘K ranks matches before the 50-row cap instead of after it, so the result you wanted stops falling off the end of the list, and the phone gets an answer to every size report on a shared session.

New

Fixed

  • skip empty Codex mascot frames on every loop · #910 by @eneskirca
  • build — ship the Codex relay in the macOS and Windows packages · #839 by @FabricioCasali
  • context-link — bound the opencode export and refuse an option-like session id · #820 by @FabricioCasali
  • session-host — size a shared session to its most recently active viewer (#914) · #920 by @eneskirca
  • canvas-control — skill trigger no longer claims in-process subagent requests (#917) · #922 by @eneskirca
  • relay — answer every phone size report on a session-host session (#914) · #921 by @eneskirca
  • restart — keep watching a CLI that is slow to quit, and hand over the resume line · #919 by @eneskirca
  • palette — rank ⌘K results before the 50-row cap · #924 by @eneskirca
  • windows — make persistent agent sessions use the session host · #916 by @TashiikiD
  • launch — don't wait on SSH before typing a new agent's launch; no QUEUED chip on first open · #931 by @eneskirca
  • windows — scope #916's fresh-launch probe skip to the session host; single PATH key · #929 by @eneskirca
Internal changes (1) — tests, refactors, chores, dependency bumps
  • windows — give remote-atomic-write's real-shell cases a Windows-sized budget · #838 by @FabricioCasali

New contributors

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.3.13...v0.3.14

node-terminal_0.3.14_amd64.deb (136 MB) · nodeterm-0.3.14-arm64.dmg (164 MB) · nodeterm-0.3.14.AppImage (178 MB) · nodeterm-0.3.14.dmg (171 MB) · nodeterm-Setup-0.3.14.exe (148 MB)

v0.3.13 2026-09-23

Highlights

This supersedes the incomplete v0.3.10–v0.3.12 prereleases and is the urgent macOS compatibility release for v0.3.9. The bundled tmux in v0.3.9 could crash at startup on older macOS versions, leaving terminals unable to start for users without a separately installed tmux. The rebuilt binary uses private bundled compatibility functions instead of newer-SDK-only system symbols, and the release build rejects unguarded weak imports before they can ship.

This release also includes the account controls and reliability improvements merged since v0.3.9, including local and SSH account switching, configurable terminal parking, browser zoom, and fixes across agent approvals, retained launches, hooks, context links, Windows updates, and editor UI.

New

  • canvas — group the node menu — Transfer ▸ and Restart ▸ submenus · #881 by @eneskirca
  • canvas — move Switch model / account out of Restart ▸ · #884 by @eneskirca
  • terminal — configurable park window + cap, remote parks evicted last (#886) · #891 by @eneskirca
  • onboarding — add a shortcuts step to the setup tour · #895 by @eneskirca
  • kanban — phone can label sessions via projects.editCardLabels · #855 by @eneskirca
  • terminal — raise default park window 5 -> 10 min (#886) · #901 by @eneskirca
  • browser — page zoom for web and browser nodes · #837 by @FabricioCasali

Improved

  • Switch a running Claude node to another logged-in account (no /login) · #857 by @eneskirca
  • Accounts settings: one machine-grouped surface for Claude and Codex, with real SSH support for both · #887 by @eneskirca
  • Switch Claude accounts on SSH project nodes too · #879 by @eneskirca
  • Account switch: bulk-move from the usage popover, and from kanban card menus · #889 by @eneskirca
  • Switch a running Codex node's account on an SSH host · #902 by @eneskirca

Fixed

  • codex — gate the approval mapping on the CLI's own vocabulary (#785) · #846 by @eneskirca
  • accounts — persist Codex scope before opening login terminal · #856 by @eneskirca
  • persistence — warn when local session protection is unavailable · #859 by @eneskirca
  • ssh — bound transcript polling and back off failed reads · #862 by @eneskirca
  • control — require verified identity for terminal commands (#653) · #858 by @eneskirca
  • terminal — explain macOS screenshot paste routes · #874 by @eneskirca
  • license — explain the App Store pairing route before checkout · #875 by @eneskirca
  • claude — preserve user settings during hook installation · #860 by @eneskirca
  • context — honor verified Claude session window overrides · #863 by @eneskirca
  • usage — keep refresh clear of the dock at laptop widths · #876 by @eneskirca
  • usage — show failed Claude usage reads · #877 by @eneskirca
  • control — retain pending launches and stop implying agent startup succeeded · #865 by @eneskirca
  • usage — name Claude in the account switch action · #883 by @eneskirca
  • tabbar — preserve window dragging when project tabs scroll · #890 by @eneskirca
  • editor — prevent Monaco layers bleeding into Markdown preview · #893 by @eneskirca
  • git — refresh session branch headers after Source changes · #894 by @eneskirca
  • windows — guard updates against live persistent sessions · #868 by @eneskirca
  • canvas — keep maximized nodes clear of top controls and dock · #873 by @eneskirca
  • link — explain project-scoped endpoint refusals · #878 by @eneskirca
  • terminal — keep fitted rows inside the padded node body · #885 by @eneskirca
  • hooks — preserve endpoint ownership across local servers and SSH tunnels · #869 by @eneskirca
  • usage — explain Grok billing failures without exposing credentials · #882 by @eneskirca
  • context-link — publish live links without render starvation · #870 by @eneskirca
  • phone — retain bounded SAS consent across browse disconnects · #861 by @eneskirca
  • minimap — exclude keep-alive ghosts from drawing and bounds · #892 by @eneskirca
  • usage — show the active Claude organization per account · #880 by @eneskirca
  • recover subagent cards and correct input/media paths in #680 · #871 by @eneskirca
  • codex — refuse unsafe remote managed account launches · #872 by @eneskirca
  • agents — keep unanswered Claude questions in needs-you · #867 by @eneskirca
  • macos — bundled tmux segfaults on macOS ≤ 26 — pipe2 weak import (#896) · #903 by @eneskirca
  • windows — settle non-message text before Enter (depends on #760) · #866 by @eneskirca
  • windows — preserve idle agent messaging sessions · #760 by @FabricioCasali

Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.3.9...v0.3.13

node-terminal_0.3.13_amd64.deb (136 MB) · nodeterm-0.3.13-arm64.dmg (164 MB) · nodeterm-0.3.13.AppImage (178 MB) · nodeterm-0.3.13.dmg (171 MB) · nodeterm-Setup-0.3.13.exe (148 MB)

Older versions and full details live on GitHub Releases .