cloudvm
A command-line tool for managing cloud development instances. AWS EC2 is currently supported.
cloudvm streamlines the daily routine of working with a development EC2
instance: it refreshes the AWS SSO token only when expired, starts the
instance, waits for its public IP to be assigned, and reports it. A list
subcommand surveys instances across regions to see what is still running.
Install
pipx install cloudvm
Or, if pipx is not available:
pip install cloudvm
Requires Python 3.9 or newer and a configured aws CLI (SSO or static
credentials).
Usage
# Start an instance by its Name tag
cloudvm up --name my-dev-box
# Stop an instance — returns once the stop has been triggered
cloudvm down --name my-dev-box
# List instances across regions
cloudvm list --region 'eu-central-*,us-*' --name 'my-*'
All subcommands accept --region / -r and --name / -n, and honor the
usual AWS environment variables (AWS_REGION, AWS_PROFILE, ...).
Pass --update-ssh to up to point the matching ~/.ssh/config host
alias at the new IP.
When EC2 has no capacity for the instance type (InsufficientInstanceCapacity),
pass --retry DURATION (e.g. 30m, 2h, 1h30m) or --retry forever to
up to keep trying with backoff. If the start succeeds only after retrying,
up rings the terminal bell and asks the terminal to post a desktop notification
(OSC 9; supported by e.g. Ghostty, iTerm2 and WezTerm). It does the same when
it gives up.
Shell completion
To enable tab-completion, add this to your ~/.bashrc (or ~/.zshrc,
after compinit):
# This spawns cloudvm once for every new shell. See below for optimized
# alternative.
eval "$(cloudvm --print-completion bash)" # or: zsh / tcsh / fish
Then open a new shell, or source the rc file. cloudvm <TAB> will now
complete subcommands and flags.
To skip the per-shell cloudvm spawn, use a lazy stub instead — it
loads the real completion on first use.
bash (~/.bashrc):
_cloudvm_lazy_complete() {
eval "$(cloudvm --print-completion bash)"
return 124
}
complete -F _cloudvm_lazy_complete cloudvm
zsh (~/.zshrc, after compinit):
_cloudvm_lazy_complete() {
unfunction _cloudvm_lazy_complete
eval "$(cloudvm --print-completion zsh)"
"${_comps[cloudvm]}" "$@"
}
compdef _cloudvm_lazy_complete cloudvm
License
Apache License 2.0
Metadata
Release files for cloudvm 0.1.23.20261008073650
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cloudvm-0.1.23.20261008073650.tar.gz | 25.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cloudvm-0.1.23.20261008073650-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.0 kB
Release files / cloudvm-0.1.23.20261008073650.tar.gz
| Download URL | cloudvm-0.1.23.20261008073650.tar.gz |
|---|---|
| Size | 25.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
81aafc3c37ffbadf0b37f5d7cf667ffb2106a126c5ae0f54937ce306dc8842b4
|
|
BLAKE2b-256 checksum How to use checksums |
37863b3bae861c9a47d16fa0d11a27ce1c3cc1fddd1e581c704eb491e33fba17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency logRelease files / cloudvm-0.1.23.20261008073650-py3-none-any.whl
| Download URL | cloudvm-0.1.23.20261008073650-py3-none-any.whl |
|---|---|
| Size | 18.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
46478b19310c0005d805b7eef600124dbdfcc8d57ec8fd4f5e690c1dc7edd727
|
|
BLAKE2b-256 checksum How to use checksums |
79d50dedc3bbdbb3c2271b894f8f72cb7a7078e0a1fa0d64a86c9a22482d3a69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log