$npx skillfedfor your agent

automaton

Friendly state machines for Python.

Worth itPyPI Software DevelopmentReleased Mar 2026137.8K downloads / moApache-2.0Pure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — automaton-3.4.0-py3-none-any.whl
v3.4.0 · released 2026-03-24 · Python >=3.10 · 2 runtime deps: PrettyTable, typing-extensions

Yes. Automaton is a lightweight, actively maintained library with no security issues, low install friction, and permissive licensing. It's well-suited if you need explicit state machine semantics in your application. Install it if you're building workflows, event handlers, or any system where state transitions need to be validated and controlled; skip it if your use case is simple enough to handle with conditionals or if you prefer a different state machine abstraction.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.10 or later.
  • Low install friction with a pure-wheel distribution and only two lightweight runtime dependencies.
  • Active maintenance status with a recent release.

License · maintenance · safety

Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.

last release 2026-03-24 (143 days)

0 known vulnerabilities (OSV.dev, 2026-08-14) · 137,778 downloads/mo, #11,357 on PyPI

Verify before relying

pip install automaton

from automaton import machines

machine = machines.FiniteMachine()
machine.add_state('start')
machine.add_state('end')
machine.add_transition('start', 'end', 'go')
machine.initialize(start_state='start')
machine.process_event('go')
  • Whether the library supports hierarchical or nested state machines beyond basic finite state machine patterns.
  • Performance characteristics when handling large numbers of states or transitions.
  • Whether task scheduling and execution features are built-in or require external integration.
Same gist for agents: .md · .json

What it is and what it does

Automaton is a state machine library for Python that abstracts the state machine pattern into reusable, well-documented classes. It lets you define states, transitions between them, and validation rules, then execute state changes in a controlled way. The library is built on top of PrettyTable for display and typing-extensions for type hints, making it suitable for applications that need explicit state management—from workflow engines to task orchestration to event-driven systems.

The package is actively maintained, supports modern Python versions (3.10 through 3.13), and carries no known security vulnerabilities. It's positioned as part of the OpenStack ecosystem but is general-purpose enough for any Python project requiring state machine semantics.

Use it for

  • Build workflow engines where tasks move through defined states (pending, running, completed, failed) with validation at each transition.
  • Implement event-driven systems that respond to specific triggers by transitioning between states in a predictable manner.
  • Create task scheduling systems that track job state and enforce valid state transitions to prevent invalid operations.
  • Validate state sequences in application logic to catch bugs where code attempts invalid state changes.
  • Model complex business logic as explicit state machines to improve code clarity and testability.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

Automaton is a lightweight, actively maintained library with no security issues, low install friction, and permissive licensing. It's well-suited if you need explicit state machine semantics in your application. Install it if you're building workflows, event handlers, or any system where state transitions need to be validated and controlled; skip it if your use case is simple enough to handle with conditionals or if you prefer a different state machine abstraction.

Install

automaton on PyPI

Before you install

Low install friction with a pure-wheel distribution and only two lightweight runtime dependencies. Active maintenance status with a recent release.

Requires Python 3.10 or later.

License in practice

Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.

Quickstart

pip install automaton

from automaton import machines

machine = machines.FiniteMachine()
machine.add_state('start')
machine.add_state('end')
machine.add_transition('start', 'end', 'go')
machine.initialize(start_state='start')
machine.process_event('go')

Verify before relying

  • Whether the library supports hierarchical or nested state machines beyond basic finite state machine patterns.
  • Performance characteristics when handling large numbers of states or transitions.
  • Whether task scheduling and execution features are built-in or require external integration.

Package facts

LicenseApache-2.0 permissive
Python supportSupports the current Python release >=3.10
Install frictionLow. Pure-Python wheel
Runtime dependencies
2 packages
PrettyTabletyping-extensions
MaintenanceActively maintained 143 days since the last release
First released
Downloads137,778 / month, #11,357 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Environment :: OpenStackIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsLicense :: OSI Approved :: Apache Software LicenseOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Typing :: Typed

Evidence: automaton-3.4.0-py3-none-any.whl

Tags

Capabilities
state machine libraryfinite state machine pythonstate transitionsworkflow state managementtask scheduling state machinestate validationstate machine pattern
Topics
state-machineworkflowopenstack

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “state machine library”

  • automatonAutomaton provides state machine classes and utilities for Python,…
  • fysomFysom is a finite state machine library that lets you define states,…
  • transitionsTransitions is a lightweight state machine library that lets you…

Give your agent the search over MCP, or paste the wish link into any chat.

More Software Development packages

typing-extensions Worth it
PyPI · Software Development · released Jul 2026

Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.

PSF-2.0pure Python · 3.9+
1.9Bdownloads / mo
numpy Worth it
PyPI · Software Development · released Aug 2026

NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.

BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0compiled wheel · 3.12+
1.1Bdownloads / mo
fastapi Worth it
PyPI · Software Development · released Jul 2026

FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.

MITpure Python · 3.10+
568.6Mdownloads / mo
annotated-doc With conditions
PyPI · Software Development · released Jul 2026

Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.

MITpure Python · 3.9+
456.2Mdownloads / mo
typer Worth it
PyPI · Software Development · released Aug 2026

Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.

Install it if you are building CLIs in Python.

MITpure Python · 3.10+
369.3Mdownloads / mo
distlib With conditions
PyPI · Software Development · released Jun 2026

Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.

permissive licensepure Python
323.3Mdownloads / mo

See also Automat · cellpylib · django-fsm-2 · python-statemachine · django-fsm · taskflow · transitions · django-fsm-log · greenery · fysom

Further reading