Quickstart
Two commands
Section titled “Two commands”From your Carabase Host directory:
pnpm installpnpm carabase initpnpm carabase init is an interactive onboarding wizard. Before the steps begin it asks which environment to target — prod is the right choice for a real install. It then walks nine idempotent steps plus a final complete:
- Environment file — scaffolds
.env.<env>from the matching example (forprodthat’s.env.production) and fills in the essentials: a fresh 256-bitHOST_MASTER_KEY, a generatedOPENCLAW_GATEWAY_PASSWORD, andDATABASE_URL. Both secrets are printed once — save them somewhere safe. You can paste your own values instead of generating them. - Database migrate + seed — runs the database migrations against
DATABASE_URLand seeds a tiny starter workspace so the Admin SPA isn’t empty on first boot (skip with--no-seed). - Start host + resolve workspace — starts the host and polls
GET /api/v1/healthuntil it responds, then resolves the workspace id. - Timezone — auto-detects your machine’s IANA timezone and confirms it. Daily notes bucket on your local calendar day, so this is worth a glance before data starts flowing.
- How do you want to think? — configures the LLM provider. The wizard auto-detects local options first — a running Ollama, an installed
claudeorcodexCLI — before asking for a hosted-provider key. If your chat provider can’t also serve embeddings, it prompts inline for a separate embedding key or local URL. - What leaves your machine — prints the trust receipt: a sovereignty summary derived from your actual config, never boilerplate.
carabase trustshows it again any time. - Explore demo data, or start fresh? — optionally seeds the throwaway “Sam Rivera” demo mesh so you can see grounded, cited chat before importing your own data. Delete it any time with
carabase demo down. - OAuth apps — optional day-2 step; wire up third-party connector credentials now or later from the Admin SPA (skip with
--skip-oauth). - SOUL.md profile — optional day-2 step; best-effort seeds your owner profile (skip with
--skip-soul). - Complete — flips
workspace_settings.setup_completed = trueso the Admin SPA stops showing the first-run wizard.
Interrupted mid-wizard? Re-run pnpm carabase init — completed steps are skipped and it won’t rotate HOST_MASTER_KEY unless you ask.
After the wizard completes, open http://localhost:3000/admin/ to land on the Admin SPA dashboard.
Non-interactive mode (CI)
Section titled “Non-interactive mode (CI)”pnpm carabase init --env prod --non-interactive --config carabase.init.tomlThe TOML config shape is documented in the CLI reference. Useful for automated provisioning; not the path a human typically runs. Add --json (requires --non-interactive) for machine-readable output.
Useful commands after onboarding
Section titled “Useful commands after onboarding”pnpm carabase --help # list every commandpnpm carabase setup status # system check matrix (same as the SPA wizard's status page)pnpm carabase workspace list # enumerate workspaces on this installpnpm carabase env show # which .env file is loaded + sanity checkspnpm carabase health # ping the running hostpnpm carabase version # same as GET /api/v1/versionAfter pnpm build + pnpm link --global, the bare carabase (or short alias cb) works from any directory.
Prerequisites
Section titled “Prerequisites”The wizard’s pre-flight checks verify these for you — the table below is what to install before running pnpm install.
| Thing | How |
|---|---|
| Node 22+ | brew install node@22 |
| pnpm 9+ | corepack enable && corepack prepare pnpm@latest --activate |
| PostgreSQL 17 + pgvector | brew install postgresql@17 && brew services start postgresql@17, then install the pgvector extension. (Or docker compose up -d if you prefer Docker.) |
Optional, recommended:
| Thing | Why |
|---|---|
| An LLM provider | Chat and the agent need a model to talk to. The “How do you want to think?” step configures this; a local Ollama URL or a hosted provider key both work. |
| OpenClaw | The premium agent runtime. Optional — chat works without it (see below). See OpenClaw for install + config. |
| Tailscale | Required for the desktop client to reach the host securely. Not required for local-loop use at http://localhost:3000/admin/. See Network model. |
Chat works without OpenClaw
Section titled “Chat works without OpenClaw”Carabase Host ships a multi-engine chat layer, so you are not required to run OpenClaw:
host_native— the open-source chat floor. Answers turns directly against the model you configured in the provider step, with retrieval over your knowledge graph, and it can write to your workspace (tasks, folios, Documents, Tables) when you ask. This is what a self-host with no gateway uses out of the box.openclaw— the premium default when an OpenClaw gateway is configured.codex_cli/claude_code— optional read-write bridges to your locally-installed Codex or Claude Code CLI (each authed by your owncodex login/claude login).
The runtime defaults to auto, which picks OpenClaw when a gateway is configured and otherwise falls back to host_native — so chat answers from the moment a model provider is set up. (The vendor-CLI bridges are explicit-only and never auto-selected.)
Troubleshooting
Section titled “Troubleshooting”“psql not found” — Install Postgres: brew install postgresql@17 && brew services start postgresql@17.
“pgvector extension not available” — Install the pgvector extension for your Postgres install.
“HOST_MASTER_KEY is not configured” — pnpm carabase init generates this for you. If you’re in a half-set-up state, re-run it — it’s idempotent and won’t rotate the key unless you explicitly ask. Losing this key means losing every encrypted integration credential.
Chat returns an error or 503 — If your runtime resolves to openclaw, the gateway isn’t reachable: check that ~/.openclaw/config.toml’s gateway_password matches your .env.<env>’s OPENCLAW_GATEWAY_PASSWORD (OpenClaw setup). If you’re not running OpenClaw at all, make sure the provider step configured a usable provider — host_native chat needs a model to answer.
The Admin SPA shows “no workspace” — The seed didn’t run. Check with pnpm carabase workspace list, then pnpm db:seed:<env> to create the default workspace.