Projects
A project is one canvas. It has its own tab, its own set of nodes, and — usually — its own folder. This page covers how projects map to folders on disk and how they’re shared.
One canvas per project
Section titled “One canvas per project”Each project shows up as a tab in the tab bar, and each tab is a separate canvas with its own terminals and notes. A project’s folder — its working directory — is where its terminals and agents open by default, so new nodes start out in the right place.
Opening folders
Section titled “Opening folders”Open folder… picks the folder a project lives in. It dedupes: reopening a folder you’ve already opened reuses that folder’s existing project — with all its nodes — instead of minting a duplicate.
A project that has a folder stores its canvas in <cwd>/.nodeterm/project.json. That file is
the source of truth for the layout: it’s git-shareable and machine-portable, with
portable relative node paths, so the project travels with the repo.
Closing vs deleting
Section titled “Closing vs deleting”Closing a project and deleting one are very different.
Close is non-destructive. The tab is hidden, but everything stays on disk and the tmux sessions keep running — closing just detaches, like switching away. Closed projects come back from the Recently closed list on the welcome screen, and reopening reattaches the warm sessions (or cold-restores them).
Permanent deletion only happens one way: the × on a Recently closed entry. That tears down the terminals’ tmux sessions for good. There’s no other path to it, so you can’t lose a project by closing it.
Sharing a canvas via git
Section titled “Sharing a canvas via git”Because a project’s layout lives in <cwd>/.nodeterm/project.json, you share a canvas by
committing that file. A teammate who clones the repo gets your node layout along with the
code.
Edits from outside the app — a git pull, a branch checkout — are picked up automatically:
nodeterm watches the file and hot-reloads the canvas. If both sides changed (you have unsaved
edits and the file changed underneath you), you get a conflict bar to reload the incoming
version or keep yours, so a sync never silently clobbers your work.