BETA In open beta. Install live. Lock $5/mo for your first 12 months. See pricing →
Install / Enterprise

Hydrate Enterprise — join an organisation server

After this page: your local Hydrate instance syncs facts and canon against your organisation's Hydrate server. Shared pinned facts appear in every team member's sessions automatically, without a separate git remote.

Install

Hydrate ships as a single Homebrew formula (or MSI for Windows: see /install/). hydrate setup handles everything: it mints your user id, wires hooks for every coding-agent runtime detected on this machine (Claude Code, Codex CLI / App, Mistral Vibe), and offers to install the local semantic embedder.

brew install getHydrate/hydrate/hydrate
hydrate setup

On a clean install hydrate setup stamps the tier as Free. The enterprise bind below swaps that for your organisation's tenant identity.

Prerequisite: enterprise client config

Your administrator gives you an enterprise client config JSON. Typically a single file with the server URL, application reference, and your provisioned email.

Bind to your enterprise tenant

hydrate enterprise install --config=<path-to-config.json>

This writes ~/.hydrate/enterprise.json, exports HYDRATE_CONTEXT_USER into your shell rc, and points the local client at your tenant's siteengine_ai deployment. The deterministic user id derived from (appReference, email) is the same on every machine your email is provisioned on, so no licence-key shuffle is required.

hydrate doctor will now show tier: Enterprise (<org-name>).

Intel Mac users: the local semantic embedder is v0.6.1+ only. If hydrate setup offered to install it on an older release, the offer was a no-op for darwin/amd64; brew upgrade hydrate first, then re-run hydrate setup-embedder.

After binding, check sync status:

hydrate enterprise status

Expected output:

sync target:   http://<internal-host>:8095
last push:     never
last pull:     never
queued writes: 0

Embedder

Enterprise replaces the bundled MiniLM with a local Nomic Embed v1.5 endpoint (text-embedding-nomic-embed-text-v1.5, 768-dim) for the read path. Setup: an LM Studio server or equivalent on the LAN; Hydrate's enterprise config points the embed client at the endpoint URL. hydrate setup-embedder is unnecessary in this mode: the daemon talks HTTP to the embedder server directly.

Verify the connection

hydrate doctor

Look for License: Enterprise in the output. If it shows Pro, the licence has not propagated yet — run:

hydrate enterprise pull
hydrate server restart
hydrate doctor

Environment variables

If the server requires authentication headers or a non-default key, set these before running hydrate auth join:

VariablePurpose
HYDRATE_CONTEXT_APIServer base URL (same as --server)
HYDRATE_CONTEXT_KEYAPI key (X-API-Key header)
HYDRATE_CONTEXT_USERUser ID path segment (defaults to your machine's user UUID)

Add them to your shell profile:

export HYDRATE_CONTEXT_API=http://192.168.1.100:8095
export HYDRATE_CONTEXT_KEY=hk_yourteamkey

How sync works

After joining, your local Hydrate hooks (claude-context, claude-capture) read from and write to both your local ~/.hydrate/data.db and the enterprise server. Reads resolve locally first (lower latency); writes fan out to the server in the background with a 1500 ms timeout. If the server is unreachable, writes queue in the local DB and flush on the next successful connection.

To push queued writes immediately:

hydrate enterprise push

To pull the latest shared facts:

hydrate enterprise pull

Pinned org-wide facts (canon)

Your admin can pin facts that appear in every employee's session. You can view them:

hydrate canon list --project=org-wide

These inject automatically — you do not need to do anything to receive them.

Offline operation

Hydrate is designed to be fully functional without the enterprise server. If the server is down:

  • All hooks exit 0 (fail-open) and write to the local queue.
  • /hydrate-last still returns your personal history from the local store.
  • Pushes queue and flush automatically when the server comes back.

Leaving the organisation

hydrate uninstall-hooks   # remove CC integration first (optional)
hydrate uninstall         # removes binaries; prompts whether to delete ~/.hydrate/

Your local ~/.hydrate/data.db is not deleted unless you pass --purge.

What changed on your machine

PathChange
~/.hydrate/enterprise.jsonServer URL, join token, your user ID
~/.hydrate/license.jsonUpdated to Enterprise edition
~/.hydrate/config.yamlEnterprise sync endpoint added

Troubleshooting

SymptomLikely causeFix
hydrate auth join fails with "invalid code" Code expired or typo Ask admin for a new code
hydrate enterprise status shows connection error Server unreachable Check server URL and network; confirm server is running (ssh admin@server 'hydrate-server status')
Doctor still shows Pro after join Licence cache hydrate enterprise pull && hydrate server restart
Context injection is slow High server latency Raise the hook timeout in ~/.claude/settings.json (default 1500 ms); or run hydrate config set context.timeout_ms=3000

Admins: issuing join codes

This is handled on the server side. On the server:

hydrate workspace invite --email=new-member@company.com

The server prints the join code. It is single-use and expires after 24 hours.

Next steps