_ _ _
/ \ _ _| |_ ___ _ __ ___ __ _| |_ ___ _ __
/ _ \| | | | __/ _ \| '_ ` _ \ / _` | __/ _ \| '_ \
/ ___ \ |_| | || (_) | | | | | | (_| | || (_) | | | |
/_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__\___/|_| |_|
A programmatic approach to Zigbee2MQTT home automation.
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.
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.
git clone https://github.com/kyeno/automaton.git && cd automaton
npm install
sh bin/automatonFor detailed setup instructions, see Installation & Requirements.
| 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 |
JSDoc-based API documentation can be generated from source code comments:
npm run docsThis produces an HTML site in doc/api/. Open doc/api/index.html in your browser.
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.
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.
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