by eneskirca
Node-based terminal manager for AI coding agents — tmux-backed terminals and parallel agent sessions as draggable nodes on an infinite pan/zoom canvas. macOS, Linux, and a browser Server Edition.
# Add to your Claude Code skills
git clone https://github.com/eneskirca/nodetermLast scanned: 8/13/2026
{
"issues": [
{
"type": "npm-audit",
"message": "brace-expansion: brace-expansion: DoS via exponential-time expansion of consecutive non-expanding {} groups",
"severity": "high"
},
{
"type": "npm-audit",
"message": "tar: node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection",
"severity": "medium"
},
{
"file": "README.md",
"line": 180,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/eneskirca/nodeterm/main/scripts/ins\"",
"severity": "low"
}
],
"status": "WARNING",
"scannedAt": "2026-08-13T05:39:48.100Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}nodeterm is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by eneskirca. Node-based terminal manager for AI coding agents — tmux-backed terminals and parallel agent sessions as draggable nodes on an infinite pan/zoom canvas. macOS, Linux, and a browser Server Edition. It has 562 GitHub stars.
nodeterm returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.
Clone the repository with "git clone https://github.com/eneskirca/nodeterm" and add it to your Claude Code skills directory (see the Installation section above).
nodeterm is primarily written in TypeScript. It is open-source under eneskirca on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh nodeterm against similar tools.
No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
A node-based terminal manager — your terminals and agents on an infinite canvas.
Multiple real terminals live as draggable nodes on a single pan/zoom canvas, and every project doubles as a Trello-style board of live Claude Code sessions. Built for people with ADHD and scattered workflows: a spatial layout instead of a stack of hidden tabs.
Download · Docs · Features · Build from source · Architecture · License
Stacked terminal tabs hide context — you lose track of what's running where. nodeterm turns that into a map: every shell is a node you can place, group, label, and zoom into. Sessions are spatial and persistent, so your mental model stays intact across restarts. And because the app is built around a clean service seam, the same canvas runs three ways — as the desktop app for macOS and Linux, as a self-hosted browser app you reach from anywhere (Server Edition), and an iOS companion that attaches to the same live sessions.
📚 Full documentation lives at nodeterm.dev/docs — get started, concepts, agents, remote access, troubleshooting.
Right-click the canvas to open a terminal — or an AI agent. Each runs in its own persistent tmux session, next to sticky notes (link one to feed an agent context), Monaco editors, diff views, and web/video nodes — arranged spatially, like a map. Quit the app, even restart the machine — every session comes back.
Hook-driven status — no output scraping: pulsing RUNNING / NEEDS YOU badges, subagent cards with live transcripts, a per-node context meter, and OS notifications. Click the ping, answer the permission prompt right in the node, and get told the moment the turn is done. On a MacBook, agents live in the notch too.
Every project is a canvas — and also a kanban board. Cards are your live
sessions: drag them across columns while the agent keeps running, open a card into a
live card modal (the real session + members, due date, priority, comments), and
assign teammates. Toggle with ⌘⇧B.
▶ Watch the board video with sound
Pair your phone with one QR — scan with the nodeterm iOS app — and the same live session continues in your pocket, E2E encrypted over the relay, not just your LAN. The same canvas also runs self-hosted in any browser (Server Edition).
Hold ⌘⇧D and say it. On-device Whisper transcribes locally — review the text,
then Send (nothing auto-submits). Your voice never leaves the machine.
🖥 Terminal (xterm + tmux, AI naming) · 🤖 Agent (Claude Code / Codex / Gemini / opencode / custom) · 📝 Sticky note (link to an agent as context) · 🗂 Group (bind to a git worktree for agent-per-branch) · ✏️ Editor (Monaco, ⌘S) · 🔀 Diff · 🌐 Web / Video
claude --resume). The macOS app ships its own tmux, so this works
with nothing installed; a tmux already on your system is always used in preference to it,
and terminals opened before an upgrade stay as they were until you refresh the node.gh sign-in — backed by system git.The same canvas runs headless on a Linux (or macOS) host and is used from any browser — so your terminals, editors, source control, board, and agents live on a server you reach from anywhere. Single-user auth (password + secure cookie), a WebSocket bridge, and the exact same renderer as the desktop app.
npm run server:dev # build + serve; open http://127.0.0.1:8443 and set a password
Terminals, files/editor/diff, the full git panel, the kanban board, and agent-status
badges all work in the browser today. See docs/SERVER.md for the
quickstart, security model, and current limitations.
The same server also runs headless as a background notification host: install it on any Linux box you SSH into, and your phone gets RUNNING / NEEDS YOU push + Live-Activity coverage for the agents running there — with zero open ports (the hook server stays loopback-only and push goes out over HTTPS under a grant your phone drops over SSH).
curl -fsSL https://raw.githubusercontent.com/eneskirca/nodeterm/main/scripts/install-server.sh | bash
One line installs, builds, and runs it as a systemd service (NODETERM_HEADLESS=1); re-run it
to update. See the headless notification host
section for details.
Grab the latest build from nodeterm.dev — the download button detects your platform. Everything is also listed at nodeterm.dev/releases:
macOS — .dmg for Apple Silicon and Intel (auto-updates), or Homebrew:
brew tap nodeterm/tap
brew trust nodeterm/tap # Homebrew ≥6 refuses to load an untrusted tap
brew install --cask nodeterm
Both first lines are required. On its own, brew install --cask nodeterm only searches
homebrew/cask and reports the cask as not found; without the trust grant, Homebrew ≥6
fails rather than prompting. The cask