Companion Agent
Companion Hub ships with a first-party AI agent ecosystem. The onboarding wizard lets you choose an Agent Framework β OpenClaw (recommended for coding and computer-use tasks) or Hermes (advanced reasoning) β and configures models, remote access, and tool integration automatically.
OpenClaw
OpenClawΒ is a self-hosted personal AI assistant with:
- Web-based chat interface
- Headless browser automation
- Tool and MCP integration with Hub
Install it from the App Store as OpenClaw WebCLI (ci-openclaw). After install, enter your LLM provider API key in the setup UI. OpenClaw supports OpenAI, Anthropic, Google Gemini, and other providers.
On a Hub install, ci-openclaw automatically receives Hub MCP credentials and loads the bundled ci-hub plugin on startup β no manual MCP configuration required. The agent can call Hub tools such as hub_list_installed_apps as soon as the container starts.
Hermes
Hermes is a messaging AI assistant available as a first-party marketplace app (ci-hermes). It ships a web terminal and dashboard, plus a messaging gateway for platform integrations (Slack, Discord, and more). Select it during the Onboarding Wizard if you prefer its interaction model, or install it later from the App Store.
On a Hub install, ci-hermes automatically registers mcp_servers.hub in its config against the Streamable HTTP endpoint (β¦/api/mcp) with Bearer auth, exposing all Hub hub_* tools alongside any optional Companion Memory MCP. The block carries no transport: key β the agentβs default Streamable HTTP client is correct, and a stale transport: sse line from an older install is removed on the next configuration pass.
Local vs cloud models
Agents can use:
- Local models via Ollama (configured in Settings β AI)
- Cloud providers (OpenAI, Anthropic, Google, GitHub Copilot)
Hub detects hardware and recommends models during setup. See AI & Inference for Ollama installation, GPU setup, and standardized inference variables.
Remote access for agents
During onboarding, choose how to reach your agent remotely:
- Private VPN β Tailscale mesh (recommended for personal use)
- Web β Cloudflare Gateway public URL (requires CI Account pairing)
MCP server
Hub exposes an MCP (Model Context Protocol) server that agents can connect to. MCP is enabled by default β the server loads automatically unless you explicitly set MCP_ENABLED=false.
No API key is created for you. Credentials are minted explicitly from Settings β Security, and the key is shown once at creation β enabling MCP and holding a working credential are separate steps.
Connecting an agent you already run β your own OpenClaw, Hermes, or Claude Code β is covered in Connect an Existing Agent, including choosing a keyβs capability.
Manage the endpoint from the CLI:
cihub mcp setup # enable the MCP endpoint
cihub mcp config # show current MCP settings
cihub mcp shutdown # disable MCPIf cihub mcp config reports mcp api key <set>, that reflects the MCP_API_KEY environment value,
which the server does not accept as a credential β only keys held in the Hubβs key store
authenticate. Read <set> as βthis variable has a valueβ, not as βyou have a working keyβ.
Agent apps with hub_integration.mcp_client: true in their manifest automatically receive these in their environment:
| Variable | Value |
|---|---|
HUB_URL | Internal Hub base URL β http://ci-os-hub:5002 on an appliance; append /api/β¦ to reach the API |
HUB_MCP_URL | Streamable HTTP MCP endpoint, path included β http://ci-os-hub:5002/api/mcp |
HUB_MCP_API_KEY | Bearer token for authenticating to the MCP server |
HUB_WAKE_SECRET | Secret used for app wake / heartbeat signaling |
Never run one before? Run your first agent goes from install to a working task in about 20 minutes.
Building agent apps
To publish an agent to the marketplace:
- Build a container (see Static Container Builder)
- Set
hub_integration.mcp_client: trueand optionalhub_integration.inferenceinconfig.json - Submit via ci.computer/store-submitΒ
