go

Run a standalone script as-is (no Kit APIs in the job file). Each local:N / host:N slot is one full script run, started concurrently — not Distributed workers.

julia --project=. -m DistSSHKit go [options] [local:N] [host:N...] SCRIPT.jl [script_args...]

Also: First Steps · Demo, drive, go --help. Flag vocabulary and a short go vs drive table: User Guide.

vs drive: each host:N is N full script runs (not Distributed workers). There is no --require-git; for commit parity use drive --require-git. Prepare remotes with setup --rsync or --clone, then --instantiate (git updates later: setup --sync or go --sync).

Flags

FlagMeaning
--syncGit push/pull before remote slots (opt-in; default is none; confirm unless -y)
--rsyncRsync working tree first (empty/missing remote, or after setup --delete)
--skip-syncCompat: no pre-run sync (already the default)
--skip-git-guardAlias of --skip-sync (shared name with drive)
--julia PATHJulia on remotes (default: auto / JULIA_DISTRIBUTED_EXE)
--output-dir PATHBatch root; slots write under PATH/{slot}/ (not drive --output-dir)
--hosts CSVComma-separated slot specs (same form as CLI tokens / DISTSSHKIT_HOSTS)
-q / --quietHide terminal detail; go_*.log and per-slot logs still written
--progressLive status (TTY default)
--verboseFull detail (non-TTY default)
-y / --yesNon-interactive confirmations
--hosts-file PATHAppend slot specs (host:N preserved)
-v / --versionPrint DistSSHKit version and exit
-h / --helpFull help

--sync / --rsync / --skip-sync (and --skip-git-guard) are mutually exclusive. Default pre-run sync is none (same as drive); prepare remotes with setup, or pass --sync / --rsync.

Output

Default batch root:

{project}/.distsshkit/go/{stem}_{UTC}/{slot}/

--output-dir PATH replaces the batch root. Kit sets DISTRIBUTED_OUTPUT_DIR to each slot directory. Add .distsshkit/ to the job project's .gitignore so these paths stay untracked (User Guide).

From the API, go!(...; output_dir=PATH) sets the same batch root (matching drive!). collect_spec::String still works as a backward-compatible alias, but passing both output_dir and collect_spec::String is an error. collect_spec=false skips collect and is orthogonal to output_dir.

Collect after remote slots: slot-overwrite (rsync whole slot dir).

Hosts

CLI tokens, --hosts, --hosts-file, and/or DISTSSHKIT_HOSTS. local:0 skips local slots when remotes are listed.