{"id":28250,"library":"spotty","title":"Spotty","description":"Spotty is a tool for training deep learning models on AWS and GCP spot/preemptible instances. It manages cloud instance lifecycle, Docker container environment, and file syncing. Current version 1.3.3 (December 2023), with irregular releases approximately every 3-6 months.","status":"active","version":"1.3.3","language":"python","source_language":"en","source_url":"https://github.com/spotty-cloud/spotty","tags":["deep learning","aws","gcp","spot instances","training","cloud"],"install":[{"cmd":"pip install spotty","lang":"bash","label":"PyPI install"}],"dependencies":[],"imports":[{"note":"The internal structure was refactored significantly in v1.3.0; direct imports from submodules may break.","wrong":"from spotty.aws import instance","symbol":"abstract classes and utilities","correct":"from spotty.providers.aws.instance import AwsInstance"}],"quickstart":{"code":"cd my_project\nspotty init --provider aws\nspotty start  # starts EC2 instance\nspotty sh     # SSH into instance\nspotty stop   # stops instance (retains volumes by default)\nspotty run \"python train.py\"  # syncs project and runs command","lang":"bash","description":"Initialize a Spotty project, start a cloud instance, and run training scripts."},"warnings":[{"fix":"Add `spotInstance: true` (AWS) or `preemptibleInstance: true` (GCP) to your .spotty/config.yaml under the instance parameters.","message":"Spotty v1.3.0 changed default instance type from spot to on-demand. Set `spotInstance: true` in YAML config for AWS or `preemptibleInstance: true` for GCP.","severity":"breaking","affected_versions":">=1.3.0"},{"fix":"To delete volumes on stop, set deletion policy to 'delete' in your config. For AWS EBS: `deletionPolicy: delete`. For GCP: not yet implemented per v1.2.3 changelog.","message":"Volumes/disks are now retained by default when an instance is stopped. In v1.2.x and earlier, volumes were deleted on stop unless explicitly configured.","severity":"breaking","affected_versions":">=1.3.0"},{"fix":"To skip syncing, use `spotty run --no-sync \"command\"`.","message":"The `spotty run` command now syncs the project before running by default, opposite of previous behavior. The `-S/--sync` flag is replaced with `--no-sync` flag.","severity":"gotcha","affected_versions":">=1.3.0"},{"fix":"Refer to the new YAML format at https://github.com/spotty-cloud/spotty#configuration. Old configs will not work.","message":"Configuration format changed in v1.2.0: container parameters are now separate from instance parameters, and the config file describes a list of instances instead of a single one.","severity":"gotcha","affected_versions":">=1.2.0"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Use CLI commands like 'spotty aws create-ami' instead of Python imports. For programmatic use, import from spotty.providers.aws.","cause":"Since v1.2.0 AWS-specific commands moved under 'spotty aws' subcommand, but the Python module spotty.aws may not exist or be restructured.","error":"ImportError: No module named spotty.aws"},{"fix":"Use '--no-sync' flag to skip sync, and omit flag for default sync behavior.","cause":"Using old flag --sync with v1.3.0+ which replaced it with --no-sync.","error":"spotty: error: argument --sync: invalid choice: '--no-sync' (choose from '--sync')"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}