Your quantified self,
private by design and fully pluggable.

shenas pulls your fitness, music, finances, and calendar data into a local DuckDB you own — your data never leaves your machine. Extend and visualize any of it with a plugin you can write in an afternoon.

Everything is a plugin

shenas connects to the services you already use — fitness trackers, music platforms, finance apps, calendars — and syncs the data into a local database. Transforms normalize it into canonical metrics. Surfaces visualize it. If there's a data source you care about, you can write a connector in an afternoon.

Source plugins

Connect a new API or local file to shenas. dlt handles the pipeline; you define the tables.

Explore →

Transform plugins

SQL, geofence, geocode, regex — or write your own transform type.

Explore →

Surface plugins

Lit web components that query Arrow IPC and render charts.

Explore →

Dataset plugins

Define canonical metric schemas that transforms write into.

Explore →

Where this fits

The community version is free and open source — 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.

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

Read the architecture →

v0.17.2