English | 简体中文
Unofficial VRChat integration that adds the status of you and your friends to Home Assistant.
- Home Assistant 2026.3+
- A VRChat account (Log in with third-party account is NOT supported. If you only have a platform account (eg. Steam), check out this guide.)
- Download and copy
custom_components/vrchatfolder tocustom_componentsfolder in your Home Assistant config folder. - Restart Home Assistant.
- Click:
Or go to ⚙️ Configuration > Devices and Services > 🧩 Integrations > ➕ Add Integration > 🔍 Search
VRChat - Follow the instructions to setup your VRChat account.
| Name | Type | Description | Picture | Attributes | Yourself | Your friends |
|---|---|---|---|---|---|---|
| Status | Sensor | User status that aligns with the VRChat website. | The same colored circle you see on the VRChat website that indicates the user's status. | ✔️ | ||
| Status | Select | Same as above. Except it allows you to change your status. | Same as above. | ✔️ | ||
| Status description | Sensor | User-defined status text. This sensor will not be added if the user does not have a status description. If you want to change your status description in Home Assistant, use the Update VRChat status action. | ✔️* | ✔️* | ||
| In-game presence | Binary sensor | Shows whether the user is logged into the game client or not. | ✔️ | ✔️ | ||
| Location | Sensor | Mostly aligns with the VRChat website. Except it also shows if the user is active on web/mobile or not when user is not in game. | If the user is in a non-private world, shows the world's thumbnail. | If the user is in a non-private world, shows the world's details. | ✔️ | ✔️ |
| (User) | Sensor | A sensor with the user's display name as its name, summarizing the above user status and in-game presence. Shows the user's status if the user is in game, and whether the user is active on web/mobile if not in game. | Shows the user's icon/pfp, with avatar image as fallback. | Shows the user's info. Additional attribute: friend_of: ID of the account that have this friend. Useful when you have multiple accounts that have the same friends or are friends of each other. |
✔️ | ✔️ |
| Avatar image | Image | ✔️ | ✔️ | |||
| Location image | Image | ✔️ | ✔️ |
(*Some information about a user may not be available. Those entities will not be added. Currently this only seems to affect status description. Location information is intepreted when not available so location entities are always added.)
Use this action to update your VRChat status and status description.
| Field | Parameter name | Description | Required |
|---|---|---|---|
| Account | config_entry_id | Choose the VRChat account you want to update status or status description. | ✔️ |
| Status | status | Choose your desired status. Omit this field if you do not want to change your status. | |
| Status description | status_description | Enter your custom status description. Omit this field if you do not want to change your status description. Enter space to clear your status description. |
All VRChat websocket events is forwarded to the Home Assistant event bus with a few modifications:
account_id: ID of the VRChat account that is emitting this event.config_entry_id: ID of the config entry that is emitting this event.device_id: If the event is related to a user, this field is set to the ID of the device representing the user.old_user: If the event is related to a user, this field is set to the user info before this event.
-
type: If the original message does not have this field, it will be set toerrorif the event is an error message (haveerrfield), orunknownfor all other cases. -
content: If this field is a json string in the original message, it will be decoded. The decoded content is also modified. See below for details.
travelingToWorldId: World ID extracted fromtravelingToLocation
The official VRChat website and the interface of this integration in Home Assistant provides different functions so you may want to use them together. Here are some quick ways you can navigate between them.
Click ⚙ Visit button in the device info section on the device page representing a VRChat user.
We have to use a userscript to modify the website to make this possible:
- Setup a userscript manager (eg. Tampermonkey, Userscripts) for your browser.
- Install this userscript.
- Go to vrchat.com.
- Enter your Home Assistant connection info. (This is needed because Home Assistant assigns random IDs to devices, and we need to get those IDs from Home Assistant to link users to device pages.)
- Choose whether you want to open in Home Assistant Companian app or in browser.
- You can now use
HAbuttons on user page andHAlinks in side bar to go to device pages in Home Assistant. You can use the⚙ HAbutton in side bar to reconfigure.
| Field | Description | Required |
|---|---|---|
| Home Assistant URL | Base URL to access your Home Assistant server. (eg. http://homeassistant.local:8123) | ✔️ |
| Alternative Home Assistant URL | If you have a different URL to access your Home Assistant server when not connected to your home WiFi, you can enter it here. | |
| Home Assistant access token | You can create a long-lived access token at the bottom of this page: |
✔️ |
| Open in app? | If you have Home Assistant Companian app installed and you want to open device pages in app, choose OK. If not or you want to open in browser, choose Cancel. |
✔️ |