CCM
/Skills
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
balloob avatar

Home Assistant

balloob/llm-skills
207 installs5 stars
Summary

Connects your project to Home Assistant's API for smart home control and data ingestion. The skill walks you through getting your Long-Lived Access Token, validates the connection with a curl test, then provides Python and Node.js reference docs. The interesting bit is it pushes you toward WebSocket commands like subscribe_trigger and execute_script instead of polling, which means you write less code and lean on Home Assistant's automation engine. If you're building dashboards, custom automations, or want to pipe sensor data into another system, this gets you set up properly. The URL normalization step alone will save you ten minutes of debugging.

Install to Claude Code

npx -y skills add balloob/llm-skills --skill home-assistant --agent claude-code

Installs into .claude/skills of the current project.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
inference shell
inference shell
create and run specialised agents in minutes
build now →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
inference shell
inference shell
create and run specialised agents in minutes
build now →
Files
SKILL.mdView on GitHub

Home Assistant

Overview

This skill helps users integrate Home Assistant into their projects, whether to control smart home devices or to ingest sensor data and state information. The skill guides users through connection setup, validates credentials, and provides comprehensive API reference documentation for both Python and Node.js.

When to Use This Skill

Use this skill when users want to:

  • Connect their application to Home Assistant
  • Control smart home devices (lights, switches, thermostats, etc.)
  • Read sensor data or entity states from Home Assistant
  • Automate home control based on custom logic
  • Build dashboards or monitoring tools using Home Assistant data
  • Integrate Home Assistant into existing Python or Node.js projects

Connection Setup Workflow

Step 1: Collect Connection Information

Collect two pieces of information from the user:

  1. Home Assistant URL: The web address where Home Assistant is accessible
  2. Long-Lived Access Token: Authentication token for API access

Step 2: Normalize the URL

If the user provides a URL with a path component (e.g., http://homeassistant.local:8123/lovelace/dashboard), normalize it by removing everything after the host and port. The base URL should only include the scheme, host, and port:

  • ✓ Correct: http://homeassistant.local:8123
  • ✗ Incorrect: http://homeassistant.local:8123/lovelace/dashboard

Step 3: Help Users Find Their Token

If users don't know where to find their Long-Lived Access Token, provide these instructions:

  1. Log into Home Assistant web interface
  2. Click on the user profile (bottom left, user icon or name)
  3. Click on the "Security" tab
  4. Scroll down to the "Long-Lived Access Tokens" section
  5. Click "Create Token"
  6. Give the token a name (e.g., "My Project")
  7. Copy the generated token (it will only be shown once)

Step 4: Validate the Connection

Use curl to test the connection and retrieve Home Assistant configuration information.

curl -X GET \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  <URL>/api/config

Example:

curl -X GET \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  -H "Content-Type: application/json" \
  http://homeassistant.local:8123/api/config

Success output:

{
  "location_name": "Home",
  "latitude": 37.7749,
  "longitude": -122.4194,
  "elevation": 0,
  "unit_system": {
    "length": "km",
    "mass": "g",
    "temperature": "°C",
    "volume": "L"
  },
  "time_zone": "America/Los_Angeles",
  "version": "2024.1.0",
  "config_dir": "/config",
  "allowlist_external_dirs": [],
  "allowlist_external_urls": [],
  "components": ["automation", "light", "switch", ...],
  "config_source": "storage"
}

Key information from the response:

  • version: Home Assistant version (e.g., "2024.1.0")
  • location_name: Name of the Home Assistant instance
  • time_zone: Configured time zone
  • components: List of loaded components/integrations

Failure scenarios:

Authentication failure (401):

{"message": "Invalid authentication"}

Connection failure:

curl: (7) Failed to connect to homeassistant.local port 8123: Connection refused

If authentication fails, verify:

  1. The Long-Lived Access Token is correct
  2. The token hasn't been deleted or expired
  3. The URL is correct (including http/https and port)

Step 5: Proceed with Implementation

Once the connection is validated, help the user implement their integration based on their programming language and requirements.

Core Interaction Patterns

IMPORTANT: The following WebSocket API commands form the core of how users should interact with Home Assistant. These leverage the automation engine and keep scripts minimal by using native Home Assistant syntax.

Automation Engine Commands (WebSocket API)

These commands require WebSocket API connection and provide the most powerful and flexible way to interact with Home Assistant:

1. subscribe_trigger - Listen for Specific Events

Use this when: You want to be notified when specific conditions occur (state changes, time patterns, webhooks, etc.)

Command structure:

{
  "type": "subscribe_trigger",
  "trigger": {
    "platform": "state",
    "entity_id": "binary_sensor.motion_sensor",
    "to": "on"
  },
  "variables": {
    "custom_var": "value"
  }
}

Why use this: Instead of subscribing to all state changes and filtering, subscribe directly to the triggers you care about. This is more efficient and uses Home Assistant's native trigger syntax.

2. test_condition - Test Conditions Server-Side

Use this when: You need to check if a condition is met without implementing the logic in your script

Command structure:

{
  "type": "test_condition",
  "condition": {
    "condition": "numeric_state",
    "entity_id": "sensor.temperature",
    "above": 20
  },
  "variables": {
    "custom_var": "value"
  }
}

Why use this: Offload condition logic to Home Assistant. Your script stays simple while using Home Assistant's powerful condition engine.

3. execute_script - Execute Multiple Actions

Use this when: You need to execute a sequence of actions, including wait_for_trigger, delays, service calls, and more

Command structure:

{
  "type": "execute_script",
  "sequence": [
    {
      "service": "light.turn_on",
      "target": {"entity_id": "light.living_room"}
    },
    {
      "wait_for_trigger": [
        {
          "platform": "state",
          "entity_id": "binary_sensor.motion",
          "to": "off",
          "for": {"minutes": 5}
        }
      ]
    },
    {
      "service": "light.turn_off",
      "target": {"entity_id": "light.living_room"}
    }
  ],
  "variables": {
    "custom_var": "value"
  }
}

Why use this:

  • Execute complex automation logic using native Home Assistant syntax
  • Use wait_for_trigger to wait for events
  • Chain multiple actions together
  • Keep your script minimal - all logic is in HA syntax
  • Getting response data: To get response from service calls, store the result in a response variable and set it as the script result

Example with response data:

{
  "type": "execute_script",
  "sequence": [
    {
      "service": "weather.get_forecasts",
      "target": {"entity_id": "weather.home"},
      "response_variable": "weather_data"
    },
    {
      "stop": "Done",
      "response_variable": "weather_data"
    }
  ]
}

Essential Registry Information

To understand Home Assistant's information architecture, also use:

  • config/entity_registry/list: Learn about entities and their unique IDs
  • config/device_registry/list: Learn about devices and their entities
  • config/area_registry/list: Understand how spaces are organized
  • config/floor_registry/list: Multi-floor layout information

Current state of the home

If the user is building an application that wants to represent the current state of the home, use:

  • subscribe_entities: Get real-time updates on all entity states (Home Assistant JS WebSocket has built-in support for this)

Implementation Guidance

Python Projects

For Python-based projects, refer to the Python API reference:

  • File: references/python_api.md
  • Usage: Load this reference when implementing Python integrations
  • Contains:
    • Example code: Python scripts demonstrating common use cases.
  • Key operations: Automation engine commands, getting states, calling services, subscribing to events, error handling

Node.js Projects

For Node.js-based projects, refer to the Node.js API reference:

  • File: references/node_api.md
  • Usage: Load this reference when implementing Node.js integrations
  • Contains:
    • WebSocket API examples using home-assistant-js-websocket library

Best Practices

  1. Error Handling: Always implement proper error handling for network failures and authentication issues
  2. Connection Testing: Validate connections before proceeding with implementation
  3. Real-time Updates: For monitoring scenarios, use WebSocket APIs instead of polling REST endpoints

Testing with empty-hass

If users want to test their code without connecting to a real Home Assistant instance, they can use empty-hass, a CLI tool that starts an empty Home Assistant instance with pre-configured authentication.

Quick Start

Run empty-hass using uvx (requires Python with uv installed):

uvx --from git+https://github.com/balloob/empty-hass empty-hass

This will start a Home Assistant instance on http://localhost:8123 with:

  • A pre-onboarded configuration (skips the setup wizard)
  • A temporary configuration directory (cleaned up on exit)

Run with --help to see available options and login credentials:

uvx --from git+https://github.com/balloob/empty-hass empty-hass --help

This is useful for:

  • Testing API integration code before connecting to a production instance
  • Development and debugging without affecting real devices
  • CI/CD pipelines that need a Home Assistant instance for testing

Common Integration Patterns

Data Dashboard

Read sensor states and display them in a custom dashboard or monitoring application.

Automation Logic

Subscribe to entity state changes and trigger custom actions based on conditions.

External Triggers

Call Home Assistant services from external events (webhooks, scheduled jobs, user actions).

Data Export

Retrieve historical data from Home Assistant for analysis or backup purposes.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
inference shell
inference shell
create and run specialised agents in minutes
build now →
Categories
Backend & APIsDocumentationAI & Agent BuildingAutomation & WorkflowsPython
First SeenJun 3, 2026
View on GitHub

Recommended

More Backend & APIs →
jezweb avatar
testing-library

jezweb/claude-skills

Test React components with Testing Library patterns. Covers queries (getBy/findBy/queryBy), user-event interactions, async testing (findBy vs waitFor), accessibility testing, and MSW integration for API mocking. Use when: testing React components, simulating user interactions, testing forms, mocking API calls with MSW, or writing accessible tests. Keywords: testing-library, react testing library, getByRole, user-event, waitFor, MSW, screen.
207
960
josiahsiegel avatar
tailwindcss-performance

josiahsiegel/claude-plugin-marketplace

Tailwind CSS performance optimization including v4 improvements. PROACTIVELY activate for: (1) Tailwind v4 Oxide engine performance, (2) Lightning CSS minification, (3) reducing CSS bundle size, (4) content config tuning to avoid scanning unused files, (5) safelist for dynamic classes (without bloating), (6) production builds with @apply minimization, (7) critical CSS extraction, (8) HTTP caching of generated CSS, (9) avoiding @apply overuse (utility-first preferred), (10) PurgeCSS / content-detection edge cases. Provides: performance tuning checklist, Oxide engine notes, content config patterns, safelist guidance, and critical-CSS workflow.
207
51
lacymorrow avatar
alpaca-trading

lacymorrow/openclaw-alpaca-trading-skill

Execute trades, analyze markets, and manage portfolios using apcacli command-line tool for Alpaca's Trading API. Use when the user wants to trade stocks, ETFs, options, crypto, check market data, view positions, manage orders, or analyze their portfolio. Also use when they mention "buy," "sell," "trade," "market data," "stock price," "portfolio," "account balance," or "alpaca trading."
207
12
aibtcdev avatar
btc

aibtcdev/skills

Bitcoin L1 operations — check balances, estimate fees, list UTXOs, transfer BTC, and classify UTXOs as cardinal (safe to spend), ordinal (inscriptions), or rune (rune tokens). Data sourced from mempool.space and the Unisat API.
206
9
jezweb avatar
gemini-peer-review

jezweb/claude-skills

Get a second opinion from Gemini on code, architecture, debugging, or security. Uses direct Gemini API calls — no CLI dependencies. Trigger with 'ask gemini', 'gemini review', 'second opinion', 'peer review', or 'consult gemini'.
206
960
patricio0312rev avatar
data-seeding-fixtures-builder

patricio0312rev/skills

Generates deterministic seed data for development and testing with factory functions, realistic fixtures, and database reset scripts. Use for "data seeding", "test fixtures", "database seeding", or "mock data generation".
206
55