{"id":5058,"library":"skypilot","title":"SkyPilot","description":"SkyPilot is an open-source framework that allows users to run AI workloads on any cloud, simplifying multi-cloud deployments, optimizing costs, and improving performance. It provides a unified interface for launching, managing, and scaling GPU clusters and jobs across AWS, GCP, Azure, Kubernetes, and more. SkyPilot is actively developed, with frequent patch releases and major feature updates every few weeks to months. The current stable version is 0.12.0.","status":"active","version":"0.12.0","language":"en","source_language":"en","source_url":"https://github.com/skypilot-org/skypilot","tags":["cloud","mlops","distributed-computing","gpu","ai","cost-optimization","infra-automation","multi-cloud"],"install":[{"cmd":"pip install 'skypilot[aws,gcp]' # Add other clouds as needed: azure, kubernetes, oci, lambda, gcp_tpu, slurm","lang":"bash","label":"Install with common cloud providers"},{"cmd":"pip install 'skypilot[all]' # Install with all cloud providers","lang":"bash","label":"Install with all cloud providers"}],"dependencies":[],"imports":[{"note":"The primary interface for the Python SDK, used for defining tasks and launching clusters.","symbol":"sky","correct":"import sky"},{"note":"Used to define computational tasks within the SDK, including setup, workdir, and resource requirements.","symbol":"Task","correct":"from skypilot import Task"}],"quickstart":{"code":"import sky\n\n# Define a simple task to run on a cluster\n# This task will echo a message and try to list a GPU (if available)\ntask = sky.Task(\n    'echo \"Hello from SkyPilot on $(hostname) with GPU $(nvidia-smi -L)\"',\n    workdir='.',\n    num_gpus=1, # Request 1 GPU. SkyPilot will find a cloud with a GPU instance.\n    setup='pip install pandas' # Example setup; replace with your actual dependencies\n)\n\n# Launch a cluster named 'my-quickstart-cluster' and run the task.\n# SkyPilot will provision resources on a chosen cloud (e.g., AWS, GCP)\n# based on your configured cloud credentials and resource availability.\n# Ensure your cloud provider CLIs (e.g., AWS CLI, gcloud CLI) are installed and authenticated.\nprint(\"Launching SkyPilot cluster (this may take a few minutes)...\")\nsky.launch(task, cluster_name='my-quickstart-cluster')\n\nprint(\"Cluster launched and task executed. Run `sky status` to check.\")\n# To tear down the cluster after use:\n# print(\"Tearing down cluster...\")\n# sky.down('my-quickstart-cluster')\n# print(\"Cluster torn down.\")","lang":"python","description":"This quickstart demonstrates how to define a basic SkyPilot task using the Python SDK and launch it on a temporary cluster. SkyPilot automatically provisions the necessary resources on an available cloud provider (e.g., AWS, GCP) based on your credentials and the task's requirements (e.g., number of GPUs). It is crucial that your chosen cloud provider's CLI is installed and configured with valid credentials locally (e.g., `aws configure`, `gcloud auth login`) before running SkyPilot commands."},"warnings":[{"fix":"For local API servers, run `sky api stop; sky api start` immediately after the `pip install` upgrade. For remote (Kubernetes/Helm) API servers, consult the specific release notes or SkyPilot documentation for the required Helm upgrade commands.","message":"After upgrading the SkyPilot CLI/SDK (e.g., `pip install --upgrade skypilot[...]`), you almost always need to upgrade your SkyPilot API server. New features, stability fixes, and bug resolutions often require the API server to be in sync. Neglecting this can lead to 'database is locked' errors, unresponsive API servers, or unexpected behavior.","severity":"breaking","affected_versions":"All versions, particularly when upgrading across minor or major versions (e.g., 0.10.x to 0.11.x, or 0.11.x to 0.12.x)."},{"fix":"Ensure you install SkyPilot with the appropriate cloud extras: `pip install 'skypilot[<cloud1>,<cloud2>]'` for specific providers, or `pip install 'skypilot[all]'` for universal cloud support.","message":"Installing SkyPilot without specifying cloud provider extras (e.g., `[aws,gcp]`) will result in a minimal installation that lacks the necessary cloud-specific drivers and integrations to launch resources on any cloud. This means core functionality will not work.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Install and configure the necessary cloud provider CLIs according to their official documentation (e.g., `aws configure`, `gcloud auth login`, `az login`).","message":"SkyPilot leverages existing cloud provider CLIs (e.g., AWS CLI, `gcloud` for GCP, Azure CLI) for authentication and resource management. These CLIs must be installed, configured, and authenticated with valid credentials on the machine where SkyPilot CLI/SDK commands are executed.","severity":"gotcha","affected_versions":"All versions"},{"fix":"If you encounter dependency resolution issues, consider using `uv` (e.g., `uv pip install 'skypilot[<cloud>,...]==X.Y.Z'`) as it often has better dependency resolution capabilities than `pip`. Alternatively, refer to SkyPilot's official documentation or GitHub issues for recommended dependency versions or workarounds.","message":"SkyPilot can have extensive and complex dependency trees due to its integration with many cloud providers and ML tools. This can occasionally lead to dependency conflicts, as seen with past issues like specific `uvicorn` versions.","severity":"gotcha","affected_versions":"All versions, more frequently encountered during environment setup or when combining with other ML libraries."}],"env_vars":null,"last_verified":"2026-04-12T00:00:00.000Z","next_check":"2026-07-11T00:00:00.000Z"}