Skip to Content

Your first hour with Companion Hub

From nothing installed to Hub running with a local app and AI behind it.

You’ll need: admin rights, a stable internet connection, enough free disk (see below), and a CI Account. You create the account at hub.ci.computer  when Hub asks you to pair.

Four stages, each with a check you run before moving on:

Disk space

Plan in layers, not one lump sum:

LayerTypical downloadNotes
Hub stack~0.4 GBDocker images for the Hub, its database, its message queue, and its router, as downloaded. They take more space once unpacked
Companion Memory~3 GBThe first install downloads about 3 GB of container images, and its database and object store then grow with your library — see Companion Memory
ModelsvariesEmbedding model under 1 GB (Nomic Embed Text is about 0.3 GB); each chat model often 2 GB+
Other appsvariesLeave headroom — photo libraries, media, and backups add up fast

A practical minimum for Hub + Memory + one small model is ~20 GB free; more is better if you plan to install extra apps or large models. Details: System requirements.

Inference

Hub apps need two different capabilities from an LLM backend:

  • Chat / decoding — answering questions, agents, summarization
  • Embeddings — vector search; Companion Memory requires embeddings
BackendChatEmbeddingsSetup
Ollama (recommended to start)✓✓Install on the host, or let the desktop app install it; Hub connects at port 11434
Lemonade✓✓AMD GPU hosts. Select it in the setup wizard; on Linux, follow the steps on the Lemonade card so Hub can reach it from Docker
vLLM✓Through OllamaNVIDIA GPU hosts. Point Hub at an existing server URL and API key, or let the desktop app install it
oMLX✓Through OllamaApple Silicon. The desktop app installs it with Homebrew, or run brew tap jundot/omlx https://github.com/jundot/omlx && brew install jundot/omlx/omlx && omlx start
What each inference backend gives Hub apps.

If you use vLLM or oMLX for chat, you still need Ollama for Companion Memory embeddings. Ollama and Lemonade embed for themselves. The wizard shows only the engines that run on your hardware: Ollama everywhere, oMLX on Apple Silicon, vLLM on NVIDIA GPUs, and Lemonade on AMD GPUs or NPUs. It also filters local model recommendations by macOS, Linux, or Windows and by the detected accelerator; full detail: AI and inference.

Companion Core Server? Docker, Ollama, and Hub are preinstalled — skip to Pair with your CI Account, or follow the Core Server quick start.

Platform-specific traps and troubleshooting live on the dedicated pages — Install Docker, Install Ollama.


Install Docker

Hub runs every app as a Docker container. Nothing else works without Docker.

Check for Docker

docker --version

If that prints a version, skip to Install Ollama.

Install

Docker Desktop works on macOS, Windows, and Linux. Licensing-free alternatives exist (Colima, Docker Engine in WSL2, Docker Engine on Linux) — Hub’s setup wizard can install those for you later if you prefer to skip manual install.

Download Docker Desktop , install for your chip, launch it, and wait until the menu-bar whale icon is idle.

Verify

docker run --rm hello-world docker compose version

docker compose version must report 2.33 or newer. Hub refuses to start on an older Compose, and it recommends Docker Engine 28 or newer.

Docker Desktop must stay running — if you quit it, Hub stops too. Enable start-at-login in Docker settings.


Install Ollama

Ollama provides embeddings for Companion Memory and local chat. Skip this step only if you already run Ollama, or you plan to configure vLLM and a separate embedding backend in Hub settings.

Install

Download from ollama.com/download  and run the installer.

Pull a chat model and an embedding model

ollama pull llama3.2 ollama pull nomic-embed-text

Let containers reach Ollama (Linux)

On macOS and Windows with Docker Desktop, containers usually reach Ollama at host.docker.internal:11434 without extra config.

On Linux, bind Ollama to all interfaces:

sudo systemctl edit ollama
[Service] Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl restart ollama

Verify from a container

docker run --rm --add-host=host.docker.internal:host-gateway curlimages/curl -s http://host.docker.internal:11434/api/tags

The --add-host flag makes host.docker.internal resolve on Docker Engine for Linux, which doesn’t define it by default. Hub adds the same mapping to its own containers.

JSON listing your models means Hub apps can reach Ollama. See Install Ollama if this fails.

Using vLLM instead of Ollama for chat? After Hub is running, open Settings → AI, select vLLM, and point Hub at your server:

  • Endpoint: http://host.docker.internal:8000 (Hub runs in Docker — not localhost)
  • API key: must match --api-key when you started vLLM (e.g. vllm-local)

Click Re-check after vLLM is serving a model. vLLM handles chat only — keep Ollama on port 11434 for Companion Memory embeddings. Details: AI and inference — vLLM.

Using Lemonade or oMLX? Select the backend in Settings → AI and click Re-check. Lemonade is the AMD GPU path, and it embeds for itself. oMLX is the Apple Silicon path; keep Ollama running for embeddings.


Install Companion Hub

Install

Download the macOS installer for your chip (Apple silicon or Intel) from ci.computer/download , open the .dmg, and drag Companion Hub to Applications.

Launch and confirm

Open Companion Hub (or browse to http://localhost:5002). First launch pulls Hub stack images.

The desktop app adds the cihub CLI to your PATH — open a new terminal before using it.

cihub status

More install paths: Installation.


Pair with your CI Account

A fresh Hub opens on the device registration screen. It asks you to pair with a CI Account before it lets anyone sign in. If you already paired during Core Server setup, skip to Sign in as the first admin.

Get a pairing code

On any device with a browser, sign in or register at hub.ci.computer . Select Add Device, name your Hub, and copy the 6-character pairing code.

No browser on the machine that runs Hub? On the registration screen, select Scan QR next to Sign in to CI Account to open hub.ci.computer on your phone.

Enter the code

Open http://localhost:5002 (or http://<server-ip>:5002). Enter the code in Enter Pairing Code and select Register.

Companion Hub device registration screen: Step 1, Get your pairing code, with Sign in to CI Account and Create account buttons and a Scan QR button beside each, and Step 2, Connect this device, with the current device ID, an Enter Pairing Code field, and a Register buttonCompanion Hub device registration screen: Step 1, Get your pairing code, with Sign in to CI Account and Create account buttons and a Scan QR button beside each, and Step 2, Connect this device, with the current device ID, an Enter Pairing Code field, and a Register button
The device registration screen a fresh Hub opens on. Step 1 gets the code from your CI Account; step 2 registers this device with it.

Hub then provisions your domain and secure tunnel. This usually takes a few minutes, and DNS propagation can add another minute or two. Keep the window open. Hub works locally even if the public address needs more time.

Prefer a terminal? Run cihub register --code YOUR_CODE. See Device pairing for the full flow.


Sign in as the first admin

Sign in

When registration finishes, Hub sends you to its sign-in screen, titled Login to your local admin account. The first person to sign in becomes the Hub’s admin. Sign in with the CI Account you just paired with: select Sign in using your CI Account (the button reads Sign in as followed by your email address when this browser is already signed in at hub.ci.computer), or enter that account’s email address and password.

Hub sign-in page titled Login to your local admin account, with a Sign in as button for a CI Account, an email address and password form, a Login button, and a Forgot password linkHub sign-in page titled Login to your local admin account, with a Sign in as button for a CI Account, an email address and password form, a Login button, and a Forgot password link
The Hub sign-in screen.

If Hub shows Create local admin user for this device instead, which it does when you open the Hub’s address again before anyone has signed in, see First login and setup. That form needs a password of at least 8 characters with an uppercase letter, a lowercase letter, a number, and a symbol.

To reset a forgotten password, select Forgot password? on the sign-in screen. Hub asks your CI Account to email reset instructions.

Run the setup wizard

After you sign in, the Set Up Companion Hub wizard shows a System Overview (OS, CPU, RAM, GPU, VRAM, storage) and your install choices on one page.

Set Up Companion Hub: a System Overview card showing the detected OS, CPU, RAM, GPU, VRAM, and storage with a Medium rating, above step 1, How to access your Hub, with the Web option selectedSet Up Companion Hub: a System Overview card showing the detected OS, CPU, RAM, GPU, VRAM, and storage with a Medium rating, above step 1, How to access your Hub, with the Web option selected
The wizard opens with a System Overview of the detected hardware; every install choice sits on the same page. The hardware values come from the machine the screenshot was taken on.

Reasonable defaults for a first run, in the order the wizard shows them:

StepFirst-run default
How to access your HubLeave Web pre-selected. Add Private VPN only if you already use Tailscale.
Choose your AI agentOpenClaw is pre-selected
Set up inferenceThe engine marked Recommended: oMLX on Apple silicon, vLLM on an NVIDIA GPU whose container runtime is ready, otherwise Ollama. Pick Ollama if you installed it in the previous step.
Choose AI modelsModels already in Ollama are pre-selected and show as Installed
Personal Memory DatabaseLeave Companion Memory pre-selected
Recommended private appsOne you’ll use from the App Store, or none
AdvancedCloud API keys. Skip if running locally.

Watch the footer download tally against free disk before clicking Install & Finish. Hub then queues everything and shows per-item progress. You can select Continue, whose label names what is still running in the background, and use the dashboard while installs finish.

Wizard reference: Onboarding wizard. Browse the full catalog: Apps Available.


Install your first app

If the wizard already installed apps, skip to Open on any app card. Otherwise:

App Store → Install → Open

Open the App Store from the top bar (see App Store) → pick an app → Install → Open.

Examples:

Each app’s card lists the addresses that work for it. On your own network, the direct port works for most apps, for example http://<server-ip>:<port>. Agent apps such as OpenClaw and Hermes, and apps with no login of their own, publish their port on the Hub machine only: reach them through Private VPN or Public web. Public and Tailscale addresses appear once you expose the app — Finding your app’s URL.


You’re done

Companion Hub dashboard with disk space, CPU load, and memory used cards, then a Batch actions button above a grid of installed app tiles: Companion Memory, OpenClaw, Immich, Jellyfin, and NextcloudCompanion Hub dashboard with disk space, CPU load, and memory used cards, then a Batch actions button above a grid of installed app tiles: Companion Memory, OpenClaw, Immich, Jellyfin, and Nextcloud
The dashboard: disk, CPU, and memory gauges above every installed app. The apps shown are example data.

Hub, local inference, and at least one app — on hardware you control.

docker ps

Every dashboard app is a container in that list.

Next steps

GoalDoc
Remote accessNetworking
BackupsBackup and restore
How Hub uses DockerDocker and Companion Hub
Connect an agentConnect an agent
Models and vLLMAI and inference
CLICLI reference
ProblemsTroubleshooting

If something went wrong

SymptomLikely cause
cihub: command not foundOpen a new terminal after first Hub launch
Dashboard won’t load at localhost:5002cihub status; confirm Docker is running
Wizard shows no modelsOllama not reachable from containers — verify step
Memory search empty / embedding errorsNo embedding model — pull one in Ollama or configure embeddings in Settings → AI
App URL 404sUse the direct port on the app card
An app’s public address shows <App> is starting…Wait. The page reloads every five seconds and opens the app when it answers. After about two minutes it says the app isn’t responding: read Settings → Logs
Registration screen says Provisioning your domain for several minutesKeep the window open. DNS and tunnel setup can take a few minutes, and propagation can add a minute or two. Hub works locally meanwhile
Registration says the code was made for a different deviceIn your CI Account, open this computer’s device menu, choose Regenerate pairing code, and enter the new code
Marketplace installs fail, or the App Store looks emptyHub isn’t paired, or it lost its device key. Pair it again: Settings → Network → Reset this Hub only opens the pairing screen, or run cihub register --code YOUR_CODE
permission denied on Docker (Linux)Log out/in after usermod -aG docker
Hub can’t reach Docker but docker info worksDocker socket mismatch

Still stuck? Getting Help — include cihub status output.

Last updated on