pyperplan
A lightweight STRIPS planner written in Python.
What it is and what it does
Pyperplan is a classical planning engine that takes PDDL (Planning Domain Definition Language) specifications and computes sequences of actions to solve planning problems. It was originally developed as a teaching tool at a university planning course and deliberately prioritizes clean, understandable code over raw performance. The planner supports STRIPS (Simplified Planning Domain Representation Language) without action costs and can be invoked from the command line with a domain file and a problem file, optionally using different search algorithms and heuristics like greedy best-first search with the FF heuristic.
The package is suitable for educational use, prototyping, and research contexts where clarity and extensibility matter more than state-of-the-art speed. It runs on Python 3.6 and later, has minimal dependencies (only wheel), and is actively maintained. The authors explicitly caution that Pyperplan does not offer competitive performance for production planning tasks, making it most valuable for learning how planning algorithms work or for small-scale experimental work.
Use it for:
- Teaching classical planning algorithms and STRIPS semantics in an AI or computer science course.
- Prototyping planning solutions for academic papers or research projects before moving to optimized solvers.
- Extending the planner with custom heuristics or search strategies for experimental work.
- Solving small to medium PDDL planning problems where execution speed is not a constraint.
- Understanding how domain and problem specifications map to action sequences in planning.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pyperplan is a lightweight STRIPS planner that solves classical planning problems by reading PDDL domain and problem files and computing action sequences to reach a goal state.
Yes, if you are learning planning, doing research, or prototyping. The low install friction, active maintenance, and clean codebase make it ideal for education and experimentation. No, if you need production-grade performance or are solving large-scale planning problems—the authors explicitly warn against using Pyperplan for performance-critical work. The GPLv3+ license is permissive for academic and open-source use but restricts proprietary applications.
Install
pyperplan on PyPI
pip
pip install pyperplanuv
uv add pyperplanpoetry
poetry add pyperplanInstalling pyperplan
Before you install
Installation is straightforward with low friction—a single wheel dependency. The project is actively maintained with a recent commit on 2026-06-16, though the latest release was 2022-01-17, so updates may be infrequent.
License in practice
Pyperplan is licensed under GPLv3+, a copyleft license. Any derivative work or distribution must also be open source under compatible terms; proprietary use or closed-source integration is not permitted.
Quickstart
pip install pyperplan
pyperplan benchmarks/tpp/domain.pddl benchmarks/tpp/task01.pddl
# For heuristic search:
pyperplan -H hff -s gbf domain.pddl problem.pddl
Requires Python >= 3.6. PDDL domain and problem files must be provided; the planner does not generate plans from natural language or other input formats.
Verify before relying
- Whether the planner's performance is suitable for problems beyond teaching or prototyping contexts.
- Availability and quality of documentation beyond the brief README guidance.
Package facts
| License | GPL3+ (copyleft) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — wheel |
| Maintenance | actively maintained — 1,670 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 113,977/month — #12,320 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyperplan-2.1-py2.py3-none-any.whl
Keywords: classical, planning, STRIPS
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
unified-planningUnified Planning provides a Python library for…
permissive · top 15,000 on PyPI
mplibMPlib provides motion planning algorithms for…
permissive · top 15,000 on PyPI
python-motion-planningImplements motion planning algorithms including…
copyleft · top 15,000 on PyPI
bddlBDDL is a domain-specific language for defining…
unclear · top 15,000 on PyPI
python-constraintSolves constraint satisfaction problems (CSPs)…
permissive · top 15,000 on PyPI
PuLPPuLP is a linear and mixed-integer programming…
permissive · top 5,000 on PyPI
pypsaPyPSA is a Python framework for optimizing and…
permissive · top 15,000 on PyPI
toppraComputes time-optimal path parameterization for…
permissive · top 15,000 on PyPI
npmai-agentsAutonomous AI agent framework that executes…
permissive · top 15,000 on PyPI
atddATDD is a CLI toolkit that structures AI agent…
permissive · top 15,000 on PyPI