CClawMetryDocs

Cloud & fleet

Self-hosted ingest#

Run the endpoint yourself. Nodes push to your server instead of the hosted one, and you own the storage.

bash
CLAWMETRY_ENDPOINT=https://clawmetry.internal.example.com \
  clawmetry connect --key cm_xxx

When this is the right choice#

  • Data residency. The snapshot must stay in a jurisdiction or a network you

control.

  • Air-gapped networks. There is no route to a hosted endpoint at all.
  • Audit perimeter. Everything must be inside a boundary you can attest to.

If none of those apply, the hosted endpoint with end-to-end encryption already means the server cannot read your content — self-hosting is then a matter of operational preference rather than confidentiality.

The ingest surface#

Nodes push to a small set of endpoints, and your server implements them:

EndpointPayload
POST /authNode authentication
POST /api/registerNode registration
POST /ingest/heartbeatLiveness and top-line counters
POST /ingest/eventsThe event stream
POST /ingest/sessionsSession records
POST /ingest/logsLogs
POST /ingest/memoryMemory file state
POST /ingest/system-snapshotHost health
POST /ingest/streamLive stream
POST /ingest/autonomyAutonomy state
POST /ingest/cacheCached query results

And a read surface for the dashboards you point at it:

EndpointReturns
GET /api/selfhosted/nodesRegistered nodes
GET /api/selfhosted/statusServer status
GET /api/cloud/brainThe activity stream
GET /api/cloud/policiesPolicy state
GET /api/cloud/cache/<key>A cached query result
GET /api/export/eventsBulk export

Plus the approval relay:

EndpointPurpose
POST /api/approvals/requestAn agent asks
GET /api/approvals/<id>Poll for a decision
POST /api/selfhosted/approvals/<id>/decisionA human answers

Configuration#

VariableEffect
CLAWMETRY_ENDPOINTWhere nodes push
CLAWMETRY_SELF_HOSTEDRun in self-hosted mode
CLAWMETRY_SELF_HOSTED_DBDatabase for the self-hosted server
CLAWMETRY_SELF_HOSTED_E2EWhether content is end-to-end encrypted
CLAWMETRY_CA_BUNDLECustom CA bundle, for an internal certificate authority

Encryption on your own server#

Keeping end-to-end encryption on means even your own server cannot read session content — the browser decrypts it. That is the stronger position, and it costs you server-side search over content.

Turning it off means your server holds readable transcripts, which is a coherent choice if you already own that storage and want to query it. Decide deliberately; the default is on.

Air-gapped#

Two extra pieces:

  1. A license that verifies offline. Keys are verified cryptographically on

the machine with no license-server call. → license

  1. No update checks. CLAWMETRY_AUTO_UPDATE=0 and CLAWMETRY_OFFLINE=1

stop every outbound call.

bash
export CLAWMETRY_OFFLINE=1
export CLAWMETRY_AUTO_UPDATE=0
clawmetry activate CLAW1.xxxxx

Operating it#

The same things you would run for any ingest service:

  • TLS, with a certificate your nodes trust. Distribute an internal CA with

CLAWMETRY_CA_BUNDLE if you use one.

  • Retention on your side. Node-side retention bounds the local store; your

server's is yours to set. → Retention

  • Backups of whatever database you configured.
  • Access control on the read surface. The ingest side authenticates nodes;

who may read the dashboard is your policy.

Tier#

Self-hosted deployment is a licensed configuration. custom_data_residency and air_gapped_license are Enterprise features. → Plans and entitlements

Cookie preferences