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.

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

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.25.20261014205522
File Size Uploaded Provenance
cloudvm-0.1.25.20261014205522.tar.gz 28.3 kB With provenance Details

Built distribution (wheel)

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

Total release size: 47.9 kB

Release files / cloudvm-0.1.25.20261014205522.tar.gz

Download URL cloudvm-0.1.25.20261014205522.tar.gz
Size 28.3 kB
Tags Source
SHA-256 checksum
How to use checksums
da0da965aae4fb2b93fa2e119a5c9a4c5ce1e2a26e1a9861c47f0e665a011562
BLAKE2b-256 checksum
How to use checksums
6ec8e457b4be76cb4c344e769af42e23b77c3e3d5ca32dd2f6bf11e5db08d349
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 14, 2026.

Transparency log

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

Download URL cloudvm-0.1.25.20261014205522-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d1b04160b470685b98ad6b49e195f25385d5e4c0accfe3a3d928727c419a7871
BLAKE2b-256 checksum
How to use checksums
b39fd3bbd0b1c1486d535e84d76eb19728a30f1d81e4afbe553c16c7e8f9bb8d
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 14, 2026.

Transparency log

Security for cloudvm 0.1.25.20261014205522

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.25.20261014205522.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 14, 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