https://github.com/paulotrinn/aight/releases
Aight uses large language models to convert plain language into Home Assistant YAML, dashboards, automations, scenes, and scripts. Use chat to refine and test generated items. Run the binary to start a local chat service or integrate the backend with your Home Assistant instance.
Releases: Download the release file from https://github.com/paulotrinn/aight/releases and execute the downloaded file on your host to run the Aight service.
Why Aight
- Reduce time spent writing YAML.
- Keep automations readable and maintainable.
- Test automations with natural language prompts.
- Produce dashboards and Lovelace cards from descriptions.
- Use a chat interface to refine rules and generate edge cases.
Core features
- Natural language to Home Assistant YAML (automations, scripts, scenes).
- Conversational UI for iterative refinement.
- Sample dashboard generation with Lovelace YAML.
- Pre-made templates for common smart-home flows.
- CLI and local server modes.
- Export/import YAML and JSON.
- Role-based prompt profiles for different styles (compact, verbose, debug).
- Inline metadata in generated YAML for traceability.
Getting started
- Download and run release
- Visit the Releases page and download the asset for your platform: https://github.com/paulotrinn/aight/releases
- After you download the release file, extract it and execute the binary or script that came with the release.
Example (Linux tarball, adjust names to match the release asset):
# download the release asset
curl -L -o aight-linux.tar.gz "https://github.com/paulotrinn/aight/releases/download/v1.0.0/aight-linux.tar.gz"
# extract
tar -xzf aight-linux.tar.gz
# give execute permission
chmod +x aight
# run the service
./aight --port 8080Example (macOS zip):
curl -L -o aight-macos.zip "https://github.com/paulotrinn/aight/releases/download/v1.0.0/aight-macos.zip"
unzip aight-macos.zip
chmod +x aight
./aight --port 8080Example (Windows):
- Download the .exe from Releases.
- Double-click the executable or run from PowerShell:
.\aight.exe --port 8080Docker (alternative)
docker run -d --name aight -p 8080:8080 ghcr.io/paulotrinn/aight:latestWeb UI
- By default Aight serves a local chat UI at http://localhost:8080.
- The UI accepts plain text prompts and displays generated YAML with a side-by-side preview.
Core concepts
- Prompt: Natural language or structured instruction you send to Aight.
- Profile: A set of rules for how the model should format YAML and how verbose it should be.
- Template: A reusable YAML skeleton. Aight fills templates using extracted parameters.
- Trace metadata: A small comment block inserted in generated YAML with the original prompt and generation timestamp.
Usage examples
Generate a simple automation Prompt: "I want the hallway light to turn on when motion is detected after sunset and stay on for 5 minutes."
Result (example generated YAML):
# Generated by Aight
# prompt: "I want the hallway light to turn on when motion is detected after sunset and stay on for 5 minutes."
alias: Hallway motion after sunset
trigger:
- platform: state
entity_id: binary_sensor.hallway_motion
to: 'on'
condition:
- condition: sun
after: sunset
action:
- service: light.turn_on
target:
entity_id: light.hallway
- delay: '00:05:00'
- service: light.turn_off
target:
entity_id: light.hallway
mode: singleCreate a scene Prompt: "Create an evening scene for the living room with dim warm lights and soft music on media player."
Result:
scene:
- name: Living Room Evening
entities:
light.living_room:
state: on
brightness: 120
color_temp: 400
media_player.living_room_speaker:
state: on
volume_level: 0.25
source: "Chill Playlist"Build a Lovelace card Prompt: "Make a dashboard card showing temperature, humidity, and a toggle for the heater for my bedroom."
Result:
type: entities
title: Bedroom Climate
entities:
- entity: sensor.bedroom_temperature
name: Temperature
- entity: sensor.bedroom_humidity
name: Humidity
- entity: switch.bedroom_heater
name: HeaterAdvanced prompts
- Ask for conditions and edge cases: "Only run this automation if no one is home or if the house is in away mode."
- Ask for testing scenarios: "Show me three test cases for this automation, including the expected state changes."
Profiles and templates
- Compact: Minimal comments and short keys. Use for production.
- Verbose: Add human-readable comments and metadata. Use for review.
- Debug: Keep traces, include model decisions and prompt history. Use for debugging.
You can create templates like:
template:
name: motion_delay
parameters:
- trigger_entity
- target_light
- delay_seconds
body: |
alias: "{{ name }}"
trigger:
- platform: state
entity_id: "{{ trigger_entity }}"
to: 'on'
action:
- service: light.turn_on
target:
entity_id: "{{ target_light }}"
- delay: "00:00:{{ delay_seconds }}"
- service: light.turn_off
target:
entity_id: "{{ target_light }}"API and CLI
-
HTTP API: POST /api/v1/generate with JSON payload: { "prompt": "string", "profile": "compact", "format": "yaml" }
-
CLI:
- aight chat "Prompt text"
- aight generate --profile compact --format yaml "Prompt text"
Examples:
# CLI generate automation
./aight generate --profile compact --format yaml "Turn on garden lights between sunset and 23:00 when motion is detected."
# HTTP API
curl -X POST http://localhost:8080/api/v1/generate \
-H "Content-Type: application/json" \
-d '{"prompt":"Turn on garden lights between sunset and 23:00 when motion is detected.","profile":"compact","format":"yaml"}'Home Assistant integration
-
Export generated YAML and place it in your Home Assistant config folders:
- automations.yaml
- scripts.yaml
- scenes.yaml
- lovelace dashboards in ui-lovelace.yaml or packages
-
Use the built-in reload services in Home Assistant or restart for full load.
HACS / Add-on idea
- Aight can run as a local add-on or operate through a third-party integration. The Releases page contains platform assets and packages. Visit Releases: https://github.com/paulotrinn/aight/releases to get the file and follow the install steps for your environment.
Best practices
- Review generated YAML before you deploy it.
- Use the Verbose profile for initial review.
- Keep a versioned copy of generated YAML in your repo.
- Use templates for repetitive automations.
- Use the Debug profile only in development.
Security and privacy
- Run Aight on a local host to keep prompts and state private.
- Control access to the web UI using reverse proxies or local firewall rules.
- Rotate keys for any external model API you use with Aight.
Extending Aight
- Add custom templates in the templates/ folder.
- Add new profiles in config/profiles.yaml.
- Integrate with cloud LLMs or local LLMs using the provider adapters.
- Add more output formats (JSON, HTML snippets for dashboards).
Contributing
- Fork the repo.
- Create a feature branch.
- Add tests for your changes.
- Open a pull request with a clear description and sample prompts.
Suggested labels for pull requests
- enhancement
- bug
- docs
- infra
Images and assets
- Home Assistant logo used as visual context: https://www.home-assistant.io/images/brand/home-assistant-vertical-color.png
- Use your own screenshots in assets/screenshots/
- Include a sample chat session screenshot in docs/ for onboarding
Troubleshooting
- If the UI does not start, check the port and log output.
- If generated YAML fails Home Assistant config check, run the HA config checker.
- If the model produces unexpected keys, switch to Verbose or Debug profile and inspect the trace metadata.
Roadmap
- Built-in simulator to run test events.
- Improved multi-entity templates.
- Shared template library and community templates gallery.
- Native HACS integration and official add-on.
Licensing and attribution
- Add your license file in LICENSE.
- Keep a CONTRIBUTORS file that lists code authors and template contributors.
Contact and support
- Report issues and feature requests on GitHub Issues.
- For release downloads and platform assets go to the Releases page: https://github.com/paulotrinn/aight/releases
Automations, scripts, scenes, and dashboards all start with a plain sentence. Aight handles the translation, formatting, and traceability. Use the chat to refine logic, add conditions, and produce test cases for reliable automations.
