eneskirca/nodeterm
Developer ToolsOrganizes terminals and parallel AI coding agent sessions as persistent, draggable nodes on an infinite canvas, so you can see everything at once.
Overview
nodeterm replaces a stack of terminal tabs with a spatial map. Each terminal or AI coding agent runs in its own persistent tmux session as a node on an infinite pan/zoom canvas; nodes can be moved, grouped, and labeled, and they survive app restarts and machine reboots. Sticky notes, Monaco editors, diff views, and web/video nodes share the same canvas.
It targets developers juggling several parallel agent sessions, and the README explicitly frames it for people with ADHD and scattered workflows.
Supported agents include Claude Code, Codex, Antigravity, Gemini, GitHub Copilot, opencode, Grok, Cursor, and custom CLIs. Status comes from hooks rather than output scraping: nodes show RUNNING / NEEDS YOU badges and OS notifications, and permission prompts can be answered in the node. Each project also has a kanban board whose cards are live sessions (⌘⇧B toggles it).
The same canvas runs three ways: desktop app, self-hosted browser Server Edition, and an iOS companion that attaches to the same live sessions over an encrypted relay.
Getting started
The desktop app is the shortest path for macOS and Linux users. Download from nodeterm.dev or install via Homebrew on macOS:
brew install --cask nodeterm
On Linux, use the AppImage, .deb, or .rpm package from the releases page; packages other than the AppImage update manually. After launch, right-click the canvas to add a terminal or an agent, and place nodes as you like. The setup tour covers first-run options such as keeping the machine awake while an agent works.
To run the browser build from source instead, Node 22 and tmux are required:
npm install
npm run server:dev
Open http://127.0.0.1:8443 and set a password. Terminals, files/editor/diff, the full git panel, kanban, and agent status badges work in the browser today; see the Server Edition guide for the security model and limitations. A headless notification host can also be installed on any Linux box via the install script.
For development from a checkout, Node.js 20+ on macOS or Linux is required, and a source checkout does not include the bundled tmux (run node scripts/build-tmux.mjs once on macOS, or install tmux yourself). Windows users should run bootstrap-windows.bat first.
Constraints
- Windows is beta: the installer is unsigned, updates are manual, and session continuity across restarts is still landing because Windows has no tmux. Canvas, agents, kanban, and hooks otherwise match the other platforms.
- Fedora and GCC 14+: building requires
CFLAGS=-D_GNU_SOURCEand, for packaging,rpm-buildandlibxcrypt-compat; otherwisenpm installfails while building whisper.cpp. - AppImage needs FUSE 2, which Fedora does not install by default.
- Sleep behavior: nodeterm keeps the machine awake while an agent works but cannot hold it awake through a closed lid; overnight runs need the laptop open and plugged in, or agents on a non-sleeping host via the Server Edition.
- macOS image paste:
Cmd+Vsaves a screenshot and pastes its path (or uploads it for SSH sessions), whileCtrl+Vsends a control key instead; the app does not detect clipboard-image support or retry the other route. - Server Edition uses single-user password authentication, so WebSocket access to the host should be treated accordingly.
- License: BUSL-1.1. Production use is granted, but offering nodeterm as a competing product or service, or bypassing license or usage-limit checks in production, is not. Each release converts to MIT four years after publication.
- Uninstall: a script stops nodeterm-started processes, reverts the hook/skill entries it added to agent CLIs, and deletes its state; run it with
--dry-runfirst. It keeps.nodeterm/canvas folders inside your repos.
HotRepo's take
On 2026-11-01 the repo appeared on the HotRepo daily TypeScript list at position 9, with 2,287 stars and 264 forks, gaining 49 stars that day. That is the only recorded snapshot, so it supports a fact about one day rather than a trend. The project's pitch is spatial organization rather than another tab bar: persistent tmux-backed sessions, hook-driven agent status, and a kanban view of the same live sessions. The Windows beta and dependency on tmux for the core continuity feature are the concrete limits to weigh before adopting it.
Written by AI from the project's README, updated . The project's own docs are the source of truth.