Skip to content
πŸ€– A functional, immutable Finite State Machine library
JavaScript HTML Makefile
Branch: master
Clone or download
matthewp Merge pull request #78 from matthewp/nested-docs
Update nested docs to reflect dontWalk should be final state
Latest commit ac2b56a Nov 9, 2019

πŸ€– Robot

A small functional and immutable Finite State Machine library. Using state machines for your components brings the declarative programming approach to application state.

See for the main documentation.

import { createMachine, interpret, state, transition } from 'robot3';

let machine = createMachine({
  off: state(
    transition('toggle', 'on')
  on: state(
    transition('toggle', 'off')

const service = interpret(machine, () => {

πŸ“š Documentation


Tests are located in the test/ folder. Load test/test.html in your browser of choice with any HTTP server you like (I use http-server). Tests are written in QUnit and are simple to understand.


Robot works with a variety of UI libraries, and includes integrations for React, Preact, Haunted, and more. See the integrations page to learn more.



You can’t perform that action at this time.