| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| nodeterm-0.4.5.dmg.blockmap | 2026-10-24 | 191.1 kB | |
| nodeterm-0.4.5-mac.zip.blockmap | 2026-10-24 | 182.8 kB | |
| nodeterm-0.4.5-arm64.dmg.blockmap | 2026-10-24 | 183.1 kB | |
| nodeterm-0.4.5-arm64-mac.zip.blockmap | 2026-10-24 | 176.8 kB | |
| latest-mac.yml | 2026-10-24 | 804 Bytes | |
| builder-debug.yml | 2026-10-24 | 1.7 kB | |
| nodeterm-0.4.5-arm64-mac.zip | 2026-10-24 | 168.6 MB | |
| nodeterm-0.4.5-arm64.dmg | 2026-10-24 | 175.4 MB | |
| nodeterm-0.4.5-mac.zip | 2026-10-24 | 175.5 MB | |
| nodeterm-0.4.5.dmg | 2026-10-24 | 182.3 MB | |
| latest.yml | 2026-10-24 | 345 Bytes | |
| nodeterm-0.4.5-win.zip | 2026-10-24 | 208.6 MB | |
| nodeterm-Setup-0.4.5.exe | 2026-10-24 | 159.3 MB | |
| latest-linux.yml | 2026-10-24 | 689 Bytes | |
| node-terminal-0.4.5.x86_64.rpm | 2026-10-24 | 118.3 MB | |
| node-terminal_0.4.5_amd64.deb | 2026-10-24 | 146.0 MB | |
| nodeterm-0.4.5.AppImage | 2026-10-24 | 190.2 MB | |
| README.md | 2026-10-24 | 12.4 kB | |
| v0.4.5 source code.tar.gz | 2026-10-24 | 35.0 MB | |
| v0.4.5 source code.zip | 2026-10-24 | 37.2 MB | |
| Totals: 20 Items | 1.6 GB | 0 | |
Highlights
Antigravity is a full agent. Google's agy CLI could already be launched; it now carries
nearly the whole harness — context links to other agent nodes, canvas control so it can open and
arrange nodes itself, its own model catalogue read from agy models with switching, permission
modes, the context meter, the ⌘M transcript view, cross-agent handoff and Open recent. Every leg
was measured against real agy 1.2.7 / 1.3.5 sessions and their transcripts, and the context meter
takes the window from the session's own settings rather than guessing one. /loop, /schedule,
/cron and Branch stay Claude-only.
A whiteboard is a node. New view ▸ New whiteboard (also the sidebar +, the Dock and ⌘K) puts
an Excalidraw board on the canvas: double-click to draw in a live editor over the node, a picture of
the board at rest, Present and Copy as image in the header. The drawing lives in a side file beside
the project (.nodeterm/whiteboards/). The save path is the part worth knowing: a board open in two
places refuses the stale write and offers Keep mine instead of silently replacing the other
copy, finishing waits for a save that actually succeeded rather than throwing the last strokes away,
quitting flushes what the 1.5 s autosave had not written yet, and a hosted Viewer or Commenter opens
the board read-only. Not yet run by hand on Windows, Linux, or in a browser tab.
macOS Aerial video wallpapers. Settings → Appearance → Desktop wallpaper gains an Aerials group: one Shuffle tile per Apple category plus a tile per clip you have downloaded, playing behind the canvas and the board with Liquid Glass on top. It reads macOS's own aerial files — nothing is bundled, downloaded or streamed — and the video pauses whenever the window is unfocused or hidden, because Apple's clips are 4K at 240 fps and cost about 70% of a core while they move. Off by default; Reduce Motion shows a still frame.
A live link can be read back. A viewer could not scroll at all, and that was structural: tmux paints the visible screen, and Claude's fullscreen TUI leaves no tmux history to scroll. The viewer page can now ask for the shared agent's conversation — but only the part written after the link was created, with the cutoff enforced on the host, not the page. Prompts, assistant text, tool names with a short argument and plan or question bodies travel; tool results and thinking never do. One read per viewer at a time, and a revoke made elsewhere now reaches a full link within a minute instead of five.
An agent can rebuild an exact layout. Canvas control gains resize, place, arrange --gap
and geometry in list, so eight sessions in two tight columns on a vertical monitor is a CLI call
that survives every session being replaced, instead of a drag. Sizes are clamped to each node kind's
own minimum and the reply says when it clamped; a group frame is refused, because a frame sizes
itself to what it holds.
A security audit round — five changes, and one of them had teeth. The relay handshake accepted
low-order X25519 keys, where the shared key is a public constant: a client with no secret completed
the handshake, both people saw the same short code, and a swapped host key in an offer, join code or
QR could read and inject every byte. Those keys are refused everywhere one can enter now. Separately,
a scoped Team Access guest could reach terminals outside its projects because tmux resolves a bare
target by prefix on a miss — every node id that becomes a tmux target is an exact =name target now,
and a node a guest introduces stays pending until its own spawn. The Server Edition's sign-in lockout
could be walked past by holding request bodies back; the loopback hook server refuses browser
requests before it looks at the bearer; the native SSH transport pins the host key type it recorded,
so a MITM holding only one key type is refused rather than quietly trusted; and a live-link Control
lock now lifts itself on a backoff, with the unlock sealed to a per-connection key so a password
cannot be read back out of recorded relay traffic.
Fixes you will meet. Windows terminals run on node-pty's bundled ConPTY, so fullscreen TUIs scroll properly. Removing a Claude account moves its running sessions to the system account instead of leaving them logged out mid-session. Local dictation runs on Metal in the packaged macOS app and ships an AVX2 build of whisper.cpp on Linux x64. Liquid Glass stays readable at every slider position, and the Dock's add menu stays inside short windows. A relay or team-tab terminal never starts on the wrong machine, and an agent opened from an SSH project's history or a transfer runs on the host. Sticky notes, browsers, editors, simulators and the rest get their own default node sizes, a folder project's canvas can live in app data instead of inside the repo, a session's unread dot clears when its card opens on the global board, and the Settings debug log panel — which had never rendered at all — is mounted.
New
- antigravity — full agent parity (context links, canvas control, models, permissions, usage, chat, handoff, recent) · #1215 by @FabricioCasali
- settings — per-kind default node sizes · #1280 by @eneskirca
- settings — per-kind default node sizes · #1261 by @brandonrbridges
- whiteboard node (Excalidraw) — sketch on the canvas · #1283 by @eneskirca
- whiteboard node (Excalidraw) — sketch on the canvas · #1265 by @brandonrbridges
- projects — keep a folder project's canvas in app data (#1145) · #1281 by @eneskirca
- projects — keep a folder project's canvas in app data (#1145) · #1268 by @brandonrbridges
- appearance — macOS Aerial video wallpapers · #1278 by @iceclatterWT
- live-links — viewers read back the agent's conversation since the link was shared · #1294 by @eneskirca
Improved
- Canvas control: arrange --gap, resize, place, and geometry in list (#1288) · #1290 by @eneskirca
- macos — stop idle GPU work, free GPU memory under pressure, and show the GPU process's real footprint (carries #1264) · #1292 by @eneskirca
- macos — stop idle GPU work, free GPU memory under pressure, and show the GPU process's real footprint · #1264 by @brandonrbridges
- Endpoint hardening: browser guard on the hook server, 0700 ~/.nodeterm on SSH hosts, pinned host key type in the native transport · #1296 by @eneskirca
Fixed
- windows — run terminals on node-pty's bundled ConPTY so fullscreen TUIs scroll · #1260 by @eneskirca
- accounts — move running Claude sessions to the system account before removing an account · #1263 by @eneskirca
- speech — ship an AVX2 build of whisper.cpp on Linux x64 and use more threads · #1270 by @eneskirca
- settings — mount the debug log panel, which never rendered · #1255 by @eneskirca
- ssh — agents opened from an SSH project's history or a transfer run on the host · #1266 by @brandonrbridges
- ci — unblock main's quality job (smart-whisper patch step, cursor-usage clock) · #1282 by @eneskirca
- relay and team-tab terminals never start on the wrong core · #1287 by @eneskirca
- dock — keep the add menu inside short windows · #1286 by @builtbyd3v
- glass — readable Liquid Glass at every slider position, clearer Clear · #1285 by @builtbyd3v
- kanban — clear a session's unread dot when its card opens on the global board · #1274 by @RoARanger
- speech — run local dictation on Metal in the packaged macOS app · #1284 by @builtbyd3v
- speech — start smart-whisper's model params from whisper.cpp's defaults · #1279 by @builtbyd3v
- whiteboard — keep the live editor's events out of the canvas node · #1289 by @eneskirca
- share — reopen warning no longer points at a team tab or unshare that cannot give the project back · #1293 by @eneskirca
- server — harden Server Edition sign-in (security audit S1–S8) · #1297 by @eneskirca
- relay — refuse low-order keys, SAS v2, canonical base64; pin SSH host keys from the pairing QR · #1298 by @eneskirca
- live-links — timed lock, sealed unlock, invisible-free names, 1-minute full-link poll · #1299 by @eneskirca
- relay — close what a connected relay peer can reach (audit F1–F4, presence, context) · #1300 by @eneskirca
Internal changes (4) — tests, refactors, chores, dependency bumps
- **release** — fix the two reasons verify-feed goes red on a healthy release · [#1251](https://github.com/eneskirca/nodeterm/pull/1251) by [@eneskirca](https://github.com/eneskirca) - one definition for helpers copied across the tree ([#1252](https://github.com/eneskirca/nodeterm/issues/1252) follow-up) · [#1253](https://github.com/eneskirca/nodeterm/pull/1253) by [@eneskirca](https://github.com/eneskirca) - correct three statements about the offline relay session · [#1291](https://github.com/eneskirca/nodeterm/pull/1291) by [@eneskirca](https://github.com/eneskirca) - fix three timing races that fail CI under load · [#1271](https://github.com/eneskirca/nodeterm/pull/1271) by [@FabricioCasali](https://github.com/FabricioCasali)New contributors
- @brandonrbridges made their first contribution in https://github.com/eneskirca/nodeterm/pull/1266
- @RoARanger made their first contribution in https://github.com/eneskirca/nodeterm/pull/1274
Full Changelog: https://github.com/eneskirca/nodeterm/compare/v0.4.4...v0.4.5