Self-hosting and managed services

Everything local is open source. The hosted service sells resources and their operation; it does not sell access to your own machine.

What is open source

The desktop and mobile clients, the command-line client, the local host and the plugin and skill machinery are all the same open-source builds under the BSD 3-Clause Licence. So is the website service behind this page: an operator can run it under their own Cloudflare account with their own credentials.

Direct connections between your own devices and local pairing need no KalaReach account at all.

What the managed service sells

The hosted service sells provider usage and the operation of the services around it. Its endpoints authenticate the requester and enforce payment, reservations and limits before handing over a resource.

Paid and free capabilities
Paid offeringFree without payment
Managed relay capacity beyond the free allowanceDirect connections between your own devices
Encrypted storageLocal sessions, local history and local descriptions
Metered voice and managed reasoningThe agent already running in your session
NonePlugins, skills, agent questions and basic managed push within its abuse limits

The service has endpoints for encrypted storage, for metered voice and reasoning, and for push. A host reaches the storage, voice and relay lease services only when its configuration names their origins and you sign the host in with kr account sign-in; until then it uploads no backup and starts no managed voice call. It places notification objects in the mailbox only when its configuration names one. A phone registers with the push gateway when you turn on notifications for a host, and the host sends notifications to it there. Notifications to a webhook, a chat service or an email address go only to destinations you add with kr destination configure.

Allowances and what exhaustion means

Managed relay traffic has a monthly allowance per account, larger on a subscription. The defaults are 10 GiB free and 100 GiB on a standard subscription; they are operator configuration, not fixed constants. Anonymous installations receive the free allowance through a device credential, with per-network abuse controls and a global daily budget. Self-hosted services and direct connections do not draw on any of it.

You are warned at 80% and at 95%. At exhaustion the service stops admitting new relayed sessions and gives the connections you already have up to 15 minutes or 100 MiB, whichever ends first, with the remaining interval on screen. That allowance is shared across every connection of that account: it starts at the first exhaustion, and reconnecting, moving to another endpoint or another region cannot reset it. Self-hosted paths are unaffected, and a direct connection you already hold keeps working. Opening a new one can still need a relay to introduce the two devices, so exhaustion blocks that until you supply a current address hint, choose local network discovery, configure another relay or restore the allowance.

The terminal worker on your host stays alive throughout. This is a visible loss of remote connectivity, not the end of your session.

Cancelling a subscription removes future paid capacity at the effective time. It never terminates a local session, and a failed payment does not erase encrypted data without the stated retention period and notices.

Running the services yourself

Discovery, relays, push, sync, storage and model providers are selected independently, so a self-hosted configuration can replace one of them without replacing the rest. A pairing invitation carries the network configuration it expects, and self-hosted configuration names the publisher URL, resolver URL, DNS origin and relay map separately.

The documented HTTP and protocol boundary is kept so an alternative service implementation stays possible. An operator who omits an integration gets a precise diagnostic naming the capability that is disabled, not a silent failure.