Local
There are two ways to run Kaba on a machine you sit at or log into.
| You want | Install | Engine runs as |
|---|---|---|
| The desktop app | The Kaba client | A child of the client |
| A headless node (server, home lab, GPU box) | kabactl only | A background service |
Desktop
Section titled “Desktop”Install the client from kaba.ai/download, or:
curl -fsSL https://kaba.ai/install.sh | shThe client bundles kabactl. On every start it:
- copies the bundled engine to
<user data>/bin/kabactlif it is newer than the one installed; - links it into
~/.local/bin(or$XDG_BIN_HOME) sokabactlworks in your shell; - starts
kabactl server, or uses one that is already running and healthy; - waits for it to answer on port
28832.
When you quit the client, the engine it started is stopped. To keep the engine running for cluster, proxy and training use, turn on Settings → Run In Background.
If the boot screen reports a problem with the engine, it shows the binary path, the last lines of its output and a Restart kabactl button. kabactl doctor in a terminal gives the full picture.
Headless node
Section titled “Headless node”On a machine with no desktop, install kabactl and run it as a service.
1. Get the binary
Section titled “1. Get the binary”Download the release for your platform (linux-x64, linux-arm64, macos-arm64 or windows-x64) from https://git.djcas9.com/kaba-labs/kabactl/releases, unzip it, and run it once from where it landed:
unzip kabactl-*.zipcd kabactl/./kabactl --versionSee install & quick start for the download URL pattern and for building from source.
2. Install it
Section titled “2. Install it”./kabactl service install --systemd # per-user, Linuxor, system-wide:
sudo ./kabactl service install --system --systemdThis copies the binary to its managed location, adds it to PATH, and with --systemd writes, enables and starts a unit. See services for what each variant creates.
Without systemd:
./kabactl service installkabactl service start3. Check it
Section titled “3. Check it”kabactl doctorkabactl service statuscurl -k https://localhost:28832/health4. Join it to your cluster
Section titled “4. Join it to your cluster”On a device already in the cluster:
kabactl cluster invite --name gpu-boxOn the new node:
kabactl cluster join kaba_invite_…The node now appears under Settings → Devices on your other machines. See cluster & mesh.
5. Give it a model (optional)
Section titled “5. Give it a model (optional)”kabactl get --model e4bA node with a model and accept_remote_inference = true (the default) can serve inference to the rest of your cluster.
Build kabactl from source
Section titled “Build kabactl from source”# Debian / Ubuntu build dependenciesmake apt-deps # or: make dnf-deps on Fedora
make release # optimized build in target/release/make install-systemd # build, install per-user and start under systemdThe Rust toolchain version is pinned in rust-toolchain.toml. Useful variants: make install (no systemd), make install-system (system-wide, uses sudo), make uninstall.
Ports and firewall
Section titled “Ports and firewall”| Port | Service |
|---|---|
28832/tcp | HTTPS API |
28833/tcp | SOCKS5 proxy |
28834/tcp | Tor SOCKS5, loopback only |
The first two listen on all interfaces. The cluster does not need either reachable from outside, so on a server it is reasonable to block both at the firewall and reach the node only through the mesh.
Updating
Section titled “Updating”| Install | Update with |
|---|---|
| Desktop | Settings → Updates, or reinstall. The bundled engine is updated with the client. |
| Headless | kabactl self-update. Restarts the service unless --no-restart. |
Uninstall
Section titled “Uninstall”kabactl service uninstall # or: sudo kabactl service uninstall --systemThis removes the unit, symlink and managed binary. Your data stays in the storage directory; delete that directory to remove it.