AGENTS.md · skypilot-org/skypilot
AGENTS.md from skypilot-org/skypilot: 484 lines covering Project Overview, Repository Structure, Development Setup, Code Formatting and Linting and more.
Template by skypilot-org
Install
Works with Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/skypilot-org/skypilot/master/AGENTS.md -o AGENTS.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: prompt-engineering
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
An AGENTS.md file: instructions coding agents (Codex, Cursor, Copilot, Gemini CLI and others) read before working in a repo.
- For
- Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code
- Length
- 484 lines
- File
AGENTS.md
Sections
- Project Overview
- Repository Structure
- Development Setup
- Code Formatting and Linting
- Testing
- Code Style Guidelines
- Architecture Patterns
- Key Modules Reference
- Pull Request Guidelines
- API Server Testing
- Critical Code Paths (Handle with Care)
- Common Pitfalls
- Useful Commands
- Documentation
- Additional Resources
First lines (shown under the repo's Apache-2.0 license)
# CLAUDE.md - SkyPilot Development Guide This document provides guidance for AI assistants working with the SkyPilot codebase. ## Project Overview SkyPilot is a system to run, manage, and scale AI workloads on any AI infrastructure. It provides a unified interface across 25+ cloud providers (AWS, GCP, Azure, Kubernetes, Slurm, and many others), enabling users to launch compute resources, run jobs, and serve models without vendor lock-in. **Key capabilities:** - **Clusters**: Launch and manage compute clusters across clouds and Kubernetes - **Managed jobs**: Run jobs with automatic recovery from preemptions and failures - **Multi-cloud and multi-Kubernetes**: Unified interface across 25+ clouds and multiple K8s clusters - Cost optimization and GPU availability maximization ## Repository Structure ``` skypilot/ ├── sky/ # Main source code │ ├── __init__.py # Package exports and version │ ├── core.py # Core orchestration logic │ ├── task.py # Task definition and YAML parsing │ ├── resources.py # Cloud resource specifications │ ├── optimizer.py # Resource allocation optimizer │ ├── execution.py # Task execution pipeline │ ├── exceptions.py # Custom exceptions │ ├── skypilot_config.py # Configuration management │ ├── clouds/ # Cloud provider abstractions (25+ providers) │ ├── backends/ # Execution backends (Ray-based VM, Docker) │ ├── provision/ # Cloud resource provisioning │ ├── jobs/ # Managed job lifecycle │ ├── serve/ # Model serving (SkyServe) │ ├── skylet/ # On-cluster execution agent │ ├── client/ # SDK and CLI │ ├── server/ # API server and dashboard backend │ ├── dashboard/ # Web UI (Next.js) │ ├── utils/ # 50+ utility modules │ ├── catalog/ # Cloud pricing and instance catalogs │ ├── data/ # Storage and data handling │ ├── adaptors/ # Cloud-specific metadata adapters │ └── schemas/ # Protobuf definitions and API schemas ├── tests/ # Test suite │ ├── unit_tests/ # Unit tests with subdirectories per module │ ├── smoke_tests/ # Quick validation tests │ ├── integration_tests/ # End-to-end tests │ ├── kubernetes/ # K8s-specific tests │ └── conftest.py # Pytest fixtures ├── examples/ # 50+ usage examples ├── llm/ # 45+ LLM training/serving examples ├── docs/ # Sphinx documentation ├── charts/ # Helm charts for K8s deployment └── format.sh # Code formatting script ``` ## Development Setup ### Environment Setup ```bash # Create virtual environment with uv (Python 3.8-3.11 supported) # --seed is required to ensure pip is installed (needed for building wheels) uv venv --seed --python 3.11 source .venv/bin/activate # Install in editable mode with all cloud support uv pip install -e ".[all]" # Or specific clouds only: # uv pip install -e ".[aws,gcp,kubernetes]" # Install development dependencies uv pip install -r requirements-dev.txt # Optional: Install pre-commit hooks uv pip install pre-commit pre-commit install ``` ### Environment Variables ```bash export SKYPILOT_DEV=1 # Enable development mode export SKYPILOT_DEBUG=1 # Enable debug logging ``` ## Code Formatting and Linting **Always run `format.sh` before committing:** ```bash bash format.sh # Format changed files (vs origin/master) bash format.sh --all # Format entire codebase bash format.sh --files path/to/file.py # Format specific files ``` The script runs: 1. **YAPF** - Google style for all Python code 2. **isort** - Import sorting (Google profile) 3. **mypy** - Type checking 4. **pylint** - Linting with custom rules ### Tool Versions (must match exactly) From `requirements-dev.txt`: - yapf==0.32.0 - pylint==2.14.5 - mypy==1.19.1 - isort==5.12.0 - pylint-quotes==0.2.3 ### Excluded from Formatting - `sky/schemas/generated/` - Auto-generated protobuf files - `build/` - Build artifacts ## Testing ### Running Tests ```bash # Unit tests (fast, no cloud resources) pytest tests/unit_tests/ # Specific test file pytest tests/unit_tests/test_resources.py ``` ### CI Tests via PR Comments Trigger CI tests on pull requests using comments: - `/quicktest-core` - Run quick core tests - `/smoke-test` - Run smoke tests (launches cloud clusters) - `/smoke-test --kubernetes --postgres` - Test with PostgreSQL backend on Kubernetes - `/smoke-test --kubernetes --remote-server --postgres` - Test remote API server with PostgreSQL ### Test Configuration From `pyproject.toml`: - Uses pytest-xdist with 16 parallel workers - Environment: `SKYPILOT_DEBUG=1`, `SKYPILOT_DEV=1` - Buildkite integration for CI ### Checking Buildkite CI Status To check CI test results for a PR: 1. **Get Buildkite URL from GitHub**: Check the PR's commit status checks to find the Buildkite build URL (may take a moment to appear after triggering) 2. **Fetch build logs via Buildkite API**: Use the Buildkite API to retrieve detailed logs and test results ```bash # Example: Get build details (requires BUILDKITE_TOKEN) curl -H "Authorization: Bearer $BUILDKITE_TOKEN" \ "https://api.buildkite.com/v2/organizations/skypilot/pipelines/skypilot/builds/<build-number>" ``` ## Code Style Guidelines ### General Principles - Follow [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html) - Use f-strings over `.format()` for readability
Signals
- Stars
- 10,741
- Forks
- 1,304
- Open issues
- 138
- Last commit (this folder)
- May 8, 2026 (5 months ago)
- Last release
- Oct 19, 2026 (9 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/skypilot-org/skypilot
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Cite this page
AGENTS.md · skypilot-org/skypilot. Agent Mart. https://agentmart.dev/templates/skypilot-org-skypilot-agents-md (last updated 2026-10-24)