Commands
Branch-instance lifecycle (top-level verbs; [instance] is inferred when run
inside a workspace):
newgit init [--name <name>]/spawn <name> [--from <rev>] [--use <tracker>] [--drop <tracker>] [--private] [--json]/status [name]/remove <name> [--purge] [--keep-branch | --delete-branch]—statussays whether each instance is ready, still starting (a dev server that is not listening yet), or not ready, and whynewgit status <instance> --path— just the workspace path, for scriptsnewgit reference [section | all]— the definition format, every key and default; bare, it lists the sectionsnewgit run [instance] -- <command>— run with exports and ports loadednewgit env [instance]— the environmentrunand every hook get, each variable labeled with the declaration it came fromnewgit action <resource>.<action> [instance] [--dry-run]—--dry-runprints the rendered command and its directory, and runs nothingnewgit stop [instance] [--json]/start [instance] [--json]— stop every running long-running action and run eachsuspend, dependents first, and later bring back exactly what that took down (and anyautostartaction that died on its own); ports, workspace, trackers, and installs stay as they are. Both exit 0 with nothing to do and 1 if any resource failednewgit checkpoint [instance] [-m <msg>] [--verify]/undo [instance] [--to <id>] [--only <resource>] [--force-recompute]/checkpoints [instance]—--verifyproves the restore works by running a real undo;--onlyrestores one resource and leaves everything else alonenewgit export [instance] --to <dir> [--include <path>] [--exclude <path>]newgit export --remote <name> [--dry-run] [--force]— push the trackers'mains, history and all, to target<name>(a GitHub mirror, say), which a tracker'sexportdeclares: that tracker and every tracker inheriting its export ship, nothing elsenewgit cleanup [--dry-run] [--purge-archived]newgit ports [--check]— claimed ports, or detect a listening one nothing claimsnewgit render [--check]— resolve every[[render]];--checktests eachfindagainst the working tree without spawning, for adoption and CI
Definition management (noun subcommands):
newgit tracker create <name> [--audience <a>] [--storage <s>] [--merge-with-source]newgit tracker create <name> --git --path <path>— a tracker in Git, mounted at that path by one commit; history before it stays in whichever tracker held the filesnewgit tracker track <tracker> <path>...— trackers outside Git onlynewgit tracker remove <name>newgit tracker capture|merge|pull|checkout <tracker> [instance]newgit tracker capture <tracker> --from-store— seed a lane from the store repo's working tree, so the firstspawncomes up with the content- Capture never follows a symlink: a link that stays inside the workspace is kept as a link, as Git keeps one; a link out of the workspace, or a tracked path under a symlinked directory, is refused by name (spec)
newgit tracker list— a tree by ownership: whether it is in Git, role, priority, maintainers, and (inside a workspace) what is bound. Trackers with nopathscome after the tree, with what deposits into them and what they bring.--jsonlists every tracker withdefault_bound(what aspawnwith no--use/--dropbinds) andbound(what this instance binds,nulloutside one), named as--usetakes themnewgit tracker use <tracker> [instance]/newgit tracker drop <tracker> [instance] [--stash | --discard]— a drop parks the resources the tracker brought: taken down bysuspend(else[cleanup]), ports kept, and brought back on them by the nextuse;removetears parked ones downnewgit tracker migrate [--dry-run]— move a project laid out before mounts (aprojecttracker owning.newgit) onto roots and mounts. Recomposes every branch and checkpoint first and moves nothing unless the ids come out the same. A force push of tracker history, so run it once, after upgradingnewgit log <tracker> [instance] [-- <git log args>]— one tracker's history: an instance's branch as of its last checkpoint, or the project root'snewgit resource add <name> --template <template>/list/templatesnewgit resource remove <name> [--force]—--forcedrops it from live instances and releases their ports instead of refusingnewgit resource rebind <name> [instance]— bind it again as spawn did, after fixing a render or export that failed
Remote:
newgit login/logout/whoaminewgit serve --data <dir> [--listen <addr>] [--url <url>] [--allow <logins>] [--github-client-id <id>]— run a remote on this machine (your own remote);newgit serve --helplists the restnewgit remote add [--url <url>] [--project <name> | <owner>/<name>] [--json]/remote show [--json]— a bare name creates the project under your account;owner/namejoins one that existsnewgit remote delete <owner>/<name>— the owner deletes the project from the remote: every repo, record, and token pinned to it. Not undoablenewgit clone <owner>/<name> [dir] [--url <url>] [--full]— root's whole history and the commits it pins; a mounted tracker's history comes the first time something needs it, once.--fullfetches every history nownewgit merge [instance] [--into <branch>]— the merge commit is made in your view and committed at root's ref;newgit merge mainmerges the project rootnewgit pull <tracker> [instance]— one commit moving a mounted tracker's pin to itsfollowref; spawn says when a tracker is behindnewgit members add|remove <github-login>/members list [--json]newgit spawn <name> --from-checkpoint <instance>/<checkpoint>
Resource templates: process, pnpm, install, command-snapshot,
command-snapshot-migrations, supabase, external. newgit resource templates --show <name> prints one in full without creating anything. Their
comments say what to edit: process works without a port (delete [ports],
[exports] and [[render]]), and supabase needs every service's section
in config.toml and has a commented workdir for monorepos.