{"data":{"slug":"statelyai-xstate","name":"xstate","tagline":"State machines, statecharts, and actors for complex logic","github_url":"https://github.com/statelyai/xstate","owner":"statelyai","repo":"xstate","owner_avatar_url":"https://avatars.githubusercontent.com/u/61783956?v=4","primary_language":"TypeScript","stars":29864,"forks":1373,"topics":["background-jobs","finite-state-machine","fsm","hacktoberfest","interpreter","javascript","orchestration","scxml","state","state-machine","state-management","statechart","statecharts","typescript","visualizer","workflow"],"archived":false,"github_pushed_at":"2026-07-14T17:18:24+00:00","maintenance_label":"Very active","url":"https://www.graphcanon.com/tools/statelyai-xstate","markdown_url":"https://www.graphcanon.com/tools/statelyai-xstate.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/statelyai-xstate","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=statelyai-xstate","description":"State machines, statecharts, and actors for complex logic","homepage_url":"https://stately.ai/docs","license":"MIT","open_issues":119,"watchers":185,"ai_summary":null,"readme_excerpt":"## Super quick start\n\n```bash\nnpm install xstate\n```\n\n```ts\nimport { createMachine, createActor, assign } from 'xstate';\n\n// State machine\nconst toggleMachine = createMachine({\n  id: 'toggle',\n  initial: 'inactive',\n  context: {\n    count: 0\n  },\n  states: {\n    inactive: {\n      on: {\n        TOGGLE: { target: 'active' }\n      }\n    },\n    active: {\n      entry: assign({ count: ({ context }) => context.count + 1 }),\n      on: {\n        TOGGLE: { target: 'inactive' }\n      }\n    }\n  }\n});\n\n// Actor (instance of the machine logic, like a store)\nconst toggleActor = createActor(toggleMachine);\ntoggleActor.subscribe((state) => console.log(state.value, state.context));\ntoggleActor.start();\n// => logs 'inactive', { count: 0 }\n\ntoggleActor.send({ type: 'TOGGLE' });\n// => logs 'active', { count: 1 }\n\ntoggleActor.send({ type: 'TOGGLE' });\n// => logs 'inactive', { count: 1 }\n```\n\n---\n\n<a id=\"xstate-store\"></a>","github_created_at":"2015-09-14T15:04:15+00:00","created_at":"2026-07-15T10:45:39.082981+00:00","updated_at":"2026-07-15T10:45:42.782091+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"}],"tags":[{"slug":"background-jobs","name":"background-jobs"},{"slug":"finite-state-machine","name":"finite-state-machine"},{"slug":"fsm","name":"fsm"},{"slug":"hacktoberfest","name":"hacktoberfest"},{"slug":"interpreter","name":"interpreter"},{"slug":"javascript","name":"javascript"},{"slug":"orchestration","name":"orchestration"},{"slug":"scxml","name":"scxml"}],"trust":{"provenance":{"is_fork":false,"github_id":42455934,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-15T10:45:40.163Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":30,"days_since_push":0,"last_release_at":"2026-07-14T17:18:27Z"},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-15T10:45:40.625Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-07-15T10:45:39.915Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-07-15T10:45:39.915Z"},"languages":{"value":["typescript","javascript"],"source":"github.language+package.json","observed_at":"2026-07-15T10:45:39.915Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-07-15T10:45:39.915Z"}}}}