CLI: every command, step by step

This walkthrough covers every top-level vapour command in the current CLI source, including the store and controller subcommands. Follow the local steps first. Commands that contact the API need a developer token and a compatible staging service; do not publish a test version by accident. Check availability and your binary's --help before starting.

1. Install and find your way around

Follow prerequisites to install a release. For unreleased commands, use a matching source checkout. Inspect the logo and command list:

vapour --help
vapour --version
vapour publish --help

The lowercase wordmark and blue particles appear only in root help. Redirected help uses plain text; command output you pipe stays clean. Use vapour <command> --help for its exact flags. The global --api <base-url> selects an API; a custom host needs an explicit trust opt-in (--allow-custom-api). Local HTTP is allowed only for localhost with --allow-insecure-http. Do not send your token to an unknown host.

2. Account: login, whoami, logout

Create a personal access token in your developer dashboard. Use stdin rather than putting the token in shell history:

vapour login --token -
vapour whoami

Type the token into standard input, then press Enter. The CLI does not print a prompt. login verifies the account via the selected API; --no-verify skips that network check but does not grant permissions. whoami confirms the active account, role and API base. VAPOUR_TOKEN takes precedence over the saved token. At the end of this tutorial, run vapour logout to remove the saved credential; it does not revoke a token or clear VAPOUR_TOKEN. See tokens.

3. Start a project: create or template

Choose one route and replace the example name:

vapour create "My Game" --engine godot

This makes a project manifest and starter store files. --engine also accepts unity, bevy and other. --from <git-url> imports source; --offline uses local scaffolding without network. Alternatively:

vapour template godot "My Game"

template clones an engine-specific skeleton. Bevy and Unity are also supported; --org selects its GitHub organization and --offline uses the local fallback. The skeleton is not a complete engine game. Add your project and a Web export. See templates and the manifest reference. Run subsequent commands inside the new game directory, or pass --dir <game-dir> where supported.

4. Build and inspect: build, perf, test

Set [build].dir to your Web export folder, with a top-level index.html. Install the matching engine/export tools, then run:

vapour build
vapour perf
vapour test --no-profile

build runs the configured exporter, validates the output and writes .vapour/build.json. perf prints engine-specific warnings; use --engine godot|unity|bevy to choose a different engine for that check. build, test and publish accept --no-perf-hints to silence hints. test serves the build on loopback with an FPS overlay; the serve-time injection does not rewrite your build. On Linux, profiling can launch a private browser and local profiler. --no-profile skips that integration; --no-telemetry, --no-open, --port and --profiler <path> control the other test paths. Stop the server with Ctrl-C. See profile locally.

5. Prepare phone input: controller init, check, preview

If you want on-screen controls, run:

vapour controller init --mode keyboard-map --preset default
vapour controller check
vapour controller preview
vapour controller preview --html --out controller-preview.html

The initializer writes [controller] in vapour.toml; check validates bindings and preview draws an ASCII layout or writes HTML. Set the keys to those your game actually handles. Other presets are shooter and dpad-only; dedicated uses named actions instead of keyboard keys. --force replaces existing controls after making a manifest backup. Test the result in a phone-sized viewport; config validation does not prove the player supports a device. See controls.

6. Prepare the store: store check, store push

Edit store/page.json, store/template.md and the referenced media.

vapour store check

This is local validation; fix any reported fields or media before continuing. When you intend to update the remote page without a build, run vapour store push. It requires login, uploads the page and may register a new game, writing its project ID into vapour.toml. See store page.

7. Check the ZIP: scan

vapour scan
vapour scan ./build/web --json

With no argument, scan uses the manifest's build.dir. A folder is packed temporarily for static checks. Errors block publishing; --json gives machine-readable findings. Scanning is a heuristic, not antivirus. See ZIP verification.

8. Publish safely: publish

vapour publish --dry-run --version 0.1.0 --notes "First release"

Supply a new version and exactly one of --notes or --notes-file even on a dry run. This validates the store and ZIP, scans and signs the archive, and writes .vapour/build.zip.attestation.json; it does not log in or upload. For a real publication, remove --dry-run only when you are ready:

vapour publish --version 0.1.0 --notes "First release"

It updates the store first, then uploads the ZIP and signed attestation. Each version is single-use. The server verifies the upload and an admin reviews it before it goes live. --skip-store leaves the page unchanged. --experimental-chunks supports a local dry run, but cannot upload until the protocol supplies a signed attestation. Use ZIP publishing instead. See publishing.

9. Check integrity: verify

vapour verify ./build.zip --attestation .vapour/build.zip.attestation.json
vapour verify --remote --version 0.1.0

The first command checks an exact copy of the signed ZIP. Folder publishing uses a temporary ZIP, so zipping the folder again may change the hash; if you did not keep the original ZIP, use the second command. Remote verification checks the signature and server record, but not local ZIP bytes when no ZIP is supplied. --json emits a result for scripts. Remote checks require the project ID and login. See ZIP verification.

10. Keep tools and help current: update, llm, completion

vapour update --check
vapour llm --offline
vapour completion --help

update --check queries releases without replacing the binary; update installs a release after checksum verification on supported systems. --version <tag> selects one release. Windows users download the release archive instead of self-updating. llm prints the assistant guide to standard output. --offline uses its cache or embedded copy; --refresh forces a fetch and --url <url> overrides the source. completion generates shell scripts; follow its help for your shell. If update notices are unwanted, set VAPOUR_NO_UPDATE_CHECK=1.

Finally, run vapour logout if you saved a token on a shared machine. For options and environment rules, see the CLI reference.

results matching ""

    No results matching ""