Architecture

Raw personal data never leaves your device. This is the load-bearing constraint, not a marketing line.

What is free and what is sold

The community version — hosted at shenas.ai/oss — is the open-source version: the plugin SDK, the architecture, the code, the way you extend or replace any piece. The local pipeline, the on-device models and the privacy primitives stay in the community version, forever.

shenas is open-core. What is sold is the operation of a service: either it needs a party who is not you, or it is a convenience over something the community version already does for free.

Nothing on this list is for sale yet.

Account services

  • Identity / namespaceNot yet for sale

    Needs someone other than you: the namespace and identity operator; a name has to be issued and kept unique by whoever runs the namespace

    If you leave: the community version runs with no account; keys and data are untouched; the name lapses

  • RelayNot yet for sale

    Needs someone other than you: two devices behind NATs cannot both be the relay between them

    If you leave: direct paths keep working; anyone can run the same upstream relay

  • MailboxNot yet for sale

    Needs someone other than you: someone holds ciphertext for a peer that is offline

    If you leave: live and relayed delivery continue; only store-and-forward for offline peers stops

  • Push relayNot yet for sale

    Needs someone other than you: the holder of the app's push credential at the platforms; a push sender is the app's publisher, not its user

    If you leave: the app fetches when opened

  • RecoveryNot yet for sale

    Needs someone other than you: a witness holding a recovery shard; a user who has lost every device cannot be their own witness

    If you leave: the user's own copy of their key material, kept where they choose

  • InheritanceNot yet for sale

    Needs someone other than you: custody that outlives the user; someone holds the instruction and acts when the user no longer can

    If you leave: the user hands the key to a person themselves

  • Signed plugin channelNot yet for sale

    Needs someone other than you: a vouch is someone else's statement; the company reviews and signs as one signer among those the user trusts

    If you leave: the trust store and every plugin stay; only the company's signature stops being renewed

Hosted compute and storage

  • LLM proxy → mixnetNot yet for sale

    Needs someone other than you: the account holder at the model provider is the company, so the provider sees the company's account, not the user's, though prompt content can still identify the person; later, the anonymity set of the other users

    If you leave: the community version calls a provider with the user's own key, or a local model

  • BackupNot yet for sale

    Needs someone other than you: storage the user's own devices do not provide, holding ciphertext the operator cannot read

    If you leave: export to a place the user holds and replication across their own devices; the company's copy is never the only copy

  • Cloud workersNot yet for sale

    Already free: the same worker runs on the user's own always-on machine

    If you leave: the user runs the worker themselves; a hosted worker holds only a cache and its configuration

The distinction matters: a feature that requires sending raw data to a server cannot ship in the community version, regardless of how useful it would be. The on-device constraint is enforced at the architecture level, not by policy.

Key architectural properties

Local-first storageAll raw data lands in a local DuckDB database at ~/.shenas/shenas.db. Source plugins write directly to this database. No relay, no cloud storage.
On-device modelsFederated learning runs entirely on your device (Flower + PyTorch). Only gradient updates — never raw data — leave the device, and only via the Nym anonymous-credential mixnet.
Multi-device syncDevice-to-device sync goes directly between your own devices, mutually authenticated by keys each device holds. There is no relay in between, and no sync key held server-side.
Plugin signingEvery plugin shipped via CI is signed with Ed25519. The CLI verifies the signature before installing. Third-party signing is in progress; see the roadmap.
No telemetryshenas does not phone home. No usage analytics, no crash reporting, no feature flags that depend on server calls. What runs on your device stays on your device.

Go deeper

v0.17.2