OpenHUB is a Python-based “home hub / station” application with a lot of features powered by "Lattuga Project". It's an opensource alternative to google nest hub or amazon echo show.
OpenHUB.antirpima.mp4
- Voice interaction: wake word listening + voice input + vocal response from Lattuga
- Widgets: some default widget that can connect whit your selfhosted data
- API: You can integrate the AI and the notify system via API.
- Bluetooh connection: For music, or to use external speakers.
- In-App update: Upgrade your app from settings.
- Arch:
base-devel git curl unzip \
python python-pip \
alsa-lib portaudio \
espeak-ng playerctl \
vlc mpv \
xcb-util-cursor noto-fonts-emoji \
blueman \
ollama \
procps-ng systemd \
libdiscid
- Debian/Ubuntu:
sudo apt install -y \
git curl unzip \
python3 python3-pip python3-venv \
libasound2 libportaudio2 \
espeak-ng playerctl \
vlc mpv \
libxcb-cursor0 fonts-noto-color-emoji \
blueman \
udev procps \
libdiscid0
- Fedora:
sudo dnf install -y \
git curl unzip \
python3 python3-pip \
alsa-lib portaudio \
espeak-ng playerctl \
vlc mpv \
xcb-util-cursor google-noto-emoji-color-fonts \
blueman \
procps-ng \
libdiscid
NOTE: At present, the programme has only been tested on Arch! It may or may not work on other distributions; if it doesn’t work, please share any issues you encounter and/or any solutions you find.
curl -LO https://raw.githubusercontent.com/Samuobe/OpenHUB/main/install.sh && bash install.shThe installer will:
- install OpenHUB under
~/.local/share/OpenHUB(or a custom folder) - create a Python virtual environment in
INSTALL_DIR/venv - install Python dependencies from
requirements.txt - install the
open-hublauncher into~/.local/bin - optionally configure systemd user autostart (
openhub.service)
You hardly have to do a thing! For the best installation, simply select ‘Stable’ and enable automatic boot when prompted. And then, boom! Restart and you're all set
You have two options:
- In-App update: Open settings and click update.
- Re-run the installer: choose "Install/Update".
Re-run the installer and choose Uninstall.
After installation, use:
open-hub helpTo see a guide about the avaible commands.
Note: DO NOT USE
open-hub start stationmodes unless you know what you’re doing. YOU MUST USEopen-hub daemon start.
Set-up is really easy! When you start up, a link will appear; just click on it from one of your devices and fill in the required fields! The second screen will ask how you want to use the AI models; for low-powered computers, we recommend the cloud option – you’ll need to create an Ollama account, which is free. That said, the local option offers greater privacy.
Contributions are welcome!
- Fork the repo
- Create a feature branch from
dev(preferred for changes):git checkout dev git checkout -b feature/my-change
- Make changes with clear commits
- Open a Pull Request targeting
dev
To contribute to the translation, you need to fork the project. Then you need to make a copy of the ‘English.lpak’ file located in the “lpak” subfolder. The file name MUST BE the name of the language in the actual language; for example, the file for Italian is NOT called ‘Italian.lpak’, but MUST BE called ‘Italiano.lpak’. Once you have done this, translate only the right-hand side of each phrase; for example, ‘hello|hello’ would become ‘hello|ciao’ in Italian. DO NOT UNDER ANY CIRCUMSTANCES TOUCH THE FIRST COLUMN. After that, submit a pull request.
The app loads UI plugins from:
apps/UI/<plugin_name>/manifest.json
If you add a new widget:
- include a
manifest.json - provide the Python entry file and class defined in the manifest
- document enable/disable behavior (the app uses a
status.conffile withenable/disable)
There is an example inclused in the script.
- Check service status:
open-hub daemon status
- Restart it:
open-hub daemon restart
- If it’s a broken install or dependency mismatch, force update:
open-hub recovery update
Ensure ~/.local/bin is in your PATH:
echo $PATH | tr ':' '\n' | grep -n "\.local/bin"If missing, add to your shell config (e.g. ~/.bashrc or ~/.zshrc):
export PATH="$HOME/.local/bin:$PATH"- Install
playerctl - If Bluetooth / MPRIS integration is required, install
mpris-proxy - If you use mpv, ensure MPRIS is available and the player is detected
Install espeak-ng and verify:
espeak-ng --versionIf OpenHUB complains about configuration:
- ensure
credential.envexists and is fully filled (no empty fields /*) - ensure
config.confexists and has required keys
Open an Issue with:
- your OS/distro
- how you installed (stable/main/dev)
- logs from:
open-hub daemon status- any terminal output when running
python3 main.py start station(if applicable)
It’s all yours! Do whatever you like – if you want to quote me, you’d be doing me a huge favour!
My name is Samuele Oberti. If you’d like to support me in another way, search for ‘Druid of Rats’ and follow me on social media – who knows, you might just love my music!