{
  "name": "home-assistant",
  "kind": "registry",
  "title": "Home Assistant",
  "description": "Your Home Assistant entities in the panel with their state: toggle lights, dim, set a temperature, lock a door, run a scene. Every service is a form, and areas list their own entities.",
  "version": "0.1.0",
  "icon": {
    "tile": {
      "svg": "M22.939 10.627 13.061.749a1.505 1.505 0 0 0-2.121 0l-9.879 9.878C.478 11.21 0 12.363 0 13.187v9c0 .826.675 1.5 1.5 1.5h9.227l-4.063-4.062a2.034 2.034 0 0 1-.664.113c-1.13 0-2.05-.92-2.05-2.05s.92-2.05 2.05-2.05 2.05.92 2.05 2.05c0 .233-.041.456-.113.665l3.163 3.163V9.928a2.05 2.05 0 0 1-1.15-1.84c0-1.13.92-2.05 2.05-2.05s2.05.92 2.05 2.05a2.05 2.05 0 0 1-1.15 1.84v8.127l3.146-3.146A2.051 2.051 0 0 1 18 12.239c1.13 0 2.05.92 2.05 2.05s-.92 2.05-2.05 2.05c-.25 0-.488-.047-.709-.13L12.9 20.602v3.088h9.6c.825 0 1.5-.675 1.5-1.5v-9c0-.825-.477-1.977-1.061-2.561z",
      "box": 24,
      "bg": "#18BCF2"
    }
  },
  "author": "pal",
  "spec": "github:zcag/pal/extensions/home-assistant@v0.17.4",
  "source": "https://github.com/zcag/pal-extensions/tree/HEAD/home-assistant",
  "commit": "4d2559cf9c04d0133c97d7c897f19a14acb9eace",
  "manifest": {
    "name": "home-assistant",
    "title": "Home Assistant",
    "description": "Your Home Assistant entities in the panel with their state: toggle lights, dim, set a temperature, lock a door, run a scene. Every service is a form, and areas list their own entities.",
    "keywords": [
      "ha",
      "hass"
    ],
    "version": "0.1.0",
    "multi": true,
    "icon": {
      "tile": {
        "svg": "M22.939 10.627 13.061.749a1.505 1.505 0 0 0-2.121 0l-9.879 9.878C.478 11.21 0 12.363 0 13.187v9c0 .826.675 1.5 1.5 1.5h9.227l-4.063-4.062a2.034 2.034 0 0 1-.664.113c-1.13 0-2.05-.92-2.05-2.05s.92-2.05 2.05-2.05 2.05.92 2.05 2.05c0 .233-.041.456-.113.665l3.163 3.163V9.928a2.05 2.05 0 0 1-1.15-1.84c0-1.13.92-2.05 2.05-2.05s2.05.92 2.05 2.05a2.05 2.05 0 0 1-1.15 1.84v8.127l3.146-3.146A2.051 2.051 0 0 1 18 12.239c1.13 0 2.05.92 2.05 2.05s-.92 2.05-2.05 2.05c-.25 0-.488-.047-.709-.13L12.9 20.602v3.088h9.6c.825 0 1.5-.675 1.5-1.5v-9c0-.825-.477-1.977-1.061-2.561z",
        "box": 24,
        "bg": "#18BCF2"
      }
    },
    "author": "pal",
    "repo": "bundled",
    "license": "MIT",
    "settings": [
      {
        "kind": "text",
        "id": "url",
        "required": true,
        "scope": "instance",
        "label": "URL",
        "placeholder": "http://homeassistant.local:8123",
        "description": "Where Home Assistant answers, scheme included; no trailing slash needed.",
        "default": ""
      },
      {
        "kind": "secret",
        "id": "token",
        "required": true,
        "label": "Token",
        "placeholder": "keychain:pal/home-assistant-token",
        "description": "A long-lived access token (your profile in HA, Security, Long-lived access tokens). Stored as a keychain: or env: reference.",
        "default": ""
      },
      {
        "kind": "list",
        "id": "domains",
        "label": "Domains",
        "placeholder": "light",
        "description": "Entity domains listed at the root, in this order. A domain filter shows its domain regardless; favourites are listed regardless.",
        "default": [
          "light",
          "switch",
          "climate",
          "media_player",
          "cover",
          "lock",
          "fan",
          "scene",
          "script",
          "automation",
          "sensor",
          "binary_sensor",
          "person",
          "input_boolean"
        ]
      },
      {
        "kind": "list",
        "id": "favorites",
        "label": "Favourites",
        "placeholder": "light.kitchen",
        "description": "Entity ids pinned to the top, in this order.",
        "default": []
      },
      {
        "kind": "number",
        "id": "timeout",
        "label": "Timeout",
        "description": "How long one request may take before the row says Home Assistant did not answer.",
        "min": 1,
        "max": 60,
        "step": 1,
        "unit": "s",
        "default": 5
      }
    ],
    "store": {
      "tagline": "Toggle, dim and run Home Assistant entities from the panel",
      "category": "integration",
      "features": [
        "Every entity at the root with its state (`on`, `locked`, `playing`); favourites first, a filter per domain",
        "The right actions per kind: toggle and dim a light, set a thermostat, open a cover, lock a door, run a scene",
        "Brightness, temperature and volume typed straight into the search bar",
        "Every service as a form, its fields taken from Home Assistant",
        "Areas as lists of their entities; `cmd+o` opens an entity in Home Assistant",
        "A hotkey on any entity toggles it without showing the panel"
      ],
      "permissions": [
        "network",
        "token"
      ],
      "platforms": [
        "macos",
        "linux"
      ],
      "screenshots": [
        {
          "file": "1-entities.png",
          "caption": "Every entity with its state as a tag and when it last changed, the favourites leading; Enter toggles the light under the cursor"
        },
        {
          "file": "2-actions.png",
          "caption": "What a light can do: toggle, on, off, set brightness, and the rows every entity has"
        },
        {
          "file": "3-detail.png",
          "caption": "Show attributes (cmd+shift+A): the thermostat's state and every attribute as a row, Enter copies the value"
        },
        {
          "file": "4-service.png",
          "caption": "A service as a form: the target entity, then the fields Home Assistant describes for it, called with Enter"
        },
        {
          "file": "5-entity.png",
          "caption": "An entity in the detail pane (cmd+I): where it lives, its state as a chip, the reading and the target large, then its attributes"
        }
      ],
      "actions": [
        {
          "title": "Toggle",
          "description": "Lights, switches, fans, input booleans.",
          "keys": "enter"
        },
        {
          "title": "Turn on / Turn off",
          "keys": "cmd+enter"
        },
        {
          "title": "Set brightness",
          "description": "A light: the percent typed in the bar, light.turn_on with brightness_pct.",
          "keys": "cmd+b"
        },
        {
          "title": "Set temperature",
          "description": "The bar takes a thermostat's temperature (the current one prefilled, its range as the hint) and mode, then climate.set_temperature.",
          "keys": "enter"
        },
        {
          "title": "Open / Close / Stop",
          "description": "Covers."
        },
        {
          "title": "Lock / Unlock",
          "description": "Both ask first."
        },
        {
          "title": "Play / Pause, Next track, Previous track, Turn off",
          "description": "Media players."
        },
        {
          "title": "Set volume",
          "description": "A media player: the percent typed in the bar, media_player.volume_set.",
          "keys": "cmd+u"
        },
        {
          "title": "Activate / Run / Trigger",
          "description": "Scenes, scripts, automations; Enable or Disable for an automation."
        },
        {
          "title": "Press",
          "description": "Buttons."
        },
        {
          "title": "Start / Return to dock",
          "description": "Vacuums."
        },
        {
          "title": "Copy value",
          "description": "Sensors, people and every other domain.",
          "keys": "enter"
        },
        {
          "title": "Copy entity id",
          "keys": "cmd+c"
        },
        {
          "title": "Show attributes",
          "description": "A level with the state and every attribute; each row copies its value.",
          "keys": "cmd+shift+a"
        },
        {
          "title": "Open in Home Assistant",
          "description": "The automation or script editor, the history page for the rest.",
          "keys": "cmd+o"
        },
        {
          "title": "Call",
          "description": "On a service: the form, then the call.",
          "keys": "enter"
        },
        {
          "title": "Copy service id",
          "keys": "cmd+c"
        },
        {
          "title": "Show entities",
          "description": "On an area.",
          "keys": "enter"
        }
      ]
    },
    "palettes": {
      "entities": {
        "title": "Home Assistant",
        "kind": "live",
        "lazy": true,
        "description": "Every entity of the chosen domains with its state, favourites first; the domain filters scope it. Actions per domain: toggle, on, off, brightness, temperature, open, close, lock, play, activate, run, trigger, copy value; every row copies its id, shows its attributes, opens in HA.",
        "keys": [
          {
            "keys": "enter",
            "title": "The domain's first action: toggle, activate, run, copy value"
          },
          {
            "keys": "cmd+enter",
            "title": "The second: turn on or off, set, pause"
          },
          {
            "keys": "cmd+b",
            "title": "Set a light's brightness to the percent typed in the bar"
          },
          {
            "keys": "cmd+u",
            "title": "Set a media player's volume to the percent typed in the bar"
          },
          {
            "keys": "cmd+c",
            "title": "Copy the entity id"
          },
          {
            "keys": "cmd+shift+a",
            "title": "Show the attributes"
          },
          {
            "keys": "cmd+o",
            "title": "Open in Home Assistant"
          },
          {
            "keys": "tab",
            "title": "All entities, Every domain, one domain"
          }
        ]
      },
      "services": {
        "title": "Home Assistant Services",
        "kind": "list",
        "lazy": true,
        "ttl": 3600,
        "description": "Every service Home Assistant offers, by domain; Enter opens a form with the target entity and the service's fields, submit calls it.",
        "keys": [
          {
            "keys": "enter",
            "title": "Open the form, then call"
          },
          {
            "keys": "cmd+c",
            "title": "Copy the service id"
          }
        ]
      },
      "areas": {
        "title": "Home Assistant Areas",
        "kind": "list",
        "lazy": true,
        "ttl": 3600,
        "description": "Every area with an entity in it; Enter lists those entities.",
        "keys": [
          {
            "keys": "enter",
            "title": "List the area's entities"
          }
        ]
      }
    }
  },
  "playable": false,
  "updated_at": "2026-11-02T04:38:11Z",
  "url": "https://pal.cagdas.io/extensions/home-assistant",
  "tagline": "Toggle, dim and run Home Assistant entities from the panel",
  "category": "integration",
  "screenshots": [
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/1-entities-dark.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/1-entities.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/2-actions-dark.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/2-actions.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/3-detail-dark.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/3-detail.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/4-service-dark.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/4-service.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/5-entity-dark.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/5-entity.png"
  ],
  "panel_screenshots": [
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/1-entities.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/2-actions.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/3-detail.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/4-service.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/5-entity.png"
  ],
  "bar_screenshots": [],
  "panel_screenshots_dark": [
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/1-entities-dark.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/2-actions-dark.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/3-detail-dark.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/4-service-dark.png",
    "https://pal.cagdas.io/extensions/home-assistant/screenshots/5-entity-dark.png"
  ],
  "bar_screenshots_dark": [],
  "has_bar": false,
  "bar_items": [],
  "has_links": false,
  "links": [],
  "multi": true,
  "has_readme": true
}
