sails-dev-env
Sails Dev Env
Goal
Get the machine to a verified baseline for standard Sails Rust work: rustup, Rust toolchains, Wasm targets, cargo-sails, and the latest official gear binary.
Sequence
- Detect whether the builder is on
macOS,Linux, orWindows. - If
rustupis missing, install it with the official bootstrap for that platform. - Install or update the
stableandnightlytoolchains, then addwasm32-unknown-unknownandwasm32v1-none. - Install the Sails Rust CLI with
cargo install sails-cli --locked, which providescargo-sailsand the standard greenfield bootstrap commandcargo sails new <project-name>. - Install the latest official
gearrelease binary fromhttps://get.gear.rs/(see Commands below for platform-specific download). - Verify the toolchain with
rustup show,cargo sails --version, andgear --version. - Route back into
../sails-new-app/SKILL.md,../ship-sails-app/SKILL.md,../sails-gtest/SKILL.md, or../sails-local-smoke/SKILL.mddepending on the builder's next task.
Commands
macOS or Linux
command -v rustup >/dev/null 2>&1 || curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# After fresh install, restart the shell or source the env so cargo/rustc resolve:
. "${HOME}/.cargo/env"
rustup toolchain install stable
rustup toolchain install nightly
rustup default stable
rustup target add wasm32-unknown-unknown --toolchain stable
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32v1-none --toolchain stable
rustup target add wasm32v1-none --toolchain nightly
cargo install sails-cli --locked
# Install gear binary from official releases (auto-detect architecture)
GEAR_VERSION="v1.10.0"
case "$(uname -s)-$(uname -m)" in
Darwin-arm64) GEAR_ARCH="aarch64-apple-darwin" ;;
Darwin-x86_64) GEAR_ARCH="x86_64-apple-darwin" ;;
Linux-x86_64) GEAR_ARCH="x86_64-unknown-linux-gnu" ;;
Linux-aarch64) GEAR_ARCH="aarch64-unknown-linux-gnu" ;;
*) echo "Unsupported platform: $(uname -s)-$(uname -m)"; exit 1 ;;
esac
mkdir -p "${HOME}/.local/bin"
curl -sSf "https://get.gear.rs/gear-${GEAR_VERSION}-${GEAR_ARCH}.tar.xz" | tar -xJ -C "${HOME}/.local/bin"
export PATH="${HOME}/.local/bin:${PATH}"
rustup show
cargo sails --version
cargo sails --help
gear --version
Windows
if (-not (Get-Command rustup -ErrorAction SilentlyContinue)) {
winget install Rustlang.Rustup
}
rustup toolchain install stable
rustup toolchain install nightly
rustup default stable
rustup target add wasm32-unknown-unknown --toolchain stable
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32v1-none --toolchain stable
rustup target add wasm32v1-none --toolchain nightly
cargo install sails-cli --locked
# Install gear binary from official releases
$GearVersion = "v1.10.0"
$GearDest = "$env:USERPROFILE\AppData\Local\Programs\gear\bin"
New-Item -ItemType Directory -Force -Path $GearDest | Out-Null
Invoke-WebRequest -Uri "https://get.gear.rs/gear-$GearVersion-x86_64-pc-windows-msvc.zip" -OutFile "$env:TEMP\gear.zip"
Expand-Archive -Path "$env:TEMP\gear.zip" -DestinationPath $GearDest -Force
$env:PATH = "$GearDest;$env:PATH"
rustup show
cargo sails --version
cargo sails --help
gear --version
Guardrails
- Keep this skill self-contained. Do not depend on a sibling
gearcheckout or machine-local scripts outside this skill directory. Thegearbinary is downloaded directly fromhttps://get.gear.rs/official releases. Thescripts/install-gear.shandscripts/install-gear.ps1helpers in this skill directory are available as an alternative when a more flexible install is needed (e.g., custom tags or targets). - Prefer the latest official
gearrelease binary over building the node from source unless the user asks for a specific tag or source build. - Treat base package-manager bootstrap as outside scope. If host tools such as
curl,tar,xz, orwingetare missing, install them with the platform package manager, then continue. - Do not assume
Node.js,npm, orsails-js-cliare part of this skill. Install JS tooling separately only when the active workflow actually needs it. - Do not pin an arbitrary nightly date unless the target repository already requires one through a toolchain file or a failing build.
More from gear-foundation/vara-skills
vara-skills
Use when a builder needs the top-level router for the provisional standard Gear/Vara Sails skill pack across Codex, Claude, or OpenClaw. Do not use for Vara.eth or ethexe work, non-Sails programs, or broad protocol research.
197sails-new-app
Use when a builder is starting a new standard Gear/Vara Sails app and needs the correct greenfield sequence before implementation. Do not use for edits to an established repo, Vara.eth or ethexe targets, or non-Sails templates.
2vara-wallet
Use when an agent needs to interact with Vara Network on-chain — deploy programs, call Sails methods, manage wallets, transfer tokens, monitor events. Not for building Sails programs (use vara-skills for that).
2sails-gtest
Use when a builder needs the standard Gear/Vara Sails gtest loop for feature verification, debugging, or regression coverage. Do not use for live-network-only validation, deployment-first workflows, or non-Sails programs.
2task-decomposer
Use when approved spec and architecture artifacts must become an ordered implementation plan for Gear or Vara work. Do not use when the architecture is still unsettled or when the request is only asking for a high-level idea.
2sails-frontend
Use when a builder needs to build or extend a React or TypeScript frontend for a standard Gear/Vara Sails app, using Sails-JS, generated clients, React hooks, and low-level Gear-JS only where it adds value. Do not use for Rust-only contract work, raw gstd service design, or non-Vara frontends.
2