nodeterm verandert een rommelige verzameling terminaltabs in een oneindig canvas
Elke ontwikkelaar die probeert autonome AI-agenten zoals Claude Code of Codex parallel met reguliere diensten uit te voeren, loopt snel tegen hetzelfde probleem aan. Een dozijn tabs in iTerm of Warp verandert in een rommel. Het is onduidelijk waar tests zijn mislukt, welke branch op de achtergrond wordt bewerkt, en welke terminal wacht op opdrachtbevestiging.
Het nodeterm project biedt een andere kijk op de werkruimte. In plaats van lineaire tabs of splitsingen gebruikt het een oneindig canvas waar elke terminal leeft als een aparte, verplaatsbare node.
Wat zit er in het canvas
De kerngedachte is simpel: geef ruimtelijke oriëntatie aan je workflows. Je kunt backend, frontend en achtergrondagent groeperen in één cluster, en een notitie met taakherinneringen direct ernaast plaatsen.
Een node hier is niet zomaar een terminal. Je kunt op het canvas plaatsen:
- Volledige terminalsessies op basis van xterm en tmux
- AI-agentkaarten (Claude Code, Copilot, Gemini, Grok)
- Monaco code-editor met quick-save ondersteuning
- Git diff viewer en webpagine preview-vensters
- Tekst sticky notes die gekoppeld kunnen worden aan agenten voor contextdeling
Sessies gaan niet verloren wanneer je het venster sluit of het systeem herstart. Onder de motorkap onderhoudt de app een echte tmux-sessie. Op macOS wordt de client geleverd met een ingebouwde tmux binary, dus je hoeft het niet apart te installeren.
Agenten monitoren zonder output parsing
Wanneer een agent lang bezig is met code schrijven of tests uitvoeren, is het gemakkelijk om te vergeten de status te controleren. nodeterm volgt de status via systeemhooks in plaats van tekstoutput te parsen.
Als een proces gebruikersbevestiging nodig heeft, licht de kaart op met een NEEDS YOU-badge en verschijnt er een native notificatie. Op MacBooks wordt de status van actieve agenten zelfs weergegeven in het notch-gebied.
Een interessant detail: agenten binnen de app kunnen interageren met het canvas via een ingebouwde CLI. Een agent kan bijvoorbeeld een aangrenzende node aanmaken om tests uit te voeren of de build artifacts van een andere agent te controleren.
Kanban bord van live sessies
Door op Cmd+Shift+B te drukken schakelt het canvas naar Kanban bord-modus. Elke kaart op het bord blijft een werkende terminalsessie.
Je sleept een kaart van de "In Progress" kolom naar "Review", opent het in een modaal venster, en beantwoordt direct de vraag van de agent over de code. Twee-weg synchronisatie met GitHub Issues wordt ook ondersteund: taken worden naar het bord gehaald en veranderen van status wanneer ze worden verplaatst.
Toegang vanaf je telefoon en servermodus
De app is niet beperkt tot een desktop Electron-client. De architectuur is opgesplitst in een onafhankelijke core en transports, daarom werkt nodeterm in drie formaten.
- Desktop applicatie voor macOS en Linux.
- Server Edition. Hetzelfde canvas draait op een remote server zonder grafische shell en opent in een reguliere browser via WebSockets.
- Mobiele client op iOS. Je scant een QR-code op het monitorscherm, en de sessie wordt doorgestuurd naar je telefoon met end-to-end encryptie. Je kunt weglopen voor koffie en agent-prompts onderweg beantwoorden.
Spraakinvoer direct in de shell
nodeterm heeft een lokaal Whisper model ingebouwd. Als je Cmd+Alt (Ctrl+Alt op Linux) ingedrukt houdt en een lange instructie dicteert, wordt de audio direct op je CPU verwerkt.
Tekst wordt niet automatisch naar de terminal gestuurd. Eerst zie je het herkende resultaat, bewerk het handmatig als dat nodig is, en druk dan pas op verzenden. Audiodata gaat nergens over het netwerk.
Architectuur en stack
De client is geschreven in TypeScript met Electron en de React Flow bibliotheek als canvas-engine.
Ontwikkelaars hebben PTY, git en agent-operaties geëxtraheerd naar een CorePlatform interface. Het Electron-proces en het server Node-proces implementeren dezelfde interface. Dankzij dit is de webversie geen afgeslankte port — het gebruikt letterlijk dezelfde renderer interface.
Het project wordt gedistribueerd onder de Business Source License 1.1 (BUSL-1.1). Broncode is open voor persoonlijk en productiegebruik, maar verbiedt het maken van een concurrerende betaalde service op basis van nodeterm. Vier jaar na de release van elke versie schakelt de code automatisch over naar pure MIT.
Hoe het te proberen
Op macOS is de gemakkelijkste manier om de app te installeren via Homebrew:
brew tap nodeterm/tap
brew trust nodeterm/tap
brew install --cask nodeterm
Voor Linux zijn er pre-built AppImage en .deb packages beschikbaar op de repository releases pagina.
Als je een headless server op een remote machine wilt draaien, heb je alleen Node.js 22 en tmux nodig:
git clone https://github.com/eneskirca/nodeterm.git
cd nodeterm
npm install
npm run server:dev
Na het opstarten wacht de webinterface op je op http://127.0.0.1:8443.
Voor wie is nodeterm nuttig
De tool is primair gericht op ontwikkelaars die tientallen parallelle taken open hebben, werken met git worktrees, of actief stukken code delegeren naar command-line AI-agenten. Als je je meer op je gemak voelt met een klassieke minimalistische terminal die de helft van het scherm inneemt, kan het ruimtelijke canvas overdreven lijken. Maar als je het beu bent om verdwaald te raken in eindeloze tabs en tmux-vensters, kan nodeterms visuele aanpak orde scheppen in je hoofd.
Gerelateerde projecten