Core concepts

Mask backends

local, hosted, and sidecar mask paths — one field drives init, Cursor hooks, and billing honesty.

View as Markdown

Blekline uses one field — maskBackend — so clients cannot accidentally call hosted /api/mask while also using an in-cluster sidecar.

BackendPlan shellWhere mask runsHosted /api/mask
localFree / localIDE hooks + stdio MCPNo
hostedStandardBlekline cloud proxyYes (100k units / mo)
sidecarFleet / in-VPCNHIM sidecar in your clusterNever

Policy file

.blekline/policy.json:

{
  "maskBackend": "local",
  "apiUrl": "https://app.blekline.com",
  "workspaceToken": "blw_..."
}

Set via init:

npx @blekline/init --path local      # maskBackend local
npx @blekline/init --path hosted     # maskBackend hosted
npx @blekline/init --path fleet      # maskBackend sidecar
npx @blekline/init --path in_vpc     # maskBackend sidecar

Or explicitly: --mask-backend local|hosted|sidecar.

Cursor hooks

.blekline/cursor.json is derived from maskBackend:

BackendpromptMaskSourceNotes
local / sidecarlocalSidecar may set sidecarUrl from BLEKLINE_SIDECAR_URL
hostedcloudCalls hosted mask API

Native Cursor chat stays block + clipboard — not silent auto-send — on every backend.

Deploy guides

Next steps