Discover / Token & Cost Optimization

SkyPilot

by skypilot-orgPython

Framework for running LLM workloads across clouds to minimize compute cost and maximize availability.

Toolexperimental

Maturity: experimental because latest release v0.13.1rc1 is pre 1.0. Derived from release and commit history, not a rating.

Stars
10k
Forks
1.2k
Downloads / mo
1.7M
Last commit
2026-08-03
License
Apache-2.0
Open issues
336

Market and trust evidence

Edition not yet matched

No exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.

Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.

In practice

Written by AI from this repository’s README · high confidence

Jobs are pinned to one cluster or cloud, so capacity hunting, provisioning and cleanup are done by hand for every run.

Use it when

Use it when GPU capacity is spread over several clusters or clouds and you want one job definition that lands wherever capacity exists.

Not the right pick when

Overkill if all your work runs on a single fixed machine or one managed training service you never leave.

Capabilities

  • one interface across Kubernetes, Slurm and 20+ clouds
  • flexible provisioning of GPUs, TPUs and CPUs with smart failover
  • job queue with auto recovery
  • autostop cleanup of idle resources and workload binpacking
  • local dev on Kubernetes including SSH into pods and code sync
  • team deployment and resource sharing via an API server

Requirements

  • Access to at least one supported infrastructure such as Kubernetes, Slurm or a cloud account
  • Cloud extras selected at install time

Cost: Free and open source

Install

Derived from the published package name in the repository, not from a model.

Video walkthroughs

Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.

What the repository ships

Ships CLAUDE.mdCursor rulesHas testsHas docsHas examplesDocker imageCI configured

Detected from the actual files in the repository root.

Latest release v0.13.1rc1

Published 2026-07-24

SkyPilot v0.13.1rc1

Get it now with:


uv pip install "skypilot>=0.13.1rc1"

What's Changed

  • [Kubernetes] Surface remediation hint on abnormal->INIT cluster events by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10060
  • [Azure] Fix NIC provisioning broken by azure-mgmt-network 31.0.0 by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10062
  • [Dashboard] Truncate long managed job names in the jobs table by @stephenkevn in https://github.com/skypilot-org/skypilot/pull/10011
  • [Dashboard] Add recovery count to managed job detail page by @stephenkevn in https://github.com/skypilot-org/skypilot/pull/10004
  • [k8s] Guard against None pod.status.conditions in termination-reason lookup by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10065
  • [Debug Dump] Resolve k8s coordinates from cluster YAML so INIT clusters still get their k8s/Kueue state dumped by @ishankaul1 in https://github.com/skypilot-org/skypilot/pull/10068
  • [Test] Fix flaky test_helm_deploy_okta: tolerate current_url=None during dashboard redirect by @zpoint in https://github.com/skypilot-org/skypilot/pull/10073
  • fix(runpod): correct and refresh region -> data center mapping by @ciprianf in https://github.com/skypilot-org/skypilot/pull/10072
  • [Dashboard] Infra page: await sky check before reading enabled clouds on manual refresh by @cg505 in https://github.com/skypilot-org/skypilot/pull/9879
  • [Client] Fix async get() not unwrapping the 'detail'-nested 500 payload by @cg505 in https://github.com/skypilot-org/skypilot/pull/10026
  • Remove the API stream link from async request submission output by @claude[bot] in https://github.com/skypilot-org/skypilot/pull/10081
  • [Jobs] Start consolidation-mode controllers only from the leader daemon by @cg505 in https://github.com/skypilot-org/skypilot/pull/10080
  • [Test] chaos_proxy: jitter the kill interval to avoid phase-locked races by @cg505 in https://github.com/skypilot-org/skypilot/pull/10024
  • [Jobs] Stream managed job logs on demand when a logging agent is configured by @aylei in https://github.com/skypilot-org/skypilot/pull/10069
  • [k8s] Support storage.existingClaim to attach a pre-provisioned PVC by @aylei in https://github.com/skypilot-org/skypilot/pull/10085
  • Add a pre-write validator hook for API server config saves by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10059
  • [Dashboard] Render fenced code blocks in error messages by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10088
  • [Core] Extract external links from job logs server-side by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/9934
  • [API] Grant private-workspace access to users added to allowed_users pre-login by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10079
  • [API] Collect debug-dump request logs via LogProvider by @cg505 in https://github.com/skypilot-org/skypilot/pull/9852
  • [Jobs] Give the controller process a single class identity by @cg505 in https://github.com/skypilot-org/skypilot/pull/10083
  • [Dashboard] Add owner + activity toggles to Clusters page by @hentt30 in https://github.com/skypilot-org/skypilot/pull/9884
  • [Dashboard] Default Clusters to My Clusters, add scope hint, unify toggle styling by @stephenkevn in https://github.com/skypilot-org/skypilot/pull/10089
  • [Dashboard] Support admin-configured URL template external links by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10090
  • [Dashboard] Hint when a K8s context's nodes are filtered by allowed_nodes by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10092
  • Update the config doc and default value for rbac.restrict_config_to_admins by @DanielZhangQD in https://github.com/skypilot-org/skypilot/pull/10042
  • [Kubernetes] Co-locate multi-node EFA jobs in one AZ by @trevanth24 in https://github.com/skypilot-org/skypilot/pull/10054
  • [AWS] Skip unreachable me-south-1 region in c

Tags

README

<p align="center">

<picture>

<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/skypilot-wide-dark-1k.png">

<img alt="SkyPilot" src="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/skypilot-wide-light-1k.png" width=55%>

</picture>

</p>

<p align="center">

<a href="https://docs.skypilot.co/">

<img alt="Documentation" src="https://img.shields.io/badge/docs-gray?logo=readthedocs&logoColor=f5f5f5">

</a>

<a href="https://github.com/skypilot-org/skypilot/releases">

<img alt="GitHub Release" src="https://img.shields.io/github/release/skypilot-org/skypilot.svg">

</a>

<a href="http://slack.skypilot.co">

<img alt="Join Slack" src="https://img.shields.io/badge/SkyPilot-Join%20Slack-blue?logo=slack">

</a>

<a href="https://github.com/skypilot-org/skypilot/releases">

<img alt="Downloads" src="https://img.shields.io/pypi/dm/skypilot">

</a>

</p>

<h3 align="center">

Manage all your AI compute

</h3>

SkyPilot is a system to run, manage, and scale AI workloads on any AI infrastructure.

SkyPilot gives AI teams a simple interface to run jobs on any infra.

Infra teams get a unified control plane to manage any AI compute — with advanced scheduling, scaling, and orchestration.

<picture>

<source media="(prefers-color-scheme: dark)" srcset="./docs/source/images/skypilot-abstractions-long-2-dark.png">

<img src="./docs/source/images/skypilot-abstractions-long-2.png" alt="SkyPilot Abstractions">

</picture>


:fire: News :fire:

  • [Jun 2026] Announcing SkyPilot Sandboxes: run untrusted, LLM-generated code on the Kubernetes clusters you already own. Learn more, join early access
  • [May 2026] How Multiverse doubled their GPU utilization with SkyPilot: case study
  • [Apr 2026] Introducing GPU Compass: One dashboard to browse, compare pricing, and launch across every GPU cloud. Try it at gpus.skypilot.co.
  • [Apr 2026] Research-Driven Agents: Agents read arxiv papers before coding, landed 5 llama.cpp kernel fusions and +15% faster flash attention in ~3 hours for ~$29: blog, HackerNews
  • [Mar 2026] Scaling Karpathy's Autoresearch: Autoresearch runs 1 experiment at a time. We gave it 16 GPUs and let it run in parallel: blog, HackerNews
  • [Mar 2026] How H Company Unlocked Online RL and Unified their AI Platform: case study
  • [Mar 2026] SkyPilot v0.12 released: Slurm Support, Job Groups for RL, Agent Skill, Recipes, Pool Autoscaling for Batch Inference, 7x Data Mounting, and More: Release notes
  • [Mar 2026] SkyPilot Agent Skills: GPU access and job management for AI agents: docs
  • [Jan 2026] Shopify case study: Shopify runs all AI training workloads on SkyPilot: case study

Overview

SkyPilot is easy to use for AI users:

  • Quickly spin up compute on your own infra
  • Environment and job as code — simple and portable
  • Easy job management: queue, run, and auto-recover many jobs

SkyPilot makes Kubernetes easy for AI & Infra teams:

  • Slurm-like ease of use, cloud-native robustness
  • Local dev experience on K8s: SSH into pods, sync code, or connect IDE
  • Turbocharge your clusters: gang scheduling, multi-cluster, and scaling

SkyPilot unifies multiple clusters, clouds, and hardware:

  • One interface to use reserved GPUs, Kubernetes clusters, Slurm clusters, or 20+ clouds
  • Flexible provisioning of GPUs, TPUs, CPUs, with smart failover
  • Team deployment and resource sharing

SkyPilot maximizes GPU fleet utilization:

  • Autostop: automatic cleanup of idle resources
  • Binpacking: workload binpacking on shared clusters
  • Intelligent scheduler: automatically schedule on the most available infra

SkyPilot supports your existing GPU, TPU, and CPU workloads, with no code changes.

Install with uv (also supported: pip, nightly, from source)


# Choose your clouds:
uv pip install "skypilot[kubernetes,aws,gcp,azure,oci,nebius,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp,seeweb,shadeform,verda]"

To use SkyPilot directly with your agent (Claude Code, Codex, etc.), install the SkyPilot Skill. Tell your agent:


Fetch and follow https://github.com/skypilot-org/skypilot/blob/HEAD/agent/INSTALL.md to install the skypilot skill

<p align="center">

<img src="docs/source/_static/intro.gif" alt="SkyPilot">

</p>

Current supported infra: Kubernetes, Slurm, AWS, GCP, Azure, OCI, CoreWeave, Nebius, Lambda Cloud, RunPod, Fluidstack,

Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai, VMware vSphere, Seeweb, Prime Intellect, Shadeform, Verda Cloud, VastData, Crusoe.

<p align="center">

<picture>

<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-dark.png">

<img alt="SkyPilot" src="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-light.png" width=85%>

</picture>

</p>

<!-- source xcf file: https://drive.google.com/drive/folders/1S_acjRsAD3T14qMeEnf6FFrIwHu_Gs_f?usp=drive_link -->

Getting started

Install SkyPilot in 1 minute. Then, launch your first cluster in 2 minutes in Quickstart.

SkyPilot is BYOC: Everything is launched within your cloud accounts, VPCs, and clusters.

Benefits of SkyPilot on Kubernetes

SkyPilot makes Kubernetes AI-native.

It turbocharges your existing Kubernetes clusters by accelerating AI/ML velocity:

  • AI-friendly interface to launch jobs and deployments
  • Much simplified interactive dev for K8s (SSH / sync code / connect IDE to pods)

...and optimizing GPU scheduling, utilization, and scaling:

  • Advanced scheduling: Gang scheduling, multi-node jobs, and queueing
  • Multi-cluster support: Bring all your clusters under one control plane
  • Multi-cloud support: One consistent interface to manage many providers

See SkyPilot vs Vanilla Kubernetes and this blog post for more details.

SkyPilot in 1 minute

A SkyPilot task specifies: resource requirements, data to be synced, setup commands, and the task commands.

Once written in this unified interface (YAML or Python API), the task can be launched on any available infra (Kubernetes, Slurm, cloud, etc.). This avoids vendor lock-in, and allows easily moving jobs to a different provider.

Paste the following into a file my_task.yaml:


resources:
  accelerators: A100:8  # 8x NVIDIA A100 GPU

num_nodes: 1  # Number of VMs to launch

# Working directory (optional) containing the project codebase.
# Its contents are synced to ~/sky_workdir/ on the cluster.
workdir: ~/torch_examples

# Commands to be run before executing the job.
# Typical use: pip install -r requirements.txt, git clone, etc.
setup: |
  cd mnist
  pip install -r requirements.txt

# Commands to run as a job.
# Typical use: launch the main program.
run: |
  cd mnist
  python main.py --epochs 1

Prepare the workdir by cloning:


git clone https://github.com/pytorch/examples.git ~/torch_examples

Launch with sky launch (note: access to GPU instances is needed for this example):


sky launch my_task.yaml

SkyPilot then performs the heavy-lifting for you, including:

  1. Find the cheapest & available infra across your clusters or clouds
  2. Provision the GPUs (pods or VMs), with auto-failover if the infra returned capacity errors
  3. Sync your local workdir to the provisioned cluster
  4. Auto-install dependencies by running the task's setup commands
  5. Run the task's run commands, and stream logs

See Quickstart to get started with SkyPilot.

Runnable examples

See SkyPilot examples that cover: development, training, serving, LLM models, AI apps, and common frameworks.

Latest featured examples:

| Task | Examples |

|----------|----------|

| Training | Verl, Finetune Llama 4, TorchTitan, PyTorch, DeepSpeed, NeMo, Ray, Unsloth, Jax/TPU, OpenRLHF |

| Serving | vLLM, SGLang, Ollama |

| Models | DeepSeek-R1, Llama 4, Llama 3, CodeLlama, Qwen, Kimi-K2, Kimi-K2-Thinking, Mixtral |

| AI apps | RAG, vector databases (ChromaDB, CLIP) |

| Common frameworks | Airflow, Jupyter, marimo |

Source files can be found in llm/ and examples/.

Learn more

To learn more, see SkyPilot Overview, SkyPilot docs, and SkyPilot blog.

SkyPilot adopters: Testimonials and Case Studies

Follow updates:

Questions and feedback

We are excited to hear your feedback:

For general discussions, join us on the SkyPilot Slack.

Contributing

We welcome all contributions to the project! See CONTRIBUTING for how to get involved.

<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=76c302d0-bd8d-4233-b7df-237d353375cd" />

Related tools