skrl: Modular Reinforcement Learning Library
A highly modular and readable RL library implemented in PyTorch, JAX, and NVIDIA Warp.
- Source repo
- Toni-SM/skrl
- Stars
- ★ 1.1k
- Last updated
- today
- License
- MIT
- Primary language
- Python
- FA score
- 43/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platform
- Cost
- Free, no paid service needed
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- Researchers who want to quickly compare RL algorithm performance across PyTorch, JAX, and NVIDIA Warp, using skrl's modular design to easily switch backends.
- Not a fit if
- Users who want an out-of-the-box CLI and no coding
- Teams without GPUs or high-performance compute for large-scale training
- Production projects needing a stable, unchanging API (active development)
- Source review
- 43/100 · Major gaps 8 safety controls not found
What does this agent do, and when should you use it?
skrl is an open-source Python library for reinforcement learning, implemented in PyTorch, JAX, and NVIDIA Warp, with a design focus on modularity, readability, simplicity, and transparency of algorithm implementation. It supports OpenAI Gym, Farama Gymnasium, PettingZoo, ManiSkill, and other environment interfaces, and allows loading and configuring NVIDIA Isaac Lab and MuJoCo Playground environments. The library enables simultaneous training of agents by scopes (subsets of environments among all available environments), which may or may not share resources, in the same run. The project is under active continuous development, features thorough documentation, and provides a citation reference.
skrl provides a set of modular RL algorithms and utilities that can be used directly or extended. Users can install via pip ('pip install skrl'), then import the skrl module, select an algorithm (e.g., PPO, SAC), choose an environment (Gymnasium, Isaac Lab, etc.), configure hyperparameters, and start training. It supports switching backends between PyTorch, JAX, and NVIDIA Warp, offers multi-agent support, and allows training multiple environment subsets in parallel by scope. The library's API is transparent, with documentation covering classes and methods such as skrl.agents and skrl.environments.
- Researchers who want to quickly compare RL algorithm performance across PyTorch, JAX, and NVIDIA Warp, using skrl's modular design to easily switch backends.
- Robotics engineers who need to train control policies in NVIDIA Isaac Lab simulation, using skrl to load and configure Isaac Lab environments.
- Developers who want to train multiple environment subsets (e.g., different physics parameters or tasks) in parallel in a single run, using skrl's scope-based training.
- Students or educators who need a clean, readable RL library for teaching and learning algorithm implementations, thanks to skrl's transparent code and documentation.
- Multi-agent researchers who need support for PettingZoo multi-agent environments, which skrl provides.
How do you install or deploy this agent?
skrl can be installed via pip, though the exact command is not specified. Typically, in a virtual environment with Python and the desired framework (PyTorch, JAX, or Warp), run 'pip install skrl'. The latest development version is available from the 'develop' branch on GitHub. For specific environments like Isaac Lab, additional dependencies may be needed; see the official documentation at https://skrl.readthedocs.io for details.
How do you use this agent?
After installation, refer to the official documentation at https://skrl.readthedocs.io for detailed examples. A typical usage: import skrl, choose an algorithm class (e.g., 'from skrl.agents.ppo import PPO'), configure the environment and parameters, then call the training loop. The documentation provides complete example code and API reference.
What are this agent's strengths and limitations?
- Supports three backends: PyTorch, JAX, and NVIDIA Warp, offering cross-framework flexibility.
- Modular design decouples algorithms from environments, making it easy to extend and customize.
- Supports various environment interfaces (Gym/Gymnasium, Isaac Lab, MuJoCo Playground, etc.), including multi-agent support.
- Allows parallel training by scopes in a single run, efficient use of computational resources.
- Thorough documentation and a provided citation reference.
- The project is under active development; APIs may change, requiring users to track version updates.
- Dependencies for specific environments (e.g., Isaac Lab) may require additional configuration; installation steps are not fully documented.
- No CLI is documented; the library primarily uses Python APIs, requiring programming skills.
- Lacks an out-of-the-box command-line tool; users may need to write substantial code.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| skrl: Modular Reinforcement Learning Library This agent | 43 · Major gaps | Library / SDKFree | ★ 1.1k | today | Python | — |
| IR-SIM: Lightweight Robot Simulator | 43 · Major gaps | Library / SDKFree | ★ 1.1k | 8d ago | Python | — |
| Hands-On Modern RL | 30 · Major gaps | CLIFree | ★ 4.7k | 17d ago | Python | — |
| Trace Generative Optimizer | 67 · Some gaps | Library / SDKFree + model costs | ★ 762 | 1y ago | Python | OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows an open-source library with no permission model or user confirmation mechanism, no data flow transparency or sensitive data handling documentation. Dependency security not mentioned, external effects (e.g., training side effects) not discussed, rollback mechanism not provided, source attribution only via author field and license, but publisher unverified. Thus all trust criteria score 0.
Self-consistency: README, pyproject.toml, and license are consistent in name, version, and description, score 2. Dependency availability: dependency list is clear, but no lock file or version ranges provided, score 2. Failure messages: no documentation of error handling or user guidance, score 1.
Audience and scenarios: clearly aimed at RL researchers and developers, supports multiple environments, score 2. Capability boundaries: describes supported frameworks and environments, but no explicit limitations, score 2. Trigger precision: as a library, trigger mechanism not applicable, but documentation does not clarify when to use, score 1. Environment fit: supports multiple environments, but no configuration details, score 2.
Information architecture: README and documentation links clear, score 2. Install notes: pyproject.toml provides dependencies and optional dependencies, but no detailed installation steps, score 2. Naming stability: version number clear, but no API stability mentioned, score 2. Examples and FAQ: README mentions documentation has examples, but no concrete examples provided, score 2. Known limitations: not explicitly listed, score 1. License: MIT license clear, score 3. Versioning and changelog: version number exists, but no changelog provided, score 2. Maintenance responsibility: author and maintainer fields clear, but unverified, score 2.
Output usability: as a library, output is code and documentation, but no specific output format, score 2. Marginal value: provides multi-framework support, valuable, score 2. Cost-benefit: many dependencies, but no performance benchmarks, score 2.
Claim traceability: claims in README align with code and documentation, score 2. Cross-source corroboration: relies on single source, no external verification, score 1. Fact-inference separation: documentation distinguishes description and citation, score 2.
- Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
- Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
- Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
- Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
- Publisher identity unverified, proceed with caution.
- No dependency locking or security audit, potential supply chain risk.
- No rollback or data protection mechanisms, not suitable for sensitive data.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
2.1.0 skrl-v2.1.0
Release notes excerpt
[2.1.0] - 2026-05-10 Changed - Improving the robustness and learning capabilities of on-policy algorithms: - Sample data from memory using per-epoch mini-batch shuffling - Sum-reduce policy entropy to prevent collapse into near-deterministic stand still behavior - Set the random memory replacement argument to false by default Fixed - Fix time limits handling of truncation signals in on-policy agents/multi-agents - Fix the indexing of finished episodes for cumulative rewards and timestep trackingView on GitHub ↗ -
2.0.0 skrl-v2.0.0
Release notes excerpt
[2.0.0] - 2026-04-08 Summary of the most relevant features: - RL algorithm implementations in NVIDIA Warp - Differentiate between environment observations and states (also known as privileged observation) - Support for MuJoCo Playground and ManiSkill environments Added - Implement RL algorithms in NVIDIA Warp - Add loader and wrapper for MuJoCo Playground environments - Add wrapper for ManiSkill environments - Add Tabular model instantiator (epsilon-greedy variant) - Add clip_mean_actions parameter to Gaussian and Multivariate Gaussian models …View on GitHub ↗ -
1.4.3 skrl-v1.4.3
Release notes excerpt
[1.4.3] - 2025-03-29 Changed - Update the GitHub Actions workflows for testing and coverage - Update minimum supported Python version to 3.8 and minimum dependencies versions Fixed - Fix environment wrapper issues with spaces utilities' keyword-only arguments (introduced in previous version) - Fix noise device definition in runner implementationsView on GitHub ↗