Install & Run
How to install the controller (Grablo IoT Core), connect a device, and run your project.
Installation
Grablo IoT Core runs on Windows, macOS, and a wide range of Linux devices such as Raspberry Pi, Jetson, and Radxa. All installation files are available on the download page.
| Platform | Operating System | Architecture |
|---|---|---|
| Windows | Windows 10 1903 or later | x64 |
| macOS | macOS 14.4 (Sonoma) or later | Apple Silicon, Intel |
| Linux | Raspberry Pi OS, Ubuntu/Debian-based Linux | ARM64, x64 |
Supported single-board computers include Raspberry Pi 3/4/5 and Zero 2 W, NVIDIA Jetson (Nano, Orin Nano, AGX Orin), and Radxa Rock (5A, 5B, 5C, Zero 3W). Hardware is required to actually run projects, but projects can be created without it.
Windows and macOS
Download the installer (Windows: .exe, macOS: .pkg) from the download page, run it, and follow the instructions. Grablo starts automatically once installation completes.
Pre-installed Image (Raspberry Pi)
Write a Raspberry Pi OS image with Grablo pre-installed to an SD card. Grablo starts automatically as a system service on boot, making this the simplest option for first-time users. A full image with desktop and a CLI-only lite image are provided.
For the downloaded image file (.img.xz), Raspberry Pi Imager is recommended. Select Use custom in the operating system selection and choose the image file.
In the OS customisation window, select Edit Settings to
pre-configure the hostname, user account, Wi-Fi, and locale. For a headless setup
without Ethernet, be sure to configure Wi-Fi. If you did not edit the settings, the default login is
grablo / grablo.
Home Assistant Add-on
On Home Assistant OS or Supervised, install Grablo as an add-on. The add-on connects to Home Assistant automatically, with no manual hardware setup.
-
In Home Assistant, open Settings > Apps > App store
and add
https://github.com/grablo/grablo-hass-addonsunder Repositories in the top-right menu. Clicking the button below opens the repository dialog directly. - Find Grablo IoT Core in the store and click Install.
The add-on has no UI of its own. After installing, connect to the device from the web app (app.grablo.co).
Docker
On mini PCs, NAS and other Docker hosts, install Grablo as a container. If you run Home Assistant OS or Supervised, the add-on above is recommended instead.
git clone https://github.com/grablo/grablo-docker.git cd grablo-docker docker compose up -d
Identity and data are kept in named volumes, so the container remains the same device
across updates and recreation. The container does not self-update; apply a new version
with docker compose pull followed by docker compose up -d.
See the install guide for details.
Direct Installation (.deb)
Users familiar with Linux can download the .deb package for their architecture
(ARM64/x64) and install it directly, e.g. from the command line with
sudo apt install -y ./grablo*.deb. Once installed, Grablo starts as a
system service and launches automatically on boot.
Connect and Run
Connecting a Device
-
With a project open, click the Connect button in the upper right.
-
If this is your first time, the device list is empty. Click
Add first device.
-
Devices on the same network (router/Wi-Fi) are discovered automatically. Selecting a
device fills in its name and ID; rename it if needed and click
Add Device.
A device on a different network is added by entering its 16-character Device ID manually. Find the Device ID in the tray icon → About (Windows/macOS) or with
systemctl status grablo(Linux).
-
Select the device from your list and click Connect.
Added devices are saved to your account and can be connected from other networks afterward.
-
A green dot on the device icon indicates a successful connection. Hover over the
icon to see connection details.
The project remembers the last connection and reconnects automatically next time. Click the device icon again to disconnect.
Running
Once connected, the RUN/STOP buttons appear at the top. Clicking RUN sends all project settings to the device and starts the logic. The device then runs independently, so the browser can be closed.