Skip to content

Local

There are two ways to run Kaba on a machine you sit at or log into.

You wantInstallEngine runs as
The desktop appThe Kaba clientA child of the client
A headless node (server, home lab, GPU box)kabactl onlyA background service

Install the client from kaba.ai/download, or:

Terminal window
curl -fsSL https://kaba.ai/install.sh | sh

The client bundles kabactl. On every start it:

  1. copies the bundled engine to <user data>/bin/kabactl if it is newer than the one installed;
  2. links it into ~/.local/bin (or $XDG_BIN_HOME) so kabactl works in your shell;
  3. starts kabactl server, or uses one that is already running and healthy;
  4. 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.

On a machine with no desktop, install kabactl and run it as a service.

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:

Terminal window
unzip kabactl-*.zip
cd kabactl/
./kabactl --version

See install & quick start for the download URL pattern and for building from source.

Terminal window
./kabactl service install --systemd # per-user, Linux

or, system-wide:

Terminal window
sudo ./kabactl service install --system --systemd

This 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:

Terminal window
./kabactl service install
kabactl service start
Terminal window
kabactl doctor
kabactl service status
curl -k https://localhost:28832/health

On a device already in the cluster:

Terminal window
kabactl cluster invite --name gpu-box

On the new node:

Terminal window
kabactl cluster join kaba_invite_…

The node now appears under Settings → Devices on your other machines. See cluster & mesh.

Terminal window
kabactl get --model e4b

A node with a model and accept_remote_inference = true (the default) can serve inference to the rest of your cluster.

Terminal window
# Debian / Ubuntu build dependencies
make 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 systemd

The Rust toolchain version is pinned in rust-toolchain.toml. Useful variants: make install (no systemd), make install-system (system-wide, uses sudo), make uninstall.

PortService
28832/tcpHTTPS API
28833/tcpSOCKS5 proxy
28834/tcpTor 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.

InstallUpdate with
DesktopSettings → Updates, or reinstall. The bundled engine is updated with the client.
Headlesskabactl self-update. Restarts the service unless --no-restart.
Terminal window
kabactl service uninstall # or: sudo kabactl service uninstall --system

This removes the unit, symlink and managed binary. Your data stays in the storage directory; delete that directory to remove it.