{"id":14978022,"url":"https://github.com/genielabs/homegenie","last_synced_at":"2026-04-26T13:00:54.208Z","repository":{"id":14362895,"uuid":"17072697","full_name":"genielabs/HomeGenie","owner":"genielabs","description":"HomeGenie: The Programmable Intelligence with 100% Local Agentic AI.","archived":false,"fork":false,"pushed_at":"2026-04-19T14:01:34.000Z","size":276865,"stargazers_count":449,"open_issues_count":9,"forks_count":159,"subscribers_count":41,"default_branch":"master","last_synced_at":"2026-04-19T16:06:58.663Z","etag":null,"topics":["artificial-intelligence","automation","building-automation","computer-vision","gpio","home-automation","iot","knx","machine-learning","open-source","raspberrypi","self-hosted","smart-home","x10","zigbee","zwave"],"latest_commit_sha":null,"homepage":"https://homegenie.it","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/genielabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["genemars"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":"https://paypal.me/genielabs"}},"created_at":"2014-02-21T22:55:33.000Z","updated_at":"2026-04-19T14:01:40.000Z","dependencies_parsed_at":"2024-04-15T22:42:12.870Z","dependency_job_id":"85027a14-0afc-4309-9bd3-4291c391cecc","html_url":"https://github.com/genielabs/HomeGenie","commit_stats":null,"previous_names":[],"tags_count":195,"template":false,"template_full_name":null,"purl":"pkg:github/genielabs/HomeGenie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genielabs%2FHomeGenie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genielabs%2FHomeGenie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genielabs%2FHomeGenie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genielabs%2FHomeGenie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/genielabs","download_url":"https://codeload.github.com/genielabs/HomeGenie/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genielabs%2FHomeGenie/sbom","scorecard":{"id":422509,"data":{"date":"2025-08-11","repo":{"name":"github.com/genielabs/HomeGenie","commit":"4b6168fa76ff427ca4f0c197e58433ce33adba62"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.7,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":2,"reason":"3 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/msbuild.yml:19","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Binary-Artifacts","score":0,"reason":"binaries present in source code","details":["Warn: binary detected: assets/build/windows/lame.exe:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/7ZDP_LZMA.sfx:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/InstallDriver.exe:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/amd64/libusb0.dll:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/amd64/libusb0.sys:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/amd64/libusbK.dll:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/dpinst32.exe:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/dpinst64.exe:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/dpscat.exe:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/x86/libusb0.sys:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/x86/libusb0_x86.dll:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_ActiveHome_Interface/x86/libusbK_x86.dll:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/7ZDP_LZMA.sfx:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/InstallDriver.exe:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/amd64/WdfCoInstaller01009.dll:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/amd64/libusbK.dll:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/amd64/winusbcoinstaller2.dll:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/dpinst32.exe:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/dpinst64.exe:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/dpscat.exe:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/x86/WdfCoInstaller01009.dll:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/x86/libusbK_x86.dll:1","Warn: binary detected: assets/deploy/windows/Drivers/USB_Transceiver/x86/winusbcoinstaller2.dll:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.4.0-beta.89 not signed: https://api.github.com/repos/genielabs/HomeGenie/releases/235764193","Warn: release artifact v1.4.0-beta.88 not signed: https://api.github.com/repos/genielabs/HomeGenie/releases/233600474","Warn: release artifact v1.4.0-beta.87 not signed: https://api.github.com/repos/genielabs/HomeGenie/releases/229093394","Warn: release artifact v1.4.0-beta.86 not signed: https://api.github.com/repos/genielabs/HomeGenie/releases/214359112","Warn: release artifact v1.4.0-beta.85 not signed: https://api.github.com/repos/genielabs/HomeGenie/releases/212562200","Warn: release artifact v1.4.0-beta.89 does not have provenance: https://api.github.com/repos/genielabs/HomeGenie/releases/235764193","Warn: release artifact v1.4.0-beta.88 does not have provenance: https://api.github.com/repos/genielabs/HomeGenie/releases/233600474","Warn: release artifact v1.4.0-beta.87 does not have provenance: https://api.github.com/repos/genielabs/HomeGenie/releases/229093394","Warn: release artifact v1.4.0-beta.86 does not have provenance: https://api.github.com/repos/genielabs/HomeGenie/releases/214359112","Warn: release artifact v1.4.0-beta.85 does not have provenance: https://api.github.com/repos/genielabs/HomeGenie/releases/212562200"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/msbuild.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/genielabs/HomeGenie/msbuild.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/msbuild.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/genielabs/HomeGenie/msbuild.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/genielabs/HomeGenie/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/genielabs/HomeGenie/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/genielabs/HomeGenie/release.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}}]},"last_synced_at":"2025-08-19T01:34:17.512Z","repository_id":14362895,"created_at":"2025-08-19T01:34:17.512Z","updated_at":"2025-08-19T01:34:17.512Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32297899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","automation","building-automation","computer-vision","gpio","home-automation","iot","knx","machine-learning","open-source","raspberrypi","self-hosted","smart-home","x10","zigbee","zwave"],"created_at":"2024-09-24T13:56:43.408Z","updated_at":"2026-04-26T13:00:54.202Z","avatar_url":"https://github.com/genielabs.png","language":"JavaScript","funding_links":["https://github.com/sponsors/genemars","https://paypal.me/genielabs"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://genielabs.github.io/HomeGenie/images/homegenie_logo.svg\" alt=\"HomeGenie Logo\" width=\"150\"/\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003eHomeGenie\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eThe Programmable Intelligence, with 100% Local Agentic AI.\u003c/strong\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://homegenie.it\"\u003e\u003cstrong\u003ewww.homegenie.it\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/genielabs/HomeGenie/actions/workflows/msbuild.yml\"\u003e\u003cimg src=\"https://github.com/genielabs/HomeGenie/actions/workflows/msbuild.yml/badge.svg\" alt=\"Build Status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/genielabs/HomeGenie/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/genielabs/HomeGenie\" alt=\"Latest Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/genielabs/HomeGenie/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/genielabs/HomeGenie.svg?v1\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\nHomeGenie is an open-source, cloud-independent ecosystem for smart automation.\nIt delivers a complete, privacy-focused, local-first experience.\nThis includes firmware for DIY devices, an efficient backend service,\nand dedicated mobile and tablet apps.  \nTake absolute control over your environment while keeping your data strictly private.\n\n![HomeGenie Dashboard](https://genielabs.github.io/HomeGenie/images/2.0/homegenie_2_dashboard_01.png)\n\nCreate automations easily with the Visual Editor, or activate the built-in AI features\nto control devices, build custom widgets, or create complex automations in seconds.\n\n**Getting started is effortless.** HomeGenie's UI supports **more than 90 languages**,\nand a **built-in demo** configuration guarantees an immediate, practical experience\nfrom the very first moment.\nThe entire setup is portable and lightweight: just **download the ZIP, extract, and run.**\n\n## ✨ Key Features\n\n- **100% Local Agentic AI:** Run state-of-the-art LLMs directly on your HomeGenie\n  server for autonomous reasoning, context awareness, and natural language control.\n  Your data stays private, your intelligence stays local.\n- **AI Vision Suite:** Full integration of YOLO (Object Detection, Instance Segmentation,\n  Pose Estimation) directly on server, ESP32-CAM modules, and generic IP cameras.\n- **Universal API \u0026 Programmability:** Automate anything with a fluent API programmable\n  in **C#**, **JavaScript**, and **Python**. Create custom programs and widgets with\n  full developer tools.\n- **Advanced Scheduler with Genie Commands:** Supports extended cron expressions,\n  variables, conditions, and AI-driven natural language tasks for flexible automations.\n- **Customizable Dashboard \u0026 Widgets:** A modern, responsive UI with a powerful built-in\n  editor to create and customize your own widgets using HTML, JavaScript, and CSS.\n- **Multi-protocol Support:** Integrated drivers for X10, Z-Wave, ZigBee, GPIO, SPI,\n  I2C, IR/RF, and more.\n- **Smart Display \u0026 FPV Car Integration:** Transform ESP32 hardware into interactive\n  smart displays or AI-powered FPV robotic platforms.\n- **Visual Programming:** Create complex scenarios intuitively with the Visual Program\n  editor—no coding skills required.\n- **Voice Control \u0026 i18n:** Integrated support for voice commands and a fully localized\n  UI across over 90 languages.\n- **Extensible:** Features groups, configuration backup, a package repository, and much more.\n\n[Full Features and Image Gallery](./docs/images/2.0/README.md)\n\n##  Documentation\n\nFor detailed guides, API references, and tutorials, visit the official documentation website:  \n**https://genielabs.github.io/HomeGenie**\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://deepwiki.com/genielabs/HomeGenie\"\u003e\u003cimg src=\"https://deepwiki.com/badge.svg\" alt=\"Ask DeepWiki\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n## 💾 Installation\n\nYou can find the latest release assets on the [**GitHub Releases**](https://github.com/genielabs/HomeGenie/releases) page.\n\n### 1. Choose your version\nDownload the `.zip` archive corresponding to your operating system, architecture, and\n**hardware acceleration** needs:\n\n|  Platform   | Architecture | Variant            | Optimized For                | Technical Notes                                                |\n|:------------|:-------------|:-------------------|:-----------------------------|:---------------------------------------------------------------|\n| **Windows** | x64          | `win-x64`          | Standard (CPU only)          | Maximum stability, no GPU requirements.                        |\n|             | x64          | `win-x64-cuda12`   | **NVIDIA GPUs**              | High performance via **CUDA 12** (LLM \u0026 Vision).               |\n|             | x64          | `win-x64-vulkan`   | **AMD, Intel \u0026 NVIDIA**      | LLM via **Vulkan**, Vision via **DirectX 12 (DirectML)**.      |\n| **Linux**   | x64          | `linux-x64`        | Standard (CPU only)          | For servers or PCs without dedicated GPUs.                     |\n|             | x64          | `linux-x64-cuda12` | **NVIDIA GPUs**              | High performance via **CUDA 12** (LLM \u0026 Vision).               |\n|             | x64          | `linux-x64-vulkan` | **Generic GPUs**             | LLM via **Vulkan**, **Vision via CPU** (No DirectML on Linux). |\n|             | ARM64        | `linux-arm64`      | Raspberry Pi 3, 4, 5, Zero 2 | Optimized for 64-bit ARM SoCs (CPU-based).                     |\n|             | ARM          | `linux-arm`        | Raspberry Pi 2               | Legacy 32-bit ARM support.                                     |\n| **macOS**   | x64 / ARM    | `osx-x64`          | Intel \u0026 Apple Silicon        | **Metal** support for Apple M1/M2/M3 acceleration.             |\n\n### 2. Which one should I choose?\n\n*   **🚀 NVIDIA Users:** Download the **`cuda12`** variant for the best performance in LLMs\n    and Computer Vision. (Requires up-to-date NVIDIA Drivers).\n*   **🎮 AMD / Intel / Windows Users:** Use the **`vulkan`** variant to leverage your GPU for AI\n    tasks. It's the best choice for non-NVIDIA hardware on Windows (via DirectX 12).\n*   **🍎 macOS Users:** The **`osx-x64`** build supports **Apple Silicon (Metal)** and Intel\n    natively for maximum speed on Mac devices.\n*   **☁️ Server / Older PCs:** If you don't have a dedicated GPU or are running a headless\n    server, the **standard versions** (without suffixes) are the most stable and lightweight.\n*   **🍓 Raspberry Pi / ARM:** Choose **`linux-arm64`** (for Pi 4/5 64-bit) or **`linux-arm`**\n    (for older 32-bit systems).\n\n### 3. Setup\n\nAfter downloading, unzip the archive to your preferred location. \n\n### 🚀 Starting HomeGenie\n\nInside the extracted folder, you will find the `homegenie` directory\ncontaining the application binaries, along with a handy startup script\nspecifically tailored for your operating system.\n\nSimply run the startup script to launch the server:\n\n*   **Windows:** Double-click `start.bat`\n*   **macOS:** Double-click `start.command`\n*   **Linux / Raspberry Pi:** Run `./start.sh` from the terminal\n    (or double-click if your file manager supports executing shell scripts).\n\nTo gracefully stop the application, press `CTRL + C` in the terminal window.\n\n### 🎨 Desktop App Experience (PWA)\n\nBy default, HomeGenie now launches as a desktop-style Progressive Web App (PWA).\nThe startup scripts (`start.bat`, `start.sh`, etc.) are pre-configured to pass\nthe `--start-browser` argument to the `HomeGenie` executable, opening the UI in\na dedicated, app-like window for a seamless experience.\n\n**Tip:** If HomeGenie is already running in the background, launching the startup\nscript again will not start a second server. Instead, it will conveniently open a\nnew app window connected directly to your existing session.\n\nFor a traditional server-only or headless experience, simply edit the startup script\nand remove the `--start-browser` flag from the execution command.\n\n### 🛡️ Securing Your Installation (Sandboxing)\n\nSince HomeGenie features advanced AI automation engines (like *Gemini Automan*)\ncapable of generating, compiling, and executing C# code on the fly, we highly\nrecommend running the application in a restricted, sandboxed environment to\nensure maximum system security when executing AI-generated code.\n\n*   **Dedicated System User (Linux - Recommended):** Run the server using\n    a dedicated, non-root user (e.g., `homegenie`) with a `nologin` shell.\n    Grant this user read/write permissions **strictly** to the HomeGenie\n    installation folder, isolating it from the rest of your OS.\n*   **Containerization:** Alternatively, deploy HomeGenie using **Docker**,\n    utilizing read-only volume mounts for the host system and restricting\n    write access exclusively to the `data` directory.\n\n### Running as a System Service\n\nHomeGenie can be run directly from a terminal for easy setup and testing,\nor installed as a system service for continuous, unattended operation.\n\n#### Linux (systemd)\n\n1.  (Recommended) Create a dedicated user for the service and move the application files:\n    ```shell\n    # Create a new system user named 'homegenie' with its home directory\n    sudo useradd -r -m -s /bin/false homegenie\n    \n    # Copy the application files into the new home directory\n    # Assumes you are in the directory where you extracted the zip\n    sudo cp -ar ./homegenie/* /home/homegenie/\n    \n    # Ensure the ownership of all files is correct\n    sudo chown -R homegenie:homegenie /home/homegenie\n    ```\n\n2.  Create a service definition file at `/etc/systemd/system/homegenie.service`:\n    ```ini\n    [Unit]\n    Description=HomeGenie Automation Server\n    After=network.target\n    \n    [Service]\n    Type=notify\n    User=homegenie\n    Group=homegenie\n    WorkingDirectory=/home/homegenie/\n    ExecStart=/home/homegenie/HomeGenie\n    Restart=on-failure\n    RestartSec=15s\n    \n    [Install]\n    WantedBy=multi-user.target\n    ```\n\n3.  Reload the systemd daemon, then start and enable the service:\n    ```shell\n    sudo systemctl daemon-reload\n    sudo systemctl start homegenie.service\n    sudo systemctl enable homegenie.service\n    ```\n    You can check the service status with `sudo systemctl status homegenie.service`.\n\n#### Windows\n\nHomeGenie can be installed as a Windows Service using the built-in commands.\nOpen a Command Prompt **as an Administrator**, navigate to the `homegenie`\ndirectory, and run:\n```shell\nHomeGenie.exe --service install\nHomeGenie.exe --service start\n```\nFor more options, see the [official .NET documentation](https://learn.microsoft.com/en-us/dotnet/core/extensions/windows-service).\n\n### Accessing the UI\n\nOnce running, the HomeGenie user interface can be accessed from any web\nbrowser at: `http://\u003cserver_ip\u003e:\u003cport\u003e/`\n\n-   `\u003cserver_ip\u003e` is the IP address of the machine running HomeGenie.\n-   The default `\u003cport\u003e` is **80**, or the first available port starting from **8080**.\n\nYou can find the exact address and port used by checking the `serviceaddress.txt`\nfile in the `homegenie` application folder.\n\n## 🛠️ Post-Installation (Linux)\n\nTo grant HomeGenie access to hardware like serial ports, USB devices, and GPIO,\nyou may need to run additional commands.\n\n#### Audio \u0026 Voice Synthesis\n\n```shell\n# For audio playback\nsudo apt install alsa-utils lame\n# For embedded text-to-speech\nsudo apt install libttspico-utils\n```\n\n#### Serial Port \u0026 GPIO Access\n\nAdd the `homegenie` user to the `dialout` and `gpio` groups:\n```shell\nsudo usermod -a -G dialout homegenie\nsudo usermod -a -G gpio homegenie\n```\n\n#### X10 (CM15/CM19) USB Controller\n\n1.  Install the required library:\n    ```shell\n    sudo apt install libusb-1.0-0\n    ```\n2.  Create a udev rule to grant access. Create the file `/etc/udev/rules.d/98-homegenie.rules`\n    with the following content:\n    ```\n    # CM15 and CM19 X10 USB controllers\n    SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0bc7\", ATTRS{idProduct}==\"0001\", MODE=\"0660\", GROUP=\"dialout\"\n    SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0bc7\", ATTRS{idProduct}==\"0002\", MODE=\"0660\", GROUP=\"dialout\"\n    ```\n3.  Reload the udev rules and reconnect the device:\n    ```shell\n    sudo udevadm control --reload-rules \u0026\u0026 sudo udevadm trigger\n    ```\n\n## 💻 Development\n\n### Contributing\n\nContributions are welcome! Please read the [**CONTRIBUTING.md**](https://github.com/genielabs/HomeGenie/blob/master/CONTRIBUTING.md) file for guidelines.\n\n### Repository Structure\n\nThe main solution file is `HomeGenie.sln` located in the repository root.\n-   `src/HomeGenie`: The main application project, (.NET 10).\n-   `src/HomeGenie.Tests`: Unit and integration tests.\n-   `src/SupportLibraries`: Utility libraries used by HomeGenie.\n-   `assets/`: Contains build assets, UI source code, and deployment scripts.\n\n### Related Projects\n\n- https://github.com/genielabs/mig-service-dotnet\n- https://github.com/genielabs/homegenie-mini\n- https://play.google.com/store/apps/details?id=com.glabs.homegenieplus\n- https://github.com/zuixjs/zuix\n\n---\n\n### Disclaimer\n\nThis software is provided \"as is\", without warranty of any kind.\nSee the [LICENSE](LICENSE) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenielabs%2Fhomegenie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenielabs%2Fhomegenie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenielabs%2Fhomegenie/lists"}