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:
| Variable | Purpose |
|---|---|
HYDRATE_CONTEXT_API | Server base URL (same as --server) |
HYDRATE_CONTEXT_KEY | API key (X-API-Key header) |
HYDRATE_CONTEXT_USER | User 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-laststill 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
| Path | Change |
|---|---|
~/.hydrate/enterprise.json | Server URL, join token, your user ID |
~/.hydrate/license.json | Updated to Enterprise edition |
~/.hydrate/config.yaml | Enterprise sync endpoint added |
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
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
- Claude Code integration — hook details
- Codex integration — enterprise memory in Codex sessions
- Vibe integration — enterprise memory in Mistral Vibe sessions