shuttle
Command Line Interface (CLI).
Some tasks, such as viewing logs, can also be done in the Shuttle Console.
After installation, you will have two commands:
shuttle
and cargo shuttle
.shuttle
is used for interacting with the shuttle.dev platform.cargo shuttle
is used for interacting with the shuttle.rs platform.
Commands
Command | Description |
---|---|
init | Generate a Shuttle project from a template [aliases: i] |
run | Run a project locally [aliases: r] |
deploy | Deploy a project [aliases: d] |
deployment | Manage deployments [aliases: depl] |
logs | View build and deployment logs |
project | Manage Shuttle projects [aliases: proj] |
resource | Manage resources [aliases: res] |
certificate | Manage SSL certificates for custom domains [aliases: cert] |
account | Show info about your Shuttle account [aliases: acc] |
login | Log in to the Shuttle platform |
logout | Log out of the Shuttle platform |
generate | Generate shell completions and man page |
feedback | Open an issue on GitHub and provide feedback |
upgrade | Upgrade the Shuttle CLI binary |
mcp | Commands for the Shuttle MCP server |
help | Print this message or the help of the given subcommand(s) |
Cookbook / Cheat Sheet
These are some useful sequences of commands that are handy to keep in your back pocket. For full documentation, use--help
on the respective command.
Use the global --debug
flag to print detailed debug output.
Get started
cargo install cargo-shuttle
: For more alternatives, see Installation.shuttle login
: Log in via the Shuttle Console.shuttle init
: Generate a project from a template.shuttle account
: Check account details.
Local run
For more tips, see Local Run.shuttle run
: Run the project locally so you can test your changes.shuttle run --port 8080
: Change the local port.shuttle run --port 8080 --external
: Expose to local network by listening on0.0.0.0
.shuttle run --secrets <file>
: Use a non-default secrets file for this run.shuttle run --release
: Compile with release mode.shuttle run --bacon
: Run in watch mode, requires separate install of bacon.
Deploy a project
shuttle project create
: Create a project on Shuttle.shuttle deploy
: Deploy the project to Shuttle.shuttle deploy --no-follow
: Don’t poll deployment state. Alias:--nf
.shuttle deploy --secrets <file>
: Use a non-default secrets file for this deployment.
Manage projects
shuttle project list
: List your projects.shuttle project status
: Check the state of this project.shuttle project link
: Link this project folder to a project on Shuttle.shuttle project delete
: Delete a project.shuttle project update name <new-name>
: Rename a project and its default subdomain.
Manage deployments and logs
shuttle deployment list
: List deployments in this project.shuttle deployment status
: Show status of the currently running deployment.shuttle deployment stop
: Stop any currently running deployments.shuttle deployment redeploy
: Redeploy the latest deployment without building.shuttle deployment redeploy [id]
: Redeploy the specified deployment id without building.shuttle logs
: Get all logs from the currently running deployment.shuttle logs --latest
: Get all logs from the latest deployment.shuttle logs <id>
: Get all logs from a specific deployment.shuttle logs --raw
: Print the logs without timestamps and origin tags. The--raw
flag is also available for therun
anddeploy
commands.
Manage resources
shuttle resource list
: List resources linked to this project.shuttle resource delete <type>
: Delete a resource such as databases and secrets.
Shell completions
Useshuttle generate shell <shell>
with one of the supported shells: bash, elvish, fish, powershell, zsh.
Example configuration for Zsh on Linux: add eval "$(shuttle generate shell zsh)"
to ~/.zshrc
.
Utility
shuttle <command> --debug
: Turn on tracing output for Shuttle libraries. (WARNING: can print sensitive data)shuttle <command> --output json
to get the output from API calls in plain JSON.shuttle deploy --output-archive <path>
: Dump the deployment archive to disk instead of deploying it. Useful for debugging.shuttle logout --reset-api-key
: Log out and reset your account’s API key.