Interaction with the Shuttle services is through the cargo-shuttle Command Line Interface (CLI). Tasks are performed with a combination of commands, sub-commands, and options.

Commands are issued in the format: cargo shuttle [OPTIONS] <COMMAND>

To get an overview of available commands and options, run:

cargo shuttle help


Run a command with the --help flag to see available subcommands

The Shuttle commands are:

initCreate a new Shuttle project
runRun a Shuttle service locally
deployDeploy a Shuttle service
deploymentManage deployments of a Shuttle service
statusView the status of a Shuttle service
stopStop this Shuttle service
logsView the logs of a deployment in this Shuttle service
projectList or manage projects on Shuttle
resourceManage resources of a Shuttle project
secretsManage secrets for this Shuttle service
cleanRemove cargo build artifacts in the Shuttle environment
loginLogin to the Shuttle platform
logoutLog out of the Shuttle platform
generateGenerate shell completions
feedbackOpen an issue on GitHub and provide feedback
helpPrint this message or the help of the given subcommand(s)


Several commands have sub-commands which allow more fine grained management tasks. For example, the project command has the following sub-commands:

startCreate an environment for this project on Shuttle
statusCheck the status of this project’s environment on Shuttle
stopDestroy this project’s environment (container) on Shuttle
restartDestroy and create an environment for this project on Shuttle
listList all projects belonging to the calling account

Sub-commands may also have options which can be set if desired.


These are some useful commands that are handy to keep in your back pocket:

  • cargo shuttle run: Run the project locally so you can test your changes.
  • cargo shuttle project start: Initialize an environment for this project on shuttle.
  • cargo shuttle deploy: Deploy the current state of the project to the public internet though shuttle.
  • cargo shuttle deploy --allow-dirty: Deploy the project to shuttle (including files not committed to git).
  • cargo shuttle deployment: Either list existing deployments or get the status of a particular deployment.
  • cargo shuttle logs --follow: Fetch the logs of the deployed service and stream them to your terminal.