skillfed

pyperplan

A lightweight STRIPS planner written in Python.

pyperplan v2.1 114.0K downloads/30d#12,320 on PyPI127
Copyleft license GPL3+ Active released

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 pyperplan

uv

uv add pyperplan

poetry

poetry add pyperplan

Installing 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

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchLicense :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)Programming Language :: PythonProgramming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Scientific/Engineering

Tags

STRIPS plannerPDDL solverclassical planningautomated planningaction sequence planningAI planning tooldomain problem solver
planning-algorithmseducational-toolpddl

More Scientific/Engineering packages