System Requirements
Required
- Python: 3.10, 3.11, 3.12, or 3.13
- Operating System: Linux, macOS, or Windows (with WSL)
- Memory: 4GB RAM minimum (8GB+ recommended for large benchmarks)
- Disk Space: 2GB for base installation, additional space for benchmark data
Recommended
- uv: Fast Python package installer (installation guide)
- Git: For cloning the repository and managing checkpoints
- API Access: OpenAI, Google Gemini, Anthropic, or local LLM endpoint
Installation Methods
Method 1: Using uv (Recommended)
The fastest way to get started:Install SkyDiscover
openai>=1.0.0pyyaml>=6.0tqdm>=4.64.0numpy>=1.22.0
Method 2: Using pip
Alternative installation with pip:Installing Extras
SkyDiscover uses optional dependency groups for different benchmarks and features:Math Benchmarks
For circle packing, Erdos problems, and geometric optimization:scipy, sympy, jax, optax, torch, scikit-learn, numba, pandas, matplotlib, plotly, networkx, cvxpy, autograd, pymoo, PyWavelets
ADRS Systems Benchmarks
For cloud scheduling and load balancing problems:numpy, pandas, networkx>=3.2,<3.4, torch
External Algorithm Backends
For OpenEvolve, GEPA, and ShinkaEvolve:openevolve, gepa[full], litellm>=1.81
ShinkaEvolve requires manual installation (see below).
Frontier-CS Benchmark
For competitive programming challenges:anthropic, colorlog, datasets, google-genai, google-generativeai, numpy>=2.0.0, python-dotenv, skypilot
Prompt Optimization
For HotPotQA prompt evolution:dspy>=3.1.3, litellm, bm25s, pystemmer, datasets, diskcache, ujson
Development Tools
For contributors and developers:pytest, pytest-asyncio, black, isort, mypy, requests
Combining Extras
Install multiple extras at once:Manual Installation: ShinkaEvolve
ShinkaEvolve is not available on PyPI and requires manual installation:Environment Variables
LLM API Keys
SkyDiscover automatically reads API keys from environment variables:Custom API Endpoints
For local or self-hosted LLMs:config.yaml
Other Environment Variables
Verify Installation
Check Version
Run Basic Test
Test your installation with a minimal example:test_install.py
Model Configuration
Single Model
Use a single model for all generations:Multiple Models with Weighted Sampling
Combine multiple models in a config file:config.yaml
Supported Model Providers
SkyDiscover supports any LiteLLM-compatible model:Troubleshooting
Import Errors
ModuleNotFoundError: No module named 'scipy'
ModuleNotFoundError: No module named 'scipy'
You’re trying to run a math benchmark without the math extras:
ModuleNotFoundError: No module named 'openevolve'
ModuleNotFoundError: No module named 'openevolve'
You’re trying to use an external backend without installing it:
ImportError: numpy version conflict
ImportError: numpy version conflict
Frontier-CS requires numpy 2.x, which may conflict with other benchmarks:
API Key Issues
openai.error.AuthenticationError: Invalid API key
openai.error.AuthenticationError: Invalid API key
Ensure your API key is set correctly:
Rate limit exceeded
Rate limit exceeded
OpenAI and other providers have rate limits. To handle this:
- Reduce concurrency in your config:
config.yaml
- Add retry logic (built-in by default)
- Use multiple models to distribute load:
config.yaml
Performance Issues
Discovery is very slow
Discovery is very slow
-
Use faster models:
- Replace
gpt-5withgpt-5-miniorgemini/gemini-2.0-flash
- Replace
-
Reduce timeout:
-
Enable cascade evaluation (evaluates cheap checks first):
Out of memory errors
Out of memory errors
-
Reduce batch size or max solution length:
-
Disable checkpointing (saves disk I/O):
-
Use a smaller database:
Platform-Specific Issues
Windows: 'uv' is not recognized
Windows: 'uv' is not recognized
Ensure uv is in your PATH:
macOS: SSL certificate errors
macOS: SSL certificate errors
Install certificates:
Linux: Permission denied errors
Linux: Permission denied errors
Ensure scripts are executable:
Next Steps
Quick Start
Run your first discovery in under 5 minutes
Configuration
Learn how to configure search algorithms and models
CLI Reference
Complete command-line interface documentation
Python API
Use SkyDiscover programmatically in your Python code