Hello, welcome to Wasmer! Below, is an in-progress reference for the wasmer CLI tool.

CLI Commands

wasmer login - Logs the user in to the registry.

wasmer logout - Logs the user out of the registry, resetting the token.

wasmer whoami - Shows the current user logged in.

wasmer config set <key> <value> - Sets a config key with the given value.

Note: when setting the registry.url, the registry.token will reset automatically.

wasmer config get <key> - Gets the config key contents.

wasmer search <query> - Search for packages related to the query.

wasmer install [package] - Installs missing dependencies and the latest version of the package, optionally, specified. Install globally with the -g flag.

wasmer run - Executes a package command with the run cli command. The command will be run with the wasmer runtime.

wasmer completions <shell> - Generate a shell completion script for wasmer for the specified shell.

wasmer init - Interactively initialize a new wasmer project by generating a wasmer.toml in the current directory. Pass the '-y' flag to run it non-interactively.

wasmer add - Add a dependency to the manifest without installing it. You may leave out the version, user/package-name, or specify a precise version to install, user/package-name@0.0.1.

wasmer remove - Remove a dependency from the manifest without uninstalling it. For example, wasmer remove user/package-name.

wasmer list - Prints all commands and modules for a package in the current directory.

wasmer uninstall - The opposite of wasmer install. Uninstall globally with the -g flag.

wasmer bin - Print the .bin directory path for the local package. Get the global path with -g flag.


The manifest is optional for using the wasmer CLI tool; it manages package dependencies, metadata, and commands.

However, a manifest is required to publish to the wasmer registry.

The manifest contains 4 sections:


Valid keys are:


  • name
  • version
  • description


  • license (name)
  • license-file (path, An override for the license file path used in publishing. Left undefined, the LICENSE file will be implicitly included in the package.)
  • readme (path)
  • repository (url)
  • homepage (url)
  • wasmer-extra-flags (extra arguments to pass via wasmer run, for example: "--backend=singlepass")


  • "<namespace>/<name>" = "<version>"


  • name (the name of the module)
  • source (path to Wasm file)
  • abi (one of: wasi, emscripten, or none)



  • name (the name of the command, invoked via wasmer run <command-name>)
  • module (the name of the module this command is running)
  • package (the package name that the module is in)


  • main_args
  • package


  • "location/on/guest"="location/on/host # a mapping between paths


During the alpha, telemetry (specifically error logging to Sentry) is enabled by default. We send and record information such as IP address, operating system name and version, and the error/panic message. To disable it, run wasmer config set telemetry.enabled false or compile from source (the telemetry feature is disabled in the build by default).