Installing Taubyte Tooling
When to use
- First-time machine setup for
tau/dream tau --version/dream --helpfailsdocker infofails ordockeris missingnpm i -g @taubyte/cliwas attempted but didn't produce a workingtau- A new shell session and you don't know whether the toolchain is in place
- Hard gate before every other Taubyte skill (run this first if anything below seems off)
Hard stop conditions
| Situation | Action |
|---|---|
| Node missing AND can't be installed from this environment | Stop; give OS-specific install instructions; do not run npm i -g until node/npm work. |
| Docker CLI missing AND daemon can't be started | Stop before Dream / dream inject / any container-backed flow. |
tau or dream still broken after install attempts |
Stop; record what was tried and the failure output. |
GitHub-backed work needed but no tau profile |
Stop; defer to authenticating-taubyte-cli. |
Workflow
Prereq progress:
- [ ] Step 1: Node.js + npm work
- [ ] Step 2: Docker CLI present and `docker info` succeeds
- [ ] Step 3: `@taubyte/cli` installed → `tau --version` works
- [ ] Step 4: `@taubyte/dream` installed → `dream --help` works
- [ ] Step 5: Auth gate (only if GitHub work is in scope)
- [ ] Step 6: Final verification block runs clean
Step 1 — Node.js + npm
Detect
command -v node >/dev/null && node --version
command -v npm >/dev/null && npm --version
Install when missing
| OS | Command |
|---|---|
| Windows (winget) | winget install -e --id OpenJS.NodeJS.LTS --accept-package-agreements --accept-source-agreements |
| macOS (brew) | brew install node |
| Linux (Debian/Ubuntu) | sudo apt-get update && sudo apt-get install -y nodejs npm |
If automated install fails, is blocked (no sudo / no winget/brew), or the OS is unclear, stop and tell the user to install Node.js LTS from https://nodejs.org/, then open a new terminal and rerun.
Do not run npm i -g @taubyte/... until both node --version and npm --version succeed.
Step 2 — Docker (engine + running daemon)
Docker is required for Dream itself, dream inject flows, and local Go WASM verification (the taubyte/go-wasi recipe).
Detect
command -v docker >/dev/null && docker version
docker info
Two distinct failure modes:
dockernot in PATH → treat as not installed (use install table below).docker versionworks butdocker infofails with daemon/connection errors → daemon is stopped or you lack permission. Start the daemon, don't reinstall.
Install when CLI is missing
| OS | Commands |
|---|---|
| Windows (winget) | winget install -e --id Docker.DockerDesktop --accept-package-agreements --accept-source-agreements (then start Docker Desktop once) |
| macOS (brew) | brew install --cask docker (then launch Docker Desktop) |
| Linux (Debian/Ubuntu) | sudo apt-get update && sudo apt-get install -y docker.io && sudo systemctl enable --now docker |
Start the daemon when CLI is present
| OS | Command |
|---|---|
| Windows / macOS | Launch Docker Desktop, wait for the whale icon to indicate "running" |
| Linux | sudo systemctl start docker |
| Linux permission errors | sudo usermod -aG docker $USER then log out/in (or new shell) |
After starting, re-run docker info until it succeeds. If install/start is impossible (no admin, headless CI, blocked policy), stop and point the user to https://docs.docker.com/get-docker/.
Step 3 — tau (@taubyte/cli)
Detect
command -v tau >/dev/null && tau --version
tau --help # confirm subcommand surface
Install when missing
npm i -g @taubyte/cli
Alternative when the global npm path is blocked:
curl https://get.tau.link/cli | sh
Step 4 — dream (@taubyte/dream)
Detect
command -v dream >/dev/null && (dream --version || dream --help)
Install when missing
npm i -g @taubyte/dream
Alternative:
curl https://get.tau.link/dream | sh
If dream is on PATH but errors immediately, the global wrapper may be broken. Run via the package directly to confirm:
node "$(npm root -g)/@taubyte/dream/index.js" --help
Step 5 — Auth gate (only when GitHub work is in scope)
Any flow that creates/imports projects, pushes, or generates repos needs a working tau profile. Do not improvise auth here. Defer to authenticating-taubyte-cli.
Quick gate check:
tau --defaults --yes json current
Look at the Profile field. If empty and the next step touches GitHub, run authenticating-taubyte-cli before continuing.
Step 6 — Final verification
Run as a single block; expect every line to print a version/info line without errors:
node --version
npm --version
docker version
docker info
tau --version
dream --version || dream --help
If any line fails, return to that step and re-do. Do not proceed to project / cloud / resource work with a partially-broken toolchain.
CLI drift note
tau and dream evolve quickly. Don't assume a subcommand exists based on older docs. Confirm capability with tau --help / dream --help before scripting around it. See starting-dream-locally for the dream start vs dream new multiverse split that depends on this.
Gotchas
npm i -gwithout workingnodesilently no-ops or installs broken shims — always verifynode --versionfirst.docker versionsucceeds,docker infofails is a stopped daemon, not a missing install. Don't reinstall.- Linux permission errors (
Got permission denied while trying to connect to the Docker daemon socket) are fixed byusermod -aG docker $USER+ logout/login, not bysudo dockerlong-term. tauordreamerrors immediately with crypticnode/requireerrors → likely a broken global npm install. Reinstall (npm i -g @taubyte/cli/@taubyte/dream) or use thecurl https://get.tau.link/...script.- Don't gate on a single command's exit code for the verification block — read each line; some commands print version on success but exit non-zero on
--version-vs---helpflag mismatch.
Related skills
authenticating-taubyte-cli— runs after this gate when GitHub work is in scopestarting-dream-locally— first thing you do oncedreamis installedunderstanding-taubyte-architecture— context for whydream+dockerare needed at allverifying-taubyte-functions— uses thetaubyte/go-wasiDocker image; depends on Docker daemon