Skip to content

Repository files navigation

Automaton

    _         _                        _              
   / \  _   _| |_ ___  _ __ ___   __ _| |_ ___  _ __  
  / _ \| | | | __/ _ \| '_ ` _ \ / _` | __/ _ \| '_ \ 
 / ___ \ |_| | || (_) | | | | | | (_| | || (_) | | | |
/_/   \_\__,_|\__\___/|_| |_| |_|\__,_|\__\___/|_| |_|

A programmatic approach to Zigbee2MQTT home automation.

Node.js >= 20 License: AGPL v3 TypeScript-Free

This is a TypeScript-free project. Stop JavaScript pollution.

Automaton is a pure JavaScript Zigbee2MQTT sidekick that provides rule-based automations, device interactions triggered by Zigbee remotes, an AI-powered chat assistant with TTS support, and a terminal UI inspired by classic IRC clients. It connects to your existing Zigbee2MQTT installation via MQTT and uses Redis for state caching.

⚠️ Experimental Software

This project is in early active development. APIs, configuration formats, and architecture may change without notice between versions. Not recommended for production use yet — pin your version and test thoroughly before upgrading.


Quick start

git clone https://github.com/kyeno/automaton.git && cd automaton
npm install
sh bin/automaton

For detailed setup instructions, see Installation & Requirements.


Documentation

Document Description
Installation & Requirements Runtime deps, system packages, first-time setup
Configuration Guide Every config file, environment variable, and i18n bundle explained
Example Automations Included example automations and how they work
Terminal UI Windows, channels, layout, input modes, slash commands
Architecture Project structure, core concepts, CLI usage, testing
TODO & Roadmap Planned features and known issues

Generated API Reference

JSDoc-based API documentation can be generated from source code comments:

npm run docs

This produces an HTML site in doc/api/. Open doc/api/index.html in your browser.


Contributing

Please read CONTRIBUTING.md before submitting pull requests. Key points:

  • This is a pure JavaScript project — no TypeScript.
  • All source files use ES modules ("type": "module" in package.json).
  • JSDoc annotations are used throughout for IDE support and self-documentation.

License

Copyright (C) 2026 Ratan M. Kyeno matt@prayam.com

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

See the LICENSE file for the full license text.

Commercial Licensing

If you wish to use this software in a commercial product, SaaS, or inside a closed-source ecosystem without being bound by the copyleft obligations of AGPLv3, a Commercial License is required.

For commercial licensing inquiries, please contact: matt@prayam.com

About

A programmatic approach to Zigbee2MQTT home automation.

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages