skrl
Modular and flexible library for reinforcement learning on PyTorch and JAX
What it is and what it does
skrl is a modular reinforcement learning library designed for clarity and transparency in algorithm implementation. It abstracts away boilerplate by providing reusable agent and environment components that work with PyTorch, JAX, or NVIDIA Warp backends, letting you focus on algorithm logic rather than framework plumbing. The library supports multiple environment interfaces—Gymnasium, PettingZoo, ManiSkill, Isaac Lab, and MuJoCo—and enables training multiple agent scopes (subsets of environments) in a single run, with optional resource sharing between scopes.
Typical use involves wrapping your environment, instantiating an agent with a chosen algorithm (e.g., PPO, DQN), and running training loops. The modular design means you can swap algorithms, environments, and backends with minimal code changes. It is actively maintained and documented, with a published research paper backing its design philosophy.
Use it for:
- Train RL agents on Gymnasium environments (CartPole, Atari, MuJoCo) with a clean, algorithm-agnostic API.
- Develop and test new RL algorithms in a transparent, readable codebase without reimplementing environment boilerplate.
- Run multi-agent or multi-environment training in Isaac Lab or MuJoCo simulations with scope-based resource management.
- Prototype RL solutions using PyTorch, then port to JAX or NVIDIA Warp for performance without rewriting agent logic.
- Conduct research on algorithm variants with modular components for policies, value functions, and memory buffers.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
skrl is a modular reinforcement learning library that implements algorithms in PyTorch, JAX, and NVIDIA Warp, supporting Gymnasium, PettingZoo, ManiSkill, Isaac Lab, and MuJoCo environments with multi-scope agent training.
Yes, if you are developing or researching reinforcement learning algorithms. The modular design, support for multiple backends, and active maintenance make it a solid choice for RL projects. Install it if you want readable, transparent algorithm implementations and multi-environment training capabilities. Not necessary if you only need a simple single-algorithm solver or prefer a more opinionated framework.
Install
skrl on PyPI
pip
pip install skrluv
uv add skrlpoetry
poetry add skrlInstalling skrl
Before you install
Low install friction with a pure-Python wheel distribution. Active maintenance with recent commits (last commit 2026-05-11) and steady releases since 2022-07-11. Requires Python >=3.10, which is current but not legacy-compatible.
License in practice
MIT License (permissive) allows commercial and private use with minimal restrictions, making it suitable for research, production, and derivative work.
Quickstart
pip install skrl
import gymnasium as gym
from skrl.agents.torch import PPO
from skrl.environments.torch import GymWrapper
env = GymWrapper(gym.make('CartPole-v1'))
agent = PPO(env.observation_space, env.action_space)
Requires Python >=3.10. Actual training requires PyTorch or JAX installed separately; skrl does not declare them as hard dependencies.
Verify before relying
- Whether PyTorch or JAX must be pre-installed or if skrl can guide users to install them.
- Performance characteristics and scalability limits for multi-scope training across many environments.
- Completeness of algorithm coverage compared to other RL libraries in the ecosystem.
Package facts
| License | MIT License (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — gymnasium, packaging, tensorboard, tqdm |
| Maintenance | actively maintained — 96 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 142,261/month — #11,219 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: skrl-2.1.0-py3-none-any.whl
Keywords: reinforcement-learning, machine-learning, reinforcement, machine, learning, rl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
rsl-rl-libRSL-RL is a GPU-accelerated reinforcement…
permissive · top 15,000 on PyPI
torchrlTorchRL is a PyTorch-native toolkit for…
unclear · top 5,000 on PyPI
pettingzooPettingZoo provides multi-agent reinforcement…
permissive · top 15,000 on PyPI
mjlabmjlab provides a GPU-accelerated reinforcement…
permissive · top 15,000 on PyPI
gymnasiumGymnasium provides a standard Python API for…
permissive · top 5,000 on PyPI
stable-baselines3Stable Baselines3 provides PyTorch…
permissive · top 5,000 on PyPI
ShimmyShimmy converts external reinforcement learning…
permissive · top 15,000 on PyPI
tianshouTianshou is a PyTorch-based reinforcement…
permissive · top 15,000 on PyPI
verlverl is a reinforcement learning training…
permissive · top 15,000 on PyPI
dopamine-rlDopamine is a research framework for…
permissive · top 15,000 on PyPI