Skip to main content

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.

If a running instance's shutdown behavior is terminate, down terminates (deletes) it instead of stopping it. EC2 applies that behavior only when the OS shuts down, not on an API stop, so down does this explicitly. An instance that is already stopped is left alone. If termination protection refuses the terminate, down stops the instance instead. When down --update-ssh terminates an instance, it removes the alias from ~/.ssh/config rather than commenting out its Hostname. delete --update-ssh likewise removes the alias of each deleted instance.

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.27.20261021155639

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cloudvm 0.1.27.20261021155639
File Size Uploaded Provenance
cloudvm-0.1.27.20261021155639.tar.gz 28.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for cloudvm 0.1.27.20261021155639
File Interpreter ABI Platform
cloudvm-0.1.27.20261021155639-py3-none-any.whl Python 3 none any Details

Total release size: 48.7 kB

Release files / cloudvm-0.1.27.20261021155639.tar.gz

Download URL cloudvm-0.1.27.20261021155639.tar.gz
Size 28.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b9e22a99ceaa93051ba9e057d230341bc8f2a52f447e7a417c8b36f36e4e841d
BLAKE2b-256 checksum
How to use checksums
d4e93b11fd89b0fd3b2bd350e43728d6c96e5dbf290dd9d543a981a154784de8
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 21, 2026.

Transparency log

Release files / cloudvm-0.1.27.20261021155639-py3-none-any.whl

Download URL cloudvm-0.1.27.20261021155639-py3-none-any.whl
Size 19.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
adb4de38c6b886cdafea019a2d56351bf44d0188594b30db32bb2211be346624
BLAKE2b-256 checksum
How to use checksums
a9d7453264640bc5762c61851ff1a145d86d999178df2dd76dd55bd6ba45931b
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 21, 2026.

Transparency log

Security for cloudvm 0.1.27.20261021155639

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for cloudvm-0.1.27.20261021155639.tar.gz

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 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page