Control and monitor your Home Assistant home
  • Rust 93.8%
  • JavaScript 3.3%
  • Meson 1.1%
  • Shell 1%
  • Python 0.5%
  • Other 0.3%
Find a file
AJ Dunevent 230976a84c
All checks were successful
Tag release / tag (push) Successful in 9s
v1.0.5: Register the device again when Home Assistant loses it
2026-11-09 22:07:31 -06:00
.forgejo/workflows Replace pre-FrogPak workflow with FrogPak workflows 2026-11-07 13:42:12 -06:00
.github/workflows Remove the old release workflow and unused files; fix release.yml comment and README 2026-11-07 22:21:21 -06:00
build-aux Comment clean up 2026-11-09 20:49:12 -06:00
data v1.0.5: Register the device again when Home Assistant loses it 2026-11-09 22:07:31 -06:00
po v.1.0.2: native sign-in and clearer welcome page 2026-11-09 13:00:10 -06:00
src Register the device again when Home Assistant loses it 2026-11-09 22:04:08 -06:00
.gitignore Remove DELETED.txt 2026-11-01 18:29:57 -06:00
Cargo.lock v1.0.5: Register the device again when Home Assistant loses it 2026-11-09 22:07:31 -06:00
Cargo.toml v1.0.5: Register the device again when Home Assistant loses it 2026-11-09 22:07:31 -06:00
COPYING Initial commit 2026-11-01 17:16:55 -06:00
meson.build v1.0.5: Register the device again when Home Assistant loses it 2026-11-09 22:07:31 -06:00
meson_options.txt Initial commit 2026-11-01 17:16:55 -06:00
README.md Remove the old release workflow and unused files; fix release.yml comment and README 2026-11-07 22:21:21 -06:00

Sanctum

An adaptive GTK4/libadwaita Home Assistant companion for Linux phones, tablets and desktops.

Sanctum shows the Home Assistant frontend and adds the native companion features around it: device registration, sensors, notifications, device commands and Assist.

Features

  • Onboarding modelled on the Android app, with local server discovery, in-app login and device registration
  • Use as a full companion app, or as a front end that only shows Home Assistant
  • Internal and external addresses chosen by home network (Wi-Fi, connection or interface)
  • Sensors: battery, network, mobile signal, screen, session lock, CPU, memory, media and opt-in location
  • Notifications with images, actions, tags and click targets
  • Device commands from automations: volume, screen, brightness, flashlight, ringer mode, Do Not Disturb, media and Bluetooth
  • Assist by text or voice, with spoken replies, conversation mode and an optional launcher of its own
  • FuriOS assistant button binding
  • QR and barcode scanning for adding devices
  • Entity detail sheets with controls and a 24 hour history graph
  • Optional integrated titlebar, pull to refresh and swipe navigation
  • Self-signed certificates pinned per host

Screenshots

Dashboard Sanctum menu in the integrated titlebar

Preferences, General Preferences, Sensors Preferences, Controls

Home Assistant settings with Companion app Assist

Installing

AJHub, published with FrogPak FuriHub, published with FrogPak
x86_64 & aarch64 aarch64 only

Command line options

Option Effect
--assist, -a Open only the Assist window
--voice With --assist, start listening
--background, -b Start without a window (used by Start at Login)

Device commands

Send these as the message of a notify.mobile_app_<device> action, with the value in data.command. Names follow the Android app; levels are percentages.

Message data.command
command_volume_level 0 to 100, mute, unmute, toggle_mute
command_ringer_mode normal, vibrate, silent
command_dnd off, priority_only, alarms_only, total_silence
command_media media_command: play, pause, play_pause, next, previous, stop; optional media_package_name
command_screen_on, command_screen_off, command_lock
command_screen_brightness_level 0 to 100
command_screen_off_timeout Milliseconds, 0 for never
command_flashlight, command_bluetooth turn_on, turn_off, toggle
command_update_sensors, command_stop_tts
command_webview entityId:light.kitchen, a dashboard path or a URL
action: notify.mobile_app_furiphone
data:
  message: command_flashlight
  data:
    command: toggle

Do Not Disturb and the screen timeout need permissions the manifest leaves out. The Controls section of Preferences shows the flatpak override command for each.

Permissions

Permission Used for
--share=network Home Assistant
--share=ipc, --socket=wayland, --socket=fallback-x11, --device=dri Display
--socket=pulseaudio Voice Assist and volume
--system-talk-name=org.freedesktop.NetworkManager Network sensors and home network detection
--system-talk-name=org.freedesktop.Avahi Server discovery during setup
--system-talk-name=org.freedesktop.UPower Battery sensors
--system-talk-name=org.freedesktop.ModemManager1 Mobile network sensors
--system-talk-name=org.freedesktop.login1 Session lock, brightness and flashlight
--system-talk-name=org.bluez Bluetooth
--talk-name=org.gnome.Mutter.DisplayConfig Screen state and screen commands
--talk-name=io.FuriOS.AssistantButton FuriOS assistant button
--talk-name=io.furios.Flashlightd Flashlight on FuriOS
--talk-name=org.sigxcpu.Feedback Ringer mode and haptics
--talk-name=org.mpris.MediaPlayer2.* Media sensor and command
--filesystem=xdg-config/assistant-button:create Binding Assist to the assistant button

Location, notifications, the camera, the keyring, background running and links use portals.

License

GPL-3.0-or-later

Entity icons come from Material Design Icons (Apache-2.0). Only the icons listed in build-aux/mdi-icons.txt are bundled.