[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C63MJRZP3N3F52WE9EMRVB":3,"skill-same:01M6C63MJRZP3N3F52WE9EMRVB":72},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6C63MJRZP3N3F52WE9EMRVB","ha-configuration",null,"Home Assistant YAML configuration management. Use when editing configuration.yaml, setting up integrations, configuring secrets, or troubleshooting HA configuration.","laurigates\u002Fclaude-plugins","laurigates","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13014001?v=4","01M6C59YHWS9C7KMXKSRX1YXNP","Lauri Gates","01M6C59YP2APG9YAM4DWYQYGFJ",59,"MIT","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fhome-assistant-plugin\u002Fskills\u002Fha-configuration\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"ha","configuration","ha configuration","use","2026","home","when","2025","false","configuration management","home assistant","up","assistant","management","edit","write","read","editing","grep","integrations","troubleshooting","secrets","yaml","2026-11-10 10:12:30",false,"---\ncreated: 2025-02-01\nmodified: 2026-05-09\nreviewed: 2025-02-01\nname: ha-configuration\ndescription: Home Assistant YAML configuration management. Use when editing configuration.yaml, setting up integrations, configuring secrets, or troubleshooting HA configuration.\nuser-invocable: false\nallowed-tools: Read, Edit, Write, Grep, Glob, TodoWrite\n---\n\n# Home Assistant Configuration\n\n## When to Use This Skill\n\n| Use this skill when... | Use ha-automations instead when... |\n|------------------------|-----------------------------------|\n| Editing configuration.yaml | Creating automation rules |\n| Setting up integrations | Writing automation triggers\u002Factions |\n| Managing secrets.yaml | Debugging automation logic |\n| Organizing with packages | Working with automation blueprints |\n| Troubleshooting config errors | Setting up device triggers |\n\n## Core Configuration Files\n\n| File | Purpose |\n|------|---------|\n| `configuration.yaml` | Main configuration entry point |\n| `secrets.yaml` | Sensitive values (passwords, API keys, tokens) |\n| `automations.yaml` | Automation rules (usually UI-managed) |\n| `scripts.yaml` | Reusable script sequences |\n| `scenes.yaml` | Scene definitions |\n| `customize.yaml` | Entity customizations |\n| `packages\u002F*.yaml` | Modular configuration packages |\n\n## Configuration Structure\n\n### Basic configuration.yaml\n\n```yaml\nhomeassistant:\n  name: Home\n  unit_system: metric\n  time_zone: Europe\u002FHelsinki\n  currency: EUR\n  country: FI\n\n  # External files\n  customize: !include customize.yaml\n  packages: !include_dir_named packages\u002F\n\n# Core integrations\ndefault_config:\n\n# Text-to-speech\ntts:\n  - platform: google_translate\n\nautomation: !include automations.yaml\nscript: !include scripts.yaml\nscene: !include scenes.yaml\n```\n\n### Secrets Management\n\n**secrets.yaml:**\n```yaml\n# API keys\nopenweathermap_api_key: \"abc123def456\"\nspotify_client_id: \"your_client_id\"\nspotify_client_secret: \"your_client_secret\"\n\n# Database\nrecorder_db_url: \"postgresql:\u002F\u002Fuser:pass@localhost\u002Fhass\"\n\n# MQTT\nmqtt_username: \"homeassistant\"\nmqtt_password: \"secure_password\"\n\n# Network\nlatitude: 60.1699\nlongitude: 24.9384\n```\n\n**Reference in configuration.yaml:**\n```yaml\nweather:\n  - platform: openweathermap\n    api_key: !secret openweathermap_api_key\n\nrecorder:\n  db_url: !secret recorder_db_url\n```\n\n## Include Directives\n\n| Directive | Description | Example |\n|-----------|-------------|---------|\n| `!include` | Include single file | `!include automations.yaml` |\n| `!include_dir_list` | Include files as list items | `!include_dir_list sensors\u002F` |\n| `!include_dir_named` | Include files as named mappings | `!include_dir_named packages\u002F` |\n| `!include_dir_merge_list` | Merge files into single list | `!include_dir_merge_list automations\u002F` |\n| `!include_dir_merge_named` | Merge files into single mapping | `!include_dir_merge_named integrations\u002F` |\n| `!secret` | Reference from secrets.yaml | `!secret api_key` |\n| `!env_var` | Environment variable | `!env_var DB_PASSWORD` |\n\n## Package Organization\n\nPackages allow modular configuration by domain:\n\n**packages\u002Fclimate.yaml:**\n```yaml\nclimate_package:\n  sensor:\n    - platform: template\n      sensors:\n        average_indoor_temp:\n          friendly_name: \"Average Indoor Temperature\"\n          unit_of_measurement: \"°C\"\n          value_template: >-\n            {{ (states('sensor.living_room_temp') | float +\n                states('sensor.bedroom_temp') | float) \u002F 2 | round(1) }}\n\n  automation:\n    - alias: \"Climate - AC Auto Off\"\n      trigger:\n        - platform: numeric_state\n          entity_id: sensor.average_indoor_temp\n          below: 22\n      action:\n        - service: climate.turn_off\n          target:\n            entity_id: climate.living_room_ac\n\n  script:\n    climate_cool_down:\n      alias: \"Cool Down House\"\n      sequence:\n        - service: climate.set_temperature\n          target:\n            entity_id: climate.living_room_ac\n          data:\n            temperature: 20\n            hvac_mode: cool\n```\n\n**packages\u002Fpresence.yaml:**\n```yaml\npresence_package:\n  input_boolean:\n    guest_mode:\n      name: \"Guest Mode\"\n      icon: mdi:account-multiple\n\n  binary_sensor:\n    - platform: template\n      sensors:\n        anyone_home:\n          friendly_name: \"Anyone Home\"\n          device_class: presence\n          value_template: >-\n            {{ is_state('person.user1', 'home') or\n               is_state('person.user2', 'home') or\n               is_state('input_boolean.guest_mode', 'on') }}\n```\n\n## Common Integration Patterns\n\n### MQTT Configuration\n\n```yaml\nmqtt:\n  broker: !secret mqtt_broker\n  port: 1883\n  username: !secret mqtt_username\n  password: !secret mqtt_password\n  discovery: true\n  discovery_prefix: homeassistant\n\n  sensor:\n    - name: \"Outdoor Temperature\"\n      state_topic: \"sensors\u002Foutdoor\u002Ftemperature\"\n      unit_of_measurement: \"°C\"\n      device_class: temperature\n      value_template: \"{{ value_json.temperature }}\"\n```\n\n### REST Sensors\n\n```yaml\nsensor:\n  - platform: rest\n    name: \"GitHub Stars\"\n    resource: https:\u002F\u002Fapi.github.com\u002Frepos\u002Fhome-assistant\u002Fcore\n    value_template: \"{{ value_json.stargazers_count }}\"\n    scan_interval: 3600\n    headers:\n      Authorization: !secret github_token\n```\n\n### Template Sensors\n\n```yaml\ntemplate:\n  - sensor:\n      - name: \"Sun Elevation\"\n        unit_of_measurement: \"°\"\n        state: \"{{ state_attr('sun.sun', 'elevation') | round(1) }}\"\n\n      - name: \"Daylight Hours\"\n        unit_of_measurement: \"hours\"\n        state: >-\n          {% set sunrise = as_timestamp(state_attr('sun.sun', 'next_rising')) %}\n          {% set sunset = as_timestamp(state_attr('sun.sun', 'next_setting')) %}\n          {{ ((sunset - sunrise) \u002F 3600) | round(1) }}\n\n  - binary_sensor:\n      - name: \"Workday\"\n        state: \"{{ now().weekday() \u003C 5 }}\"\n```\n\n### Input Helpers\n\n```yaml\ninput_boolean:\n  vacation_mode:\n    name: \"Vacation Mode\"\n    icon: mdi:airplane\n\ninput_number:\n  target_temperature:\n    name: \"Target Temperature\"\n    min: 16\n    max: 28\n    step: 0.5\n    unit_of_measurement: \"°C\"\n    icon: mdi:thermometer\n\ninput_select:\n  house_mode:\n    name: \"House Mode\"\n    options:\n      - Home\n      - Away\n      - Sleep\n      - Guest\n    icon: mdi:home\n\ninput_text:\n  notification_message:\n    name: \"Custom Notification\"\n    max: 255\n\ninput_datetime:\n  alarm_time:\n    name: \"Alarm Time\"\n    has_date: false\n    has_time: true\n```\n\n## Configuration Validation\n\n### Check Configuration\n\n```bash\n# Docker\u002FContainer\ndocker exec homeassistant hass --script check_config\n\n# Home Assistant OS\nha core check\n\n# Supervised\nhassio homeassistant check\n\n# Python venv\nhass --script check_config -c \u002Fpath\u002Fto\u002Fconfig\n```\n\n### Common Validation Errors\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `found undefined alias` | Missing `!secret` value | Add to secrets.yaml |\n| `could not determine a constructor` | Invalid YAML syntax | Check indentation |\n| `duplicate key` | Same key defined twice | Remove duplicate |\n| `Platform not found` | Missing integration | Install via UI\u002FHACS |\n\n## Recorder Configuration\n\n```yaml\nrecorder:\n  db_url: !secret recorder_db_url\n  purge_keep_days: 10\n  commit_interval: 1\n\n  exclude:\n    domains:\n      - automation\n      - updater\n    entity_globs:\n      - sensor.weather_*\n    entities:\n      - sun.sun\n      - sensor.date\n\n  include:\n    domains:\n      - sensor\n      - binary_sensor\n      - switch\n```\n\n## Logger Configuration\n\n```yaml\nlogger:\n  default: warning\n  logs:\n    homeassistant.core: info\n    homeassistant.components.mqtt: debug\n    custom_components.my_integration: debug\n    # Reduce noise\n    homeassistant.components.websocket_api: error\n```\n\n## Lovelace Dashboard (YAML Mode)\n\n```yaml\n# configuration.yaml\nlovelace:\n  mode: yaml\n  resources:\n    - url: \u002Fhacsfiles\u002Fbutton-card\u002Fbutton-card.js\n      type: module\n  dashboards:\n    lovelace-home:\n      mode: yaml\n      filename: dashboards\u002Fhome.yaml\n      title: Home\n      icon: mdi:home\n      show_in_sidebar: true\n```\n\n## Quick Reference\n\n### YAML Tips\n\n| Pattern | Example |\n|---------|---------|\n| Multi-line string | `value: >-` or `value: \\|-` |\n| List item | `- item` |\n| Inline list | `[item1, item2]` |\n| Comment | `# comment` |\n| Anchor | `&anchor_name` |\n| Reference | `*anchor_name` |\n| Merge | `\u003C\u003C: *anchor_name` |\n\n### Template Syntax\n\n| Function | Example |\n|----------|---------|\n| State value | `states('sensor.temp')` |\n| State attribute | `state_attr('sun.sun', 'elevation')` |\n| Convert to float | `states('sensor.temp') \\| float` |\n| Round | `value \\| round(1)` |\n| Default value | `states('sensor.x') \\| default('unknown')` |\n| Timestamp | `as_timestamp(now())` |\n| Time delta | `now() - timedelta(hours=1)` |\n\n## Agentic Optimizations\n\n| Context | Command |\n|---------|---------|\n| Validate config | `docker exec homeassistant hass --script check_config 2>&1 \\| head -50` |\n| Find entity usage | `grep -r \"entity_id:\" config\u002F --include=\"*.yaml\"` |\n| Find secret refs | `grep -r \"!secret\" config\u002F --include=\"*.yaml\"` |\n| List packages | `ls -la config\u002Fpackages\u002F` |\n| Check YAML syntax | `python3 -c \"import yaml; yaml.safe_load(open('file.yaml'))\"` |\n","# Home Assistant Configuration\n\n## When to Use This Skill\n\n| Use this skill when... | Use ha-automations instead when... |\n|------------------------|-----------------------------------|\n| Editing configuration.yaml | Creating automation rules |\n| Setting up integrations | Writing automation triggers\u002Factions |\n| Managing secrets.yaml | Debugging automation logic |\n| Organizing with packages | Working with automation blueprints |\n| Troubleshooting config errors | Setting up device triggers |\n\n## Core Configuration Files\n\n| File | Purpose |\n|------|---------|\n| `configuration.yaml` | Main configuration entry point |\n| `secrets.yaml` | Sensitive values (passwords, API keys, tokens) |\n| `automations.yaml` | Automation rules (usually UI-managed) |\n| `scripts.yaml` | Reusable script sequences |\n| `scenes.yaml` | Scene definitions |\n| `customize.yaml` | Entity customizations |\n| `packages\u002F*.yaml` | Modular configuration packages |\n\n## Configuration Structure\n\n### Basic configuration.yaml\n\n```yaml\nhomeassistant:\n  name: Home\n  unit_system: metric\n  time_zone: Europe\u002FHelsinki\n  currency: EUR\n  country: FI\n\n  # External files\n  customize: !include customize.yaml\n  packages: !include_dir_named packages\u002F\n\n# Core integrations\ndefault_config:\n\n# Text-to-speech\ntts:\n  - platform: google_translate\n\nautomation: !include automations.yaml\nscript: !include scripts.yaml\nscene: !include scenes.yaml\n```\n\n### Secrets Management\n\n**secrets.yaml:**\n```yaml\n# API keys\nopenweathermap_api_key: \"abc123def456\"\nspotify_client_id: \"your_client_id\"\nspotify_client_secret: \"your_client_secret\"\n\n# Database\nrecorder_db_url: \"postgresql:\u002F\u002Fuser:pass@localhost\u002Fhass\"\n\n# MQTT\nmqtt_username: \"homeassistant\"\nmqtt_password: \"secure_password\"\n\n# Network\nlatitude: 60.1699\nlongitude: 24.9384\n```\n\n**Reference in configuration.yaml:**\n```yaml\nweather:\n  - platform: openweathermap\n    api_key: !secret openweathermap_api_key\n\nrecorder:\n  db_url: !secret recorder_db_url\n```\n\n## Include Directives\n\n| Directive | Description | Example |\n|-----------|-------------|---------|\n| `!include` | Include single file | `!include automations.yaml` |\n| `!include_dir_list` | Include files as list items | `!include_dir_list sensors\u002F` |\n| `!include_dir_named` | Include files as named mappings | `!include_dir_named packages\u002F` |\n| `!include_dir_merge_list` | Merge files into single list | `!include_dir_merge_list automations\u002F` |\n| `!include_dir_merge_named` | Merge files into single mapping | `!include_dir_merge_named integrations\u002F` |\n| `!secret` | Reference from secrets.yaml | `!secret api_key` |\n| `!env_var` | Environment variable | `!env_var DB_PASSWORD` |\n\n## Package Organization\n\nPackages allow modular configuration by domain:\n\n**packages\u002Fclimate.yaml:**\n```yaml\nclimate_package:\n  sensor:\n    - platform: template\n      sensors:\n        average_indoor_temp:\n          friendly_name: \"Average Indoor Temperature\"\n          unit_of_measurement: \"°C\"\n          value_template: >-\n            {{ (states('sensor.living_room_temp') | float +\n                states('sensor.bedroom_temp') | float) \u002F 2 | round(1) }}\n\n  automation:\n    - alias: \"Climate - AC Auto Off\"\n      trigger:\n        - platform: numeric_state\n          entity_id: sensor.average_indoor_temp\n          below: 22\n      action:\n        - service: climate.turn_off\n          target:\n            entity_id: climate.living_room_ac\n\n  script:\n    climate_cool_down:\n      alias: \"Cool Down House\"\n      sequence:\n        - service: climate.set_temperature\n          target:\n            entity_id: climate.living_room_ac\n          data:\n            temperature: 20\n            hvac_mode: cool\n```\n\n**packages\u002Fpresence.yaml:**\n```yaml\npresence_package:\n  input_boolean:\n    guest_mode:\n      name: \"Guest Mode\"\n      icon: mdi:account-multiple\n\n  binary_sensor:\n    - platform: template\n      sensors:\n        anyone_home:\n          friendly_name: \"Anyone Home\"\n          device_class: presence\n          value_template: >-\n            {{ is_state('person.user1', 'home') or\n               is_state('person.user2', 'home') or\n               is_state('input_boolean.guest_mode', 'on') }}\n```\n\n## Common Integration Patterns\n\n### MQTT Configuration\n\n```yaml\nmqtt:\n  broker: !secret mqtt_broker\n  port: 1883\n  username: !secret mqtt_username\n  password: !secret mqtt_password\n  discovery: true\n  discovery_prefix: homeassistant\n\n  sensor:\n    - name: \"Outdoor Temperature\"\n      state_topic: \"sensors\u002Foutdoor\u002Ftemperature\"\n      unit_of_measurement: \"°C\"\n      device_class: temperature\n      value_template: \"{{ value_json.temperature }}\"\n```\n\n### REST Sensors\n\n```yaml\nsensor:\n  - platform: rest\n    name: \"GitHub Stars\"\n    resource: https:\u002F\u002Fapi.github.com\u002Frepos\u002Fhome-assistant\u002Fcore\n    value_template: \"{{ value_json.stargazers_count }}\"\n    scan_interval: 3600\n    headers:\n      Authorization: !secret github_token\n```\n\n### Template Sensors\n\n```yaml\ntemplate:\n  - sensor:\n      - name: \"Sun Elevation\"\n        unit_of_measurement: \"°\"\n        state: \"{{ state_attr('sun.sun', 'elevation') | round(1) }}\"\n\n      - name: \"Daylight Hours\"\n        unit_of_measurement: \"hours\"\n        state: >-\n          {% set sunrise = as_timestamp(state_attr('sun.sun', 'next_rising')) %}\n          {% set sunset = as_timestamp(state_attr('sun.sun', 'next_setting')) %}\n          {{ ((sunset - sunrise) \u002F 3600) | round(1) }}\n\n  - binary_sensor:\n      - name: \"Workday\"\n        state: \"{{ now().weekday() \u003C 5 }}\"\n```\n\n### Input Helpers\n\n```yaml\ninput_boolean:\n  vacation_mode:\n    name: \"Vacation Mode\"\n    icon: mdi:airplane\n\ninput_number:\n  target_temperature:\n    name: \"Target Temperature\"\n    min: 16\n    max: 28\n    step: 0.5\n    unit_of_measurement: \"°C\"\n    icon: mdi:thermometer\n\ninput_select:\n  house_mode:\n    name: \"House Mode\"\n    options:\n      - Home\n      - Away\n      - Sleep\n      - Guest\n    icon: mdi:home\n\ninput_text:\n  notification_message:\n    name: \"Custom Notification\"\n    max: 255\n\ninput_datetime:\n  alarm_time:\n    name: \"Alarm Time\"\n    has_date: false\n    has_time: true\n```\n\n## Configuration Validation\n\n### Check Configuration\n\n```bash\n# Docker\u002FContainer\ndocker exec homeassistant hass --script check_config\n\n# Home Assistant OS\nha core check\n\n# Supervised\nhassio homeassistant check\n\n# Python venv\nhass --script check_config -c \u002Fpath\u002Fto\u002Fconfig\n```\n\n### Common Validation Errors\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `found undefined alias` | Missing `!secret` value | Add to secrets.yaml |\n| `could not determine a constructor` | Invalid YAML syntax | Check indentation |\n| `duplicate key` | Same key defined twice | Remove duplicate |\n| `Platform not found` | Missing integration | Install via UI\u002FHACS |\n\n## Recorder Configuration\n\n```yaml\nrecorder:\n  db_url: !secret recorder_db_url\n  purge_keep_days: 10\n  commit_interval: 1\n\n  exclude:\n    domains:\n      - automation\n      - updater\n    entity_globs:\n      - sensor.weather_*\n    entities:\n      - sun.sun\n      - sensor.date\n\n  include:\n    domains:\n      - sensor\n      - binary_sensor\n      - switch\n```\n\n## Logger Configuration\n\n```yaml\nlogger:\n  default: warning\n  logs:\n    homeassistant.core: info\n    homeassistant.components.mqtt: debug\n    custom_components.my_integration: debug\n    # Reduce noise\n    homeassistant.components.websocket_api: error\n```\n\n## Lovelace Dashboard (YAML Mode)\n\n```yaml\n# configuration.yaml\nlovelace:\n  mode: yaml\n  resources:\n    - url: \u002Fhacsfiles\u002Fbutton-card\u002Fbutton-card.js\n      type: module\n  dashboards:\n    lovelace-home:\n      mode: yaml\n      filename: dashboards\u002Fhome.yaml\n      title: Home\n      icon: mdi:home\n      show_in_sidebar: true\n```\n\n## Quick Reference\n\n### YAML Tips\n\n| Pattern | Example |\n|---------|---------|\n| Multi-line string | `value: >-` or `value: \\|-` |\n| List item | `- item` |\n| Inline list | `[item1, item2]` |\n| Comment | `# comment` |\n| Anchor | `&anchor_name` |\n| Reference | `*anchor_name` |\n| Merge | `\u003C\u003C: *anchor_name` |\n\n### Template Syntax\n\n| Function | Example |\n|----------|---------|\n| State value | `states('sensor.temp')` |\n| State attribute | `state_attr('sun.sun', 'elevation')` |\n| Convert to float | `states('sensor.temp') \\| float` |\n| Round | `value \\| round(1)` |\n| Default value | `states('sensor.x') \\| default('unknown')` |\n| Timestamp | `as_timestamp(now())` |\n| Time delta | `now() - timedelta(hours=1)` |\n\n## Agentic Optimizations\n\n| Context | Command |\n|---------|---------|\n| Validate config | `docker exec homeassistant hass --script check_config 2>&1 \\| head -50` |\n| Find entity usage | `grep -r \"entity_id:\" config\u002F --include=\"*.yaml\"` |\n| Find secret refs | `grep -r \"!secret\" config\u002F --include=\"*.yaml\"` |\n| List packages | `ls -la config\u002Fpackages\u002F` |\n| Check YAML syntax | `python3 -c \"import yaml; yaml.safe_load(open('file.yaml'))\"` |\n",{"name":5,"created":47,"modified":48,"reviewed":47,"description":7,"allowed-tools":49,"user-invocable":43},1738368000000,1778284800000,"Read, Edit, Write, Grep, Glob, TodoWrite","main","bdd0582f1a2ba53d21061835bfd72d45f2f954f4","home-assistant-plugin\u002Fskills\u002Fha-configuration",6,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins","https:\u002F\u002Fgithub.com\u002Flaurigates","Linux enthusiast, cloud engineer, neovim addict, electronics hobbyist.","2026-11-11 01:25:01",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add laurigates\u002Fclaude-plugins --skill ha-configuration",{"tool":64,"command":65},"bunx","bunx skills add laurigates\u002Fclaude-plugins --skill ha-configuration",{"tool":67,"command":68},"pnpm","pnpm dlx skills add laurigates\u002Fclaude-plugins --skill ha-configuration","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fhome-assistant-plugin\u002Fskills\u002Fha-configuration\u002FSKILL.md",true,[],[73,101,119,135,158,188],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":84,"publishedAt":42},"01M70PFHMH9ADY0CRE6047Y4B2","kitty-show-image","Show the user an image with a note on what to judge, via a file send or a labelled kitty tab. Use when the user must see an image, or icat fails with no \u002Fdev\u002Ftty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-show-image\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[85,86,87,88,89,90,91,92,93,94,22,25,95,96,97,98,99,100,23,35],"show","kitty show image","image","kitty","show image","ls","get","send","open","dev","Bash","file","text","with","xdg","via",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":42},"01M70PFEN18HKQ4RCQ1VPGMPTB","kitty-session-persistence","Snapshot and restore kitty terminal sessions on macOS. Use when surviving WindowServer hangs without losing tabs, configuring snapshots, or restoring after a force-reboot.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-session-persistence\u002FSKILL.md",[],[88,108,109,110,27,111,25,95,112,113,114,23,35,34,33,115,116,117,118,22],"kitty session persistence","session","persistence","snapshots","uname","reboot","terminal","snapshot","macos","sessions","restore",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":42},"01M70PFC77XGXCVQ1543VGZHYR","kitty-remote-control","Safe kitty remote control from an agent — read panes with kitty @ ls\u002Fget-text, notify, and never mutate the live terminal unasked. Use when running inside kitty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-remote-control\u002FSKILL.md",[],[126,127,88,128,129,90,130,131,91,132,133,22,25,134,95,97,98,114,23,35],"kitty remote control","remote","control","remote control","running","never","panes","notify","query",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":42},"01M70P6WVMCT5JG4SACTM69AF9","docs-reference-check","Dangling doc-reference gate: flag markdown naming repo paths or relative links that no longer exist. Use when docs cite moved\u002Fdeleted files, or wiring a doc-drift lint.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fdocumentation-plugin\u002Fskills\u002Fdocs-reference-check\u002FSKILL.md",[],[142,143,144,145,146,147,148,149,150,151,22,25,95,152,96,153,154,155,156,157],"docs reference check","check","reference check","reference","docs","links","python3","repo","files","auto","drift","lint","wiring","chezmoi","references","cp",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":173,"publishedAt":42},"01M6C6NDE7DAQGNWSF22J5CJ0Z","youtube-upload","Upload a video to YouTube via the Data API v3 and edit its title, description, tags or thumbnail afterwards. Use when publishing or retitling a YouTube video.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-upload\u002FSKILL.md",[164,167,168],{"categoryNo":165,"categoryName":166,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":169,"categoryName":170,"taxonomyType":171,"taxonomyTypeDesc":172},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[174,175,176,177,148,178,35,179,33,180,181,182,22,95,96,183,184,25,185,186,187,100,23],"youtube upload","upload","youtube","Video","run","uv run","publishing","data","uv","api","v3","tags","id","title",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":197,"publishedAt":42},"01M6C6NABWW1X58KJJM4F6GQMQ","youtube-studio-share","Share a private YouTube video with a whole Google Workspace organization by scripting YouTube Studio in the browser. Use when a video must be org-only.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-studio-share\u002FSKILL.md",[194],{"categoryNo":195,"categoryName":196,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发",[198,199,200,201,176,177,202,203,204,205,206,35,207,208,209,210,22,211,25,98,212,23],"youtube studio share","share","youtube studio","studio","browser","javascript","scripting","google workspace","workspace","tool","google","only","MCP","chrome","organization"]