Skip to main content

AI-driven framework for smart home automation

Project description

OpenAction

OpenAction is an AI-native action framework for the Agentic Home.

Move beyond rigid "If-This-Then-That" rules and tedious UI-based configurations. Powered by AI agent technology, OpenAction replaces traditional smart home solutions with flexible, adaptive logic. It helps to translate natural language intent into dynamic, executable scripts — giving your smart home the ability to adapt, reason, and act.

Read the full architectural deep-dive on Medium: From Smart Home to Agentic Home


Core Features

  • Natural Language Automation: Define complex home behaviors via chat. No more wrestling with nested "If-Then" menus or YAML configurations.
  • Stateful Intelligence: An integrated Store provides persistence, allowing scripts to save and retrieve data across multiple executions.
  • Dynamic Scheduling: A built-in Cron service triggers AI-generated scripts based on time, sensor events, or external API data.
  • Python Execution: The AI generates standard Python code, enabling complex calculations, loops, and sophisticated error handling.

Architecture & Workflow

The system acts as a bridge between high-level reasoning (Agents) and low-level hardware control. Here, the AI agent acts as a software developer who can introspect services and write custom, deterministic Python scripts to control smart home devices. The workflow is as follows:

  1. The Intent: The user describes a goal to an MCP-capable client (e.g., Claude Desktop): "If it’s dark outside and someone is home, turn on the living room light. If we’re away, simulate presence by randomly toggling lights, ending no later than late in the evening."
  2. The Translation: The Agent uses the OpenAction MCP Server tools to inspect available devices and writes a custom Python script.
  3. The Registration: OpenAction stores the script and sets up the necessary triggers (e.g., polling a weather API or listening for a sensor change).
  4. The Execution: When triggered, the script runs in a local sandbox, calling the endpoints of connected Sensors & Actuators.

How to Use It

1. Running via Docker

You can also run OpenAction as a Docker container. Use host networking to allow the server to easily discover and communicate with local network devices. Mount a local directory to preserve the working state (scripts and store data) across container restarts.

sudo docker run -d --name openaction --restart always --log-driver local --log-opt max-size=10m --log-opt max-file=3 --network host -v /etc/script/openaction:/etc/work -e devices='' grro/openaction:0.0.30

Note: Make sure to map a persistent volume to /etc/work so that your environment state and custom scripts are not lost when the container is recreated.

2. Testing with MCP Inspector

You can test the server capabilities and available tools of the running Docker container using the official MCP Inspector via Server-Sent Events (SSE):

npx @modelcontextprotocol/inspector sse http://localhost:8080/sse

Once started, open the provided localhost URL (e.g., http://localhost:5173/) in your browser to inspect the MCP tools and resources.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openaction-0.0.32.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openaction-0.0.32-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file openaction-0.0.32.tar.gz.

File metadata

  • Download URL: openaction-0.0.32.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openaction-0.0.32.tar.gz
Algorithm Hash digest
SHA256 ba9555f51afe16849fd2c2d41908564e00114f8ad21b0b28505f8eb2dfac85c1
MD5 cc47a09ae038fc4c5d65986137739cd2
BLAKE2b-256 5f87704d3f17440674161a75c19792b06479211acfc849db33f03de7df6e61b3

See more details on using hashes here.

File details

Details for the file openaction-0.0.32-py3-none-any.whl.

File metadata

  • Download URL: openaction-0.0.32-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openaction-0.0.32-py3-none-any.whl
Algorithm Hash digest
SHA256 96e49bb3d006788d8009a6b2a0ddbd20be120ae2358b90317c07baa71e3c51bc
MD5 8fc7bc967cf185e0ac890bcab4f1b9ce
BLAKE2b-256 9fe920e8bb07ecc8b1e6b8b253ee59f10cd067c19fb2f443dd5d80f5730dedc3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page