Skip to content
Projects

matthewp/robot has 2,203 GitHub stars and 96 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-07 22:47 UTC. Last push 2026-10-31.

How these counts are measured

🤖 A functional, immutable Finite State Machine library

Measured star growth

in 24h
0
in 7 days
Update delayed
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

Robot

The Robot logo, with green background.

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

See regularhuman.dev 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, () => {
  render();
});

📚 Documentation

Testing

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.

Integrations

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

Tools

  • Visualization of robot state machines: robot3-viz

License

BSD-2-Clause

Explore related projects