Shipit CLI is the best way to build, serve and deploy your projects anywhere.
Project description
Shipit
Shipit is a CLI that automatically detects the type of project you are trying to run, builds it and runs it using Starlark definition files (called Shipit).
It can run builds locally, inside Docker, or through Wasmer, and bundles a one-command experience for common frameworks.
Quick Start
To use shipit, you'll need to have uv installed.
Install nothing globally; use uvx shipit-cli to run Shipit from anywhere.
uvx shipit-cli .
Running in auto mode will generate the Shipit file when needed, build the
project, and can also run it. Shipit picks the safest builder automatically
and falls back to Docker or Wasmer when requested:
uvx shipit-cli . --wasmerbuilds locally and runs inside Wasmer.uvx shipit-cli . --dockerbuilds it with Docker (you can customize the docker client as well, eg:--docker-client depot).uvx shipit-cli . --startlaunches the app after building.
You can combine them as needed:
uvx shipit-cli . --start --wasmer --skip-prepare
Commands
Default auto mode
Full pipeline in one command. Combine flags such as --regenerate to rewrite
the Shipit file. Use --wasmer to run with Wasmer.
generate
uvx shipit-cli generate .
Create or refresh the Shipit file. Override build and run commands with
--install-command, --build-command, or --start-command. Pick a exlicit provider
with --use-provider.
plan
uvx shipit-cli plan --out plan.json
Evaluate the project and emit config, derived commands, and required services without building. Helpful for CI checks or debugging configuration.
build
uvx shipit-cli build
Run the build steps defined in Shipit. Append --wasmer to execute inside
Wasmer, --docker to use Docker builds.
run
uvx shipit-cli run
Run explicit commands for the project. Use --start to run the start
command, or pass one or more --command values. Combine with --wasmer
for WebAssembly execution.
deploy
uvx shipit-cli deploy
Deploy a Wasmer package generated by shipit build --wasmer. Use
--wasmer-deploy-config to write deployment metadata instead of publishing.
Supported Technologies
Shipit works with three execution environments:
- Local builder for fast, host-native builds.
- Docker builder when container isolation is required.
- Wasmer runner for portable WebAssembly packaging and deployment.
Development
Clone the repository and use the uv project environment.
uv run shipit . --start
Use any other subcommand during development by prefixing with uv run shipit,
for example uv run shipit build . --wasmer. This keeps changes local while
matching the published CLI behaviour.
Tests
Run the test suite with:
uv run pytest
You can run the e2e tests in parallel (-n 8) with:
uv run pytest -m e2e -v "tests/test_e2e.py" -s -n 8
The e2e tests will:
- Build the project (locally, or with docker)
- Run the project (locally or with Wasmer)
- Test that the project output (via http requests) is the correct one
Automatic PyPI Publish
Publishing to PyPI is automated with GitHub Actions on version tags.
Requirements:
- Add a repository secret named
PYPI_API_TOKENwith a PyPI API token. - Push tags using the
vX.Y.Zformat (for example:v0.17.5).
On each v* tag push, the workflow:
- Runs regular test and e2e workflows.
- Validates that the tag version without the leading
vmatches:project.versioninpyproject.tomlversioninsrc/shipit/version.py
- Builds the package and publishes to PyPI only if all checks pass.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shipit_cli-0.19.6.dev1.tar.gz.
File metadata
- Download URL: shipit_cli-0.19.6.dev1.tar.gz
- Upload date:
- Size: 58.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
056063bdc69807645b756884856686c975cd5202927434dd9a2415c86adb8bdf
|
|
| MD5 |
1f7fae51e93efceff97cd1a3a5d9d6ae
|
|
| BLAKE2b-256 |
0a2fd25df8b239b4b71f8c8cd71258149c861d719272f52752156a9d9ef5658a
|
File details
Details for the file shipit_cli-0.19.6.dev1-py3-none-any.whl.
File metadata
- Download URL: shipit_cli-0.19.6.dev1-py3-none-any.whl
- Upload date:
- Size: 61.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6065b3f15cbf38f6ce4fb0dcc63bde9c9b62a673760fbe3a53a8ede2a715f652
|
|
| MD5 |
25a52f2fdd32f22b7de83e856c3b86e5
|
|
| BLAKE2b-256 |
deac23fa810bb52afc7239f83bee1788590cbcd46b5af19e21cd7d4a03ba52a8
|