Open source home automation, installed and run
Home automation and smart home tools you can run yourself. The list is ordered by whether each project came up when Argusic installed it fresh, with the recording of that attempt one click away.
Tested between and . Each row shows its own test date; a project can change after that day.
15 of 20 tested projects run. 79 more waiting for a test.
In short: 10 of the 20 tested projects started as-is on a fresh machine: local-deep-research, hass-xiaomi-miot, Gladys, homebridge-config-ui-x, home-assistant-config, deconz-rest-plugin, homeassistant-powercalc, and ha-llmvision, and 2 more. 5 more started once a stand-in replaced a service they expect, such as a database: evcc, CasaOS, HomeSpan, OpenCCU, and ha-mcp. 5 could not be verified: button-card, lovelace-xiaomi-vacuum-map-card, HomeAssistant-Tapo-Control, ProxmoxVE, and supervisor; the log shows where each one stopped.
Measured by Argusic on a fresh machine every time. Every number links to its evidence.
| # | project | verdict | Argusic Score | language | stars | tested on |
|---|---|---|---|---|---|---|
| 1 | local-deep-research | Runs | 100 / 100 | Python | 9,164 | |
~95% on SimpleQA (e.g. Qwen3.6-27B on a 3090). Supports all local and cloud LLMs (llama.cpp, Ollama, Google, ...). 10+ search engines - arXiv, PubMed, your... What the test found: The project installs cleanly via pip install -e . its FastAPI web server launches and responds with HTTP 200, the Vite frontend builds successfully, and over 700 pytest tests pass across all major subsystems. 32 minutes. | ||||||
| 2 | hass-xiaomi-miot | Runs | 100 / 100 | Python | 6,155 | |
Automatic integrate all Xiaomi devices to HomeAssistant via miot-spec, support Wi-Fi, BLE, ZigBee devices. 小米米家智能家居设备接入Hass集成 What the test found: Python virtual environment created, all dependencies installed (except netifaces, which is non-essential), and the full test suite of 200 tests passes in 4.4 seconds on Home Assistant 2025.1.4. 4 minutes. | ||||||
| 3 | Gladys | Runs | 100 / 100 | JavaScript | 3,226 | |
A privacy-first, open-source home assistant What the test found: Server builds, starts, listens on port 1443, runs migrations, serves API, and passes 6264/6274 server tests. 9 tests fail due to missing sqlite3 CLI, Docker, and Gladys Plus gateway, all environmental. 83 minutes. | ||||||
| 4 | homebridge-config-ui-x | Runs | 100 / 100 | TypeScript | 2,804 | |
The Homebridge UI. Monitor, configure and backup Homebridge from a browser. What the test found: The Homebridge UI server builds and starts successfully, all 797 tests pass, and the web UI responds on port 8080 with HTTP 200. 10 minutes. | ||||||
| 5 | home-assistant-config | Runs | 100 / 100 | JavaScript | 1,968 | |
Home Assistant config files, rewritten to use the latest features, 100+ documented automations, automatically generated ToC :house: :robot: What the test found: Home Assistant 2025.1.4 starts successfully and responds to HTTP requests on port 8123 with the login page. 18 minutes. | ||||||
| 6 | deconz-rest-plugin | Runs | 100 / 100 | C++ | 1,906 | |
deCONZ REST-API plugin to control ZigBee devices What the test found: The deCONZ REST API plugin libde_rest_plugin.so builds successfully on Ubuntu 24.04 with Qt6, and the 303-timeref unit test compiles and passes 1/1 test cases with all 7 benchmarks completing. 25 minutes. | ||||||
| 7 | homeassistant-powercalc | Runs | 100 / 100 | Python | 1,599 | |
Home Assistant Custom component to calculate estimated power consumption of lights and other appliances What the test found: All 1482 tests pass after installing dependencies with uv sync and creating a symlink for the test custom component. The powercalc Python module loads without errors. 4 minutes. | ||||||
| 8 | ha-llmvision | Runs | 100 / 100 | Python | 1,488 | |
Visual intelligence for your home. What the test found: All 453 unit tests pass; the module imports cleanly; all three dependency version conflicts were resolved by relaxing pin constraints. 60 minutes. | ||||||
| 9 | RuView | Runs | 94.3 / 100 | Rust | 96,878 | |
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection, all without a single pixel of video. What the test found: Python deterministic verification pipeline runs and produces a bit-identical SHA-256 hash; 46 Python unit tests pass; 93 RuView harness tests pass; 27 Homecore harness tests pass; 42 Rust core+utility tests pass; Rust full workspace cannot compile due to system library dependencies (glib); no hardware available for... 36 minutes. | ||||||
| 10 | ioBroker | Runs | 75 / 100 | Shell | 1,378 | |
Automate your life! What the test found: npm install and build succeed; ioBroker controller 7.2.2 starts and serves Admin UI on port 8081 with real packages installed via npm path. 15 minutes. | ||||||
| 11 | evcc | Runs with mocks | 92 / 100 | Go | 7,335 | |
solar charging ☀️🚘 What the test found: evcc builds from source, all 88 Go test packages pass, and the binary serves the full web UI and REST API in demo mode returning HTTP 200 on both / and /api/state. 14 minutes. | ||||||
| 12 | CasaOS | Runs with mocks | 87 / 100 | Go | 37,290 | |
CasaOS - A simple, easy-to-use, elegant open-source Personal Cloud system. What the test found: CasaOS Go backend compiles and serves API endpoints (200 on /ping, /doc/openapi.yaml, /v1/sys/version/current returning 0.4.15) on a dynamically-assigned local port; UI build cannot complete due to inaccessible private npm packages. 13 minutes. | ||||||
| 13 | HomeSpan | Runs with mocks | 71 / 100 | C++ | 2,173 | |
HomeKit Library for the Arduino-ESP32 What the test found: HomeSpan 2.1.8 library firmware compiles and links into a valid ESP32 binary image under PlatformIO 6.2.0 with Arduino-ESP32 3.3.12 framework and xtensa-esp-elf 15.2.0 toolchain using the huge_app partition scheme. 37 minutes. | ||||||
| 14 | OpenCCU | Runs with mocks | 48.5 / 100 | JavaScript | 1,842 | |
:house: Buildroot-based, cloud-free smart-home platform for a Homematic IP CCU (CCU3/ELV-Charly). Runs on Raspberry Pi & x86/ARM or as a virtual appliance... What the test found: All 64 unit tests pass across 5 Python test suites. The fake Buildroot build for oci_amd64 produces release tarball, OVA, rootfs.tar, and sdcard.img artifacts. The LED daemon compiles and runs correctly against mocked sysfs. 6 minutes. | ||||||
| 15 | ha-mcp | Runs with mocks | 23 / 100 | Python | 4,976 | |
The Unofficial and Awesome Home Assistant MCP Server What the test found: Dependencies installed, smoke test passes, and the full unit test suite passes (11,790 passed, 357 skipped, 0 failed). 70 minutes. | ||||||
| 16 | button-card | Could not verify | 80 / 100 | TypeScript | 2,509 | |
❇️ Lovelace button-card for home assistant What the test found: The button-card project installed dependencies, passed lint, built dist/button-card.js (162KB valid JS), and built MkDocs documentation. No automated test suite exists. 5 minutes. | ||||||
| 17 | lovelace-xiaomi-vacuum-map-card | Could not verify | 80 / 100 | TypeScript | 1,944 | |
This card provides a user-friendly way to fully control map-based vacuums in Home Assistant. Supported brands include Xiaomi... What the test found: npm install succeeds, TypeScript/Rollup build completes with zero errors, producing a valid ES-module JS bundle at dist/xiaomi-vacuum-map-card.js. 4 minutes. | ||||||
| 18 | HomeAssistant-Tapo-Control | Could not verify | 77.5 / 100 | Python | 2,010 | |
Control for Tapo cameras as a Home Assistant component What the test found: Tapo: Cameras Control v7.1.27 integration fully installable and importable in Python 3.12.3 venv on HA 2025.1.4: all 16 .py files compile, all 15 modules import, all dependencies (pytapo, onvif-zeep-async, ha-ffmpeg, aiofiles, numpy) resolve, config flow has 21 step handlers, 2 services and 9 translations validated... 11 minutes. | ||||||
| 19 | ProxmoxVE | Could not verify | 65 / 100 | Shell | 29,756 | |
Proxmox VE Helper-Scripts (Community Edition) What the test found: All 1304 shell scripts and 10 core .func library files pass syntax validation; core libraries (core.func, api.func, error_handler.func, build.func) load and execute correctly with all functions defined; the repository cannot run end-to-end without a Proxmox VE host, but every script in the repo is syntactically valid. 10 minutes. | ||||||
| 20 | supervisor | Could not verify | 0 / 100 | Python | 2,235 | |
:house_with_garden: Home Assistant Supervisor What the test found: Supervisor package installed with Python 3.14.8, all dependencies loaded, core test suite (547 tests) passes on mocked Docker/D-Bus infrastructure. 100 minutes. | ||||||
| - | room-assistant | Not yet tested | - | TypeScript | 1,351 | - |
| - | spook | Not yet tested | - | Python | 1,334 | - |
| - | node-hue-api | Not yet tested | - | TypeScript | 1,196 | - |
| - | pyatv | Not yet tested | - | Python | 1,182 | - |
| - | zha-device-handlers | Not yet tested | - | Python | 1,143 | - |
| - | camera.ui | Not yet tested | - | TypeScript | 1,126 | - |
| - | HomeKey-ESP32 | Not yet tested | - | C++ | 1,092 | - |
| - | presence_simulation | Not yet tested | - | Python | 1,082 | - |
| - | HomeAssistant-OctopusEnergy | Not yet tested | - | Python | 1,021 | - |
| - | ha-wyzeapi | Not yet tested | - | Python | 999 | - |
| - | home-assistant-tapo-p100 | Not yet tested | - | Python | 976 | - |
| - | Home-Assistant-Mail-And-Packages | Not yet tested | - | Python | 892 | - |
| - | local_roborock_server | Not yet tested | - | Python | 887 | - |
| - | unifi-mcp | Not yet tested | - | Python | 872 | - |
| - | tapo | Not yet tested | - | Rust | 850 | - |
| - | blinkpy | Not yet tested | - | Python | 809 | - |
| - | nuki_hub | Not yet tested | - | C++ | 747 | - |
| - | node-sonos | Not yet tested | - | JavaScript | 724 | - |
| - | emhass | Not yet tested | - | Python | 697 | - |
| - | home-assistant-vibecode-agent | Not yet tested | - | Python | 633 | - |
| - | node-red-contrib-home-assistant-websocket | Not yet tested | - | TypeScript | 599 | - |
| - | synology-api | Not yet tested | - | Python | 595 | - |
| - | go-hass-agent | Not yet tested | - | Go | 588 | - |
| - | ha-google-home | Not yet tested | - | Python | 562 | - |
| - | Home-Assistant_Config | Not yet tested | - | Python | 561 | - |
| - | HAsmartirrigation | Not yet tested | - | Python | 559 | - |
| - | ha-linky | Not yet tested | - | TypeScript | 540 | - |
| - | MerossIot | Not yet tested | - | Python | 538 | - |
| - | app-ssh | Not yet tested | - | Shell | 536 | - |
| - | RedMatic | Not yet tested | - | JavaScript | 528 | - |
| - | homeassistant-solax-modbus | Not yet tested | - | Python | 522 | - |
| - | ha-solarman | Not yet tested | - | Python | 521 | - |
| - | ESPAltherma | Not yet tested | - | C | 506 | - |
| - | homeassistant_espscreen | Not yet tested | - | Python | 502 | - |
| - | localthings | Not yet tested | - | Python | 501 | - |
| - | mirrormate | Not yet tested | - | TypeScript | 493 | - |
| - | lnxlink | Not yet tested | - | Python | 488 | - |
| - | ha-evcc | Not yet tested | - | Python | 478 | - |
| - | iot-inspector-client | Not yet tested | - | Python | 478 | - |
| - | irrigation_unlimited | Not yet tested | - | Python | 463 | - |
| - | hass-opnsense | Not yet tested | - | Python | 461 | - |
| - | home-assistant-global-health-score | Not yet tested | - | Python | 459 | - |
| - | jarvis-assistant-vocal | Not yet tested | - | Python | 449 | - |
| - | node-red-contrib-homekit-bridged | Not yet tested | - | TypeScript | 445 | - |
| - | neonplan3d | Not yet tested | - | TypeScript | 417 | - |
| - | majordomo | Not yet tested | - | PHP | 405 | - |
| - | esphome-panasonic-ac | Not yet tested | - | C++ | 403 | - |
| - | ocpp | Not yet tested | - | Python | 400 | - |
| - | pylips | Not yet tested | - | Python | 393 | - |
| - | roommind | Not yet tested | - | Python | 392 | - |
| - | homebridge-z2m | Not yet tested | - | TypeScript | 383 | - |
| - | kelvin | Not yet tested | - | Go | 369 | - |
| - | homeassistant-blitzortung | Not yet tested | - | Python | 350 | - |
| - | xknx | Not yet tested | - | Python | 345 | - |
| - | hass-mcp | Not yet tested | - | Python | 344 | - |
| - | purifier-card | Not yet tested | - | TypeScript | 344 | - |
| - | swiss-army-knife-card | Not yet tested | - | JavaScript | 344 | - |
| - | sunsynk | Not yet tested | - | Python | 339 | - |
| - | AlertTicker-Card | Not yet tested | - | JavaScript | 333 | - |
| - | ioBroker.javascript | Not yet tested | - | JavaScript | 330 | - |
| - | solaredge-modbus-multi | Not yet tested | - | Python | 329 | - |
| - | platypush | Not yet tested | - | Python | 317 | - |
| - | home-generative-agent | Not yet tested | - | Python | 313 | - |
| - | ha-sun2 | Not yet tested | - | Python | 309 | - |
| - | Naomi | Not yet tested | - | Python | 303 | - |
| - | ioBroker.admin | Not yet tested | - | TypeScript | 301 | - |
| - | ecowitt2mqtt | Not yet tested | - | Python | 298 | - |
| - | ha-tplink-deco | Not yet tested | - | Python | 297 | - |
| - | midea_auto_cloud | Not yet tested | - | Python | 294 | - |
| - | Shortumation | Not yet tested | - | TypeScript | 292 | - |
| - | smart-home | Not yet tested | - | Shell | 292 | - |
| - | ha-dockermon | Not yet tested | - | JavaScript | 289 | - |
| - | hass-entso-e | Not yet tested | - | Python | 280 | - |
| - | pyvesync | Not yet tested | - | Python | 244 | - |
| - | boschshc-hass | Not yet tested | - | Python | 237 | - |
| - | beatify | Not yet tested | - | Python | 229 | - |
| - | rtl8196e-gateway | Not yet tested | - | C | 213 | - |
| - | Linus-Dashboard | Not yet tested | - | JavaScript | 211 | - |
| - | Prism-Dashboard | Not yet tested | - | JavaScript | 207 | - |
runs installed and started with its real dependencies. runs with mocks started after stand-ins replaced external services such as a database or a third-party API. could not verify neither the standard agent nor the stronger one got it running within the time limit; the log shows where it stopped.
How we tested
On this list as of the latest test: 10 projects ran as-is, 5 with mocks, 5 could not be verified, 79 still waiting. Languages tested: C++, Go, JavaScript, Python, Rust, Shell, TypeScript. Every attempt used a clean single-use machine, the subject at a pinned version, and a 45-minute limit; the complete procedure is on the methodology page.
Frequently asked questions (FAQs)
How is this list ranked?
By measurement, not opinion: projects Argusic installed and launched on a fresh machine come first, then those that ran with mocks in place of external services, then those it could not verify. Ties go to the Argusic Score, then how popular it is on its own source.
Why are some projects unranked?
79 projects are still waiting for a test or for a finished attempt. They are listed without a rank until Argusic has measured them.
Where is the evidence?
Every row links to the project's Argusic page, where each run has a full log and a terminal recording stored with a sha256 fingerprint. The same pages exist for every one of the tested projects, on this list or not.
More lists in this category
- self-hosted AI apps (shares mirrormate with this list)
- MCP servers (shares ha-mcp with this list)
- browser automation tools (shares jarvis-assistant-vocal with this list)
- AI agent frameworks
- API clients
- API gateways
- CI/CD tools
- CMS platforms
- LLM gateways
- VPN tools
- backup tools
- code editors
- open source coding agents
- Open source databases, installed and queried
- developer CLI tools
- e-commerce platforms
- ebook readers
- game engines
- open source games
- low-code platforms
- map tools
- message queues
- Open source music servers, installed and played
- observability tools
- Open source office suites, installed and launched
- self-hosted password managers
- project management tools
- screen recorders
- search engines
- self-hosted analytics
- speech tools
- static site generators
- uptime monitors
- vector databases
- open source video editors
- video players
- web scraping tools
- whiteboard tools
- wikis
- workflow automation tools
- self-hosted Notion alternatives
- self-hosted dashboards
- self-hosted git servers