MCPcopy Index your code
hub / github.com/acon96/home-llm

github.com/acon96/home-llm @v0.4.9

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.9 ↗ · + Follow
475 symbols 2,218 edges 32 files 95 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Home LLM

Control your Home Assistant smart home with a completely local Large Language Model. No cloud services and no subscriptions needed. Just privacy-focused AI running entirely on your own hardware.

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

What is Home LLM?

Home LLM is a complete solution for adding AI-powered voice and chat control to Home Assistant. It consists of two parts:

  1. Local LLM Integration – A Home Assistant custom component that connects local language models to your smart home
  2. Home Models – Small, efficient AI models fine-tuned specifically for smart home control

Key Features

  • 🏠 Fully Local – Everything runs on your hardware. Your data never leaves your control (unless you want to!)
  • 🗣️ Voice & Chat Control – Use as a conversation agent with voice assistants or chat interfaces
  • 🤖 AI Task Automation – Generate dynamic content and structured data for automations
  • 🌍 Multi-Language Support – Built-in support for English, German, French, Spanish, and Polish (better translations are welcome!)
  • Runs on Low-Power Devices – Models work on Raspberry Pi and other modest hardware -- no GPU required!
  • 🔌 Flexible Backends – Run models locally as part of Home Assistant or connect to external model providers

Quick Start

See the Setup Guide for detailed installation instructions.

Requirements: Home Assistant 2025.7.0 or newer


Local LLM Integration

The integration connects language models to Home Assistant, enabling them to understand your requests and control your smart devices.

Supported Backends

Choose how and where you want to run your models:

Backend Best For
Llama.cpp (built-in) Running models directly in Home Assistant
Ollama Easy setup on a separate GPU machine
Generic OpenAI API LM Studio, LocalAI, vLLM, and other OpenAI-compatible servers
llama.cpp server Heterogeneous (non-uniform) GPU compute setups, including CPU + GPU inference
OpenAI 'Responses' Style API Cloud services supporting the 'responses' style API
Anthropic 'Messages' Style API Cloud services supporting the 'messages' style API
text-generation-webui Advanced users with existing setups

NOTE: When utilizing external APIs or model providers, your data will be transmitted over the internet and shared with the respective service providers. Ensure you understand the privacy implications of using these third-party services, since they will be able to see the status of all exposed entities in your Home Assistant instance, which can potentially include your current location.

Supported Device Types

The integration can control: lights, switches, fans, covers, locks, climate, media players, vacuums, buttons, timers, todo lists, and scripts

Using the Integration

As a Conversation Agent: - Chat with your assistant through the Home Assistant UI - Connect to voice pipelines with Speech-to-Text and Text-to-Speech - Supports voice streaming for faster responses

As an AI Task Handler: - Create automations that use AI to process data and generate structured responses - Perfect for dynamic content generation, data extraction, and intelligent decision making - See AI Tasks documentation for examples


Home LLM Models

The "Home" models are small language models (under 5B parameters) fine-tuned specifically for smart home control. They understand natural language commands and translate them into Home Assistant service calls.

Latest Models

Model Family Size Link
Llama 3.2 3B acon96/Home-Llama-3.2-3B
Gemma 270M acon96/Home-FunctionGemma-270m

Previous Model Versions

Stable Models: - 3B v3 (StableLM-Zephyr-3B): acon96/Home-3B-v3-GGUF - 1B v3 (TinyLlama-1.1B): acon96/Home-1B-v3-GGUF - 3B v2 (Phi-2): acon96/Home-3B-v2-GGUF - 1B v2 (Phi-1.5): acon96/Home-1B-v2-GGUF - 1B v1 (Phi-1.5): acon96/Home-1B-v1-GGUF

Multilingual Experiments: - German, French, & Spanish (3B): acon96/stablehome-multilingual-experimental - Polish (1B): acon96/tinyhome-polish-experimental

Note: Models v1 (3B) and earlier are only compatible with integration version 0.2.17 and older.

Using Other Models

Don't have dedicated hardware? You can use any instruction-tuned model with in-context learning (ICL). The integration provides examples that teach general-purpose models (like Qwen3, Llama 3, Mistral) how to control your smart home. See the Setup Guide for configuration details.

Training Your Own

The fine-tuning dataset and training scripts are included in this repository: - Dataset: Home-Assistant-Requests-V2 on HuggingFace - Source: data/ directory - Training: See train/README.md


Documentation


Version History

Version Highlights
v0.4.9 Relax dependency requirements to avoid conflicting with internal HA lib versions
v0.4.8 OpenAI backends rewritten using the official openai Python library for better reliability and compatibility. New "Use server sampling defaults" to let your backend set the sampling parameters. More robust tool call parsing with auto-repair for malformed JSON, ability to disable streaming for all backends.
v0.4.7 Bug fixes, update default llama_cpp_python version to support new models, and support python 3.14 for new Home Assistant versions
v0.4.6 Anthropic API support, on-disk caching for Llama.cpp, new tool calling dataset
v0.4.5 AI Task entities, multiple LLM APIs at once, official Ollama package
v0.4 Tool calling rewrite, voice streaming, agentic tool use loop, multiple configs per backend
v0.3 Home Assistant LLM API support, improved prompting, HuggingFace GGUF auto-detection

Full Version History

Version Description
v0.4.9 Relax dependency requirements to avoid conflicting with internal HA lib versions
v0.4.8 OpenAI backends rewritten using the official openai Python library for better reliability and compatibility. New "Use server sampling defaults" to let your backend set the sampling parameters. More robust tool call parsing with auto-repair for malformed JSON, ability to disable streaming for all backends.
v0.4.7 Bug fixes, update default llama_cpp_python version to support new models, and support python 3.14 for new Home Assistant versions
v0.4.6 New dataset supporting proper tool calling, Add Anthropic "messages" style API support, Add on-disk caching for Llama.cpp backend
v0.4.5 Add support for AI Task entities, Replace custom Ollama API implementation with the official ollama-python package, Support multiple LLM APIs at once
v0.4.4 Fix issue with OpenAI backends appending /v1 to all URLs
v0.4.3 Fix model config creation during setup
v0.4.2 Fix default model settings, numeric config fields, finish_reason handling
v0.4.1 Fix Llama.cpp models downloaded from HuggingFace
v0.4 Rewrite for tool calling models, agentic tool use loop, voice streaming, multiple config sub-entries

Core symbols most depended-on inside this repo

generate_random_parameter
called by 31
data/utils.py
get_dataset_piles
called by 20
data/utils.py
replace_answer
called by 19
data/generate_data.py
_async_stream_parse_completion
called by 12
custom_components/llama_conversation/entity.py
translate
called by 11
data/translate_data.py
format_url
called by 10
custom_components/llama_conversation/utils.py
get_random_parameter
called by 9
data/devices.py
create_assistant_turn
called by 9
data/generate_data.py

Shape

Method 240
Function 160
Class 75

Languages

Python100%

Modules by API surface

data/devices.py39 symbols
custom_components/llama_conversation/entity.py37 symbols
tests/llama_conversation/test_conversation_agent.py33 symbols
custom_components/llama_conversation/config_flow.py31 symbols
custom_components/llama_conversation/utils.py28 symbols
tests/llama_conversation/test_basic.py23 symbols
data/utils.py23 symbols
custom_components/llama_conversation/backends/llamacpp.py22 symbols
tests/llama_conversation/test_ai_task.py20 symbols
custom_components/llama_conversation/backends/generic_openai.py19 symbols
data/synthesize.py18 symbols
tests/llama_conversation/test_setup_flows.py17 symbols

For agents

$ claude mcp add home-llm \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page