Skip to main content

Home Assistant REPL

Rhizomatics Open Source GitHub Workflow Status PyPI PyPI - Python Version Docs GitHub GitHub last commit

A slice of cherry pie, drawn like a 1990s Visual Basic icon

A REPL shell custom designed for Home Assistant custom component developers, tinkerers and native Python speakers. Makes it easy as pie!

It is an opinionated REPL (Read-Eval-Print-Loop) shell that aims are to make it easier without any configuration to:

  • Exploring of the APIs in context of a live working instance
  • Trialling out snippets of code
  • Debugging code (but see note below)
  • Hotfixing issues that don't have built in support to do so from existing components.
$ uv run --with homeassistant-repl ha-repl --token=<insert token here>
Home Assistant REPL (API client mode) connected to ws://homeassistant.local:8123/api/websocket. `obj` only, read-only - no `hass`. Ctrl-D to exit.
>>> obj["/mqtt/binary_sensor/kitchen_terrace_window_tilt"].state
'off'
>>> [o.name for o in obj["/rflink/binary_sensor"].values() if o.state=='unavailable']
['Shed Intruder Alarm', 'Panic Keyfob']
>>> {(o.entity_id, o.state) for o in obj.find(domain="binary_sensor",platform="mqtt")}
{
    ('binary_sensor.terrace_pir_occupancy', 'unavailable'),
    ('binary_sensor.scullery_smoke_alarm_battery_low', 'off'),
    ('binary_sensor.kitchen_terrace_window_tweaked', 'off'),
    ('binary_sensor.scullery_water_detector_water_leak', 'dry'),
    ('binary_sensor.boiler_co_detector_battery_low', 'off'),
    ('binary_sensor.pantry_sensor_occupancy', 'off')
}
>>>

If you're not already comfortable using Python tools to manipulate data on the fly, or better REPL shells in other languages, this is a great way to learn, and faster at the keyboard than clicking around Jupyter notebooks.

This is primarily for developers of custom components, and their LLM agents, though may be of interest for other folk tinkering with Home Assistant. It is a potentially sharp tool, so NOT appropriate for general Home Assistant users.

Features

  • Integrated with rich and pygments for pretty object printouts and stack traces
  • Reuses session and history features from prompt-toolkit
  • Access to all entities via dictionary like interface, obj
  • Usual multi-line editing support and history of Python
  • Integrated with homeassistant-api as hass_api object
  • Auto-awaits coroutines for easy shell use (can be switched off or overridden)
  • Dedicated shell that can be run without installation with uv
  • Usable from inside ipython shell, Marimo notebooks or plain python -m asyncio

All of the above works with standard Home Assistant APIs, referred to as api mode.

Home Assistant REPL also has an advanced live mode that taps directly into a live Home Assistant using an optional server component available via HACS.

Get started with a single line at Quick Start

Live and Exec Modes

These modes require a custom component to be installed on the target Home Assistant server via HACS, or use the supplied scripts to install on a local devcontainer. It adds:

  • Full access to the core Home Assistant Python API via hass
  • Read/write access to the actual objects, e.g. entities and their helpers
  • Agent friendly non-interactive mode using Exec Mode
  • A frisson of danger

Future Developments

See the Roadmap for where this might go, and your feedback welcome.

!!! note It is not intended to ever be a replacement for a Python debugger, although it may complement one. It also does not intend to replicate PyScript, instead focusing on standard python (PyScript uses MicroPython) even at expense of general usability or home assistance access, and not a general automation script execution service. For most non-developer cases, homeassistant-cli is a better choice, with pre-packaged access to devices, entities, services etc.

Agent Support

For coding agents, there is Exec Mode and also a marketplace skill.

Other Python REPLs

These are all current with Python v3, there are others like dreampie that didn't make it past Python 2.

### New Default REPL Experiences

  • Python Interactive Mode - Core python REPL, greatly enhanced in v3.13 with PyPi code, and now the default Python terminal experience.
  • VSCode Python REPL - Notebook style with Intellisense, bundled with the standard Microsoft VSCode Python bundle

Classics

  • Terminal iPython - Progenitor of Jupyter notebooks, rich formatting, syntax help, shell integration etc
  • ptpython - Syntax help and formatting, mouse support and more. Part of the prompt-toolkit project, also used by Home Assistant REPL.
  • bpython - Syntax help, auto-complete, improved history
  • xon.sh - python-centric shell
  • IDLE - the original Python Foundation enhanced shell, colourized text, multi-window etc

Metadata

Release files for homeassistant-repl 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for homeassistant-repl 0.11.0
File Size Uploaded
homeassistant_repl-0.11.0.tar.gz 47.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for homeassistant-repl 0.11.0
File Interpreter ABI Platform
homeassistant_repl-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 101.8 kB

Release files / homeassistant_repl-0.11.0.tar.gz

Download URL homeassistant_repl-0.11.0.tar.gz
Size 47.3 kB
Tags Source
SHA-256 checksum
How to use checksums
92a5b67833ad44829cc89870302860bc462c91ef8bd3e8a139c64e9b87e9a376
BLAKE2b-256 checksum
How to use checksums
589a4185a0b216acd1e86ffae03a56eec511f47ae2b8c69828696ec050aae32a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / homeassistant_repl-0.11.0-py3-none-any.whl

Download URL homeassistant_repl-0.11.0-py3-none-any.whl
Size 54.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
414d362e798e2508cf0bc1c8e324bb3f34ae6b757ed1f1046a6f14e3bec337d6
BLAKE2b-256 checksum
How to use checksums
82463247e1acc09b43ab698a13a31502bc7d7bf565d0a916476b7d4ab6590be1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.13.0

2 release files

This release

0.11.0 This release

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.4.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page