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.

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, on macOS, posts a notification.

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

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.22.20261007103503
File Size Uploaded
cloudvm-0.1.22.20261007103503.tar.gz 25.2 kB Details

Built distribution (wheel)

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

Total release size: 43.4 kB

Release files / cloudvm-0.1.22.20261007103503.tar.gz

Download URL cloudvm-0.1.22.20261007103503.tar.gz
Size 25.2 kB
Tags Source
SHA-256 checksum
How to use checksums
29e55f8529563934537f334228547509e2e76c627d66e50c54d8180d27ba1999
BLAKE2b-256 checksum
How to use checksums
ccab9a09539ced4d77b02eacc63d933608183e73849a7d239839b9406b80a812
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 7, 2026.

Transparency log

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

Download URL cloudvm-0.1.22.20261007103503-py3-none-any.whl
Size 18.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
441a6372e2792e4a402581cf767cfab50c820aa6eec38f45b62c6564a2e98689
BLAKE2b-256 checksum
How to use checksums
662270dc6748c4db5239e1705536efe263caeaf2e431cd60073feecf21fe4e27
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 7, 2026.

Transparency log
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