Back to skills
extension
Category: Development & EngineeringNo API key required

wash

Expert in wasmCloud Shell (wash) CLI tool for building, running, and managing WebAssembly components and wasmCloud applications. Use this skill when working with wasmCloud, WebAssembly components, WIT (WebAssembly Interface Types) definitions, or wash commands.

personAuthor: jakexiaohubgithub

wash - wasmCloud Shell

This skill provides expertise in using the wasmCloud Shell (wash) CLI tool for developing and managing WebAssembly components and wasmCloud applications.

Prerequisites

  • wash version 2.0.0 or later
  • Verify version with: wash --version

Important Notes

Do not use cargo component commands (like cargo component build) when working with wasmCloud projects. Always use wash commands instead:

  • Use wash build or wash dev for building components
  • For plugins, build with wash build --skip-fetch (since wasmcloud:wash interface isn't published)

Core Commands

wash dev

Use wash dev for local development and build loop. This command:

  • Automatically rebuilds your component on file changes
  • Provides a fast iteration cycle during development
  • Watches for changes and recompiles as needed

Example:

wash dev

wash wit update

Use wash wit update when there are mismatched WIT (WebAssembly Interface Types) definitions. This command:

  • Updates WIT dependencies to resolve conflicts
  • Synchronizes WIT definitions across your project
  • Fixes version mismatches in component interfaces

Example:

wash wit update

Common Workflows

Starting a New Project using the HTTP Hello World template

  1. wash new https://github.com/wasmCloud/wasmCloud.git --name http-hello-world --subfolder templates/http-hello-world
  2. cd my-project
  3. Run wash build to build the code
  4. Make changes to your code

Expected Component Structure

A modern wash new Rust HTTP component can follow this structure:

|
|-- .wash/
|   -- config.yaml
|-- manifests/
|   -- workloaddeployment.yaml
|-- src/
|   -- lib.rs
|-- wit/
|   -- world.wit
|-- Cargo.toml
|-- Cargo.lock
|-- wkg.lock
|-- README.md

Fixing WIT Definition Conflicts

If you encounter errors about mismatched WIT definitions:

  1. Run wash wit update to synchronize definitions
  2. Review the updated WIT files
  3. Continue with wash build

Additional Resources

  • wash is the primary CLI tool for the wasmCloud ecosystem
  • It handles component building, testing, and deployment
  • Supports both local development and production workflows