Skip to content

pesde CLI

The pesde CLI is the primary way to interact with pesde projects. It provides commands for installing dependencies, running scripts, and more.

pesde auth

Authentication-related commands.

  • -i, --index: The index of which token to manipulate. May be a URL or an alias. Defaults to the default index of the current project or the default index set in the config.

pesde auth login

Sets the token for the index.

  • -t, --token: The token to set.

If no token is provided, you will be prompted to authenticate with GitHub. A code will be provided that you can paste into the GitHub authentication prompt.

pesde auth logout

Removes the stored token for the index.

pesde auth whoami

Prints the username of the currently authenticated user of the index. Only works if the token is a GitHub token.

pesde auth token

Prints the token for the index.

pesde config

Configuration-related commands.

pesde config default-index

Terminal window
pesde config default-index [INDEX]

Configures the default index. If no index is provided, the current default index is printed.

  • -r, --reset: Resets the default index.

The default index is pesde-index.

pesde cas

Content-addressable storage (CAS) related commands.

pesde cas prune

Removes unused CAS files and packages.

pesde init

Initializes a new pesde project in the current directory.

pesde add

Terminal window
pesde add <PACKAGE>

Adds a package to the dependencies of the current project.

  • -i, --index <INDEX>: The index in which to search for the package.
  • -t, --target <TARGET>: The target environment for the package.
  • -a, --alias <ALIAS>: The alias to use for the package, defaults to the package name.
  • -p, --peer: Adds the package as a peer dependency.
  • -d, --dev: Adds the package as a dev dependency.

The following formats are supported:

Terminal window
pesde add pesde/hello
pesde add pesde/[email protected]
pesde add wally#pesde/hello
pesde add wally#pesde/[email protected]
pesde add gh#acme/package#main
pesde add https://git.acme.local/package.git#aeff6
pesde add workspace:pesde/hello
pesde add workspace:pesde/[email protected]
pesde add path:/home/user/package

pesde remove

Terminal window
pesde remove <ALIAS>

Removes a package from the dependencies of the current project.

pesde install

Installs dependencies for the current project.

  • --locked: Whether to error if the lockfile is out of date.
  • --prod: Whether to not linking dev dependencies.
  • --network-concurrency <CONCURRENCY>: The number of concurrent network requests to make at most. Defaults to 16.
  • --force: Whether to force reinstall all packages even if they are already installed (useful if there is any issue with the current installation).

pesde update

Updates the dependencies of the current project.

  • --no-install: Whether to only update the lockfile without installing the dependencies.
  • --network-concurrency <CONCURRENCY>: The number of concurrent network requests to make at most. Defaults to 16.
  • --force: Whether to force reinstall all packages even if they are already installed (useful if there is any issue with the current installation).

pesde outdated

Lists outdated dependencies of the current project.

pesde list

Lists the dependencies of the current project.

pesde run

Runs a script from the current project using Lune.

Terminal window
pesde run [SCRIPT] [ -- <ARGS>...]

If no script is provided, it will run the script specified by target.bin in pesde.toml.

If a path is provided, it will run the script at that path.

If a script defined in [scripts] is provided, it will run that script.

If a package name is provided, it will run the script specified by target.bin in that package.

Arguments can be passed to the script by using -- followed by the arguments.

Terminal window
pesde run foo -- --arg1 --arg2

pesde publish

Publishes the current project to the pesde registry.

  • -d, --dry-run: Whether to perform a dry run. This will output a tarball containing the package that would be published, but will not actually publish it.
  • -y, --yes: Whether to skip the confirmation prompt.
  • -i, --index: Name of the index to publish to. Defaults to default.
  • --no-verify: Whether to skip syntax validation of the exports of the package.

pesde yank

Yanks a version of a package from the registry.

  • --undo: Whether to unyank the package.
  • -i, --index: Name of the index to yank from. Defaults to default.

pesde deprecate

Terminal window
pesde deprecate <PACKAGE> [REASON]

Deprecates a package in the registry. A non-empty reason must be provided.

  • --undo: Whether to undepricate the package.
  • -i, --index: Name of the index to deprecate from. Defaults to default.

pesde patch

Terminal window
pesde patch <PACKAGE>

Prepares a patching environment for a package. This will copy the source code of the package to a temporary directory.

The package specified must be in the format <name>@<version> <target>.

pesde patch-commit

Terminal window
pesde patch-commit <PATH>

Applies the changes made in the patching environment created by pesde patch.

pesde x

Runs a one-off binary package.

Terminal window
pesde x <PACKAGE>

This is useful for running a binary package without installing it or outside of a pesde project.

Terminal window
pesde x pesde/hello

pesde self-install

Performs the pesde installation process. This should be the first command run after downloading the pesde binary.

pesde self-upgrade

Upgrades the pesde binary to the latest version.

  • --use-cached: Whether to use the version displayed in the “upgrade available” message instead of checking for the latest version.