Skip to main content

Local-First Principle

The Rule

Every LDM OS tool works fully on your machine without calling any external server. No accounts. No API keys. No cloud dependency. One command to install, one command to run.
npm install -g @wipcomputer/wip-ldm-os
ldm init
That gives you a complete working system. Memory, personality, tools, backup. Local SQLite. Local files. Nothing phones home.

The Test

Can someone install the package, run one command, and have a complete working system without calling wip.computer or any other server? Today the answer is yes. It has to stay yes.

The Relay Exception

The Crystal relay is a hosted service that gives iOS and cloud-hosted Claude Code access to Memory Crystal. It exists because Apple’s platform doesn’t allow local connections on mobile. The relay is:
  • Self-hostable. The code ships in the repo. You can run your own.
  • Optional. Local Crystal works without it. Desktop never needs it.
  • Not a gate. It extends access to platforms that can’t run local code. It doesn’t lock features behind a cloud service.
Local-first, relay-optional. The relay exists because of a platform constraint, not because we chose to put the engine in the cloud.

Why This Matters

The industry pattern: call a cloud wrapper “MIT open source” while keeping the engine proprietary behind a cloud API. Users think they’re getting open source. They’re getting a client for someone else’s server. Our position: if you can’t run the whole system yourself, it’s not open source. It’s a marketing label on a client library. We don’t do that.
PatternWhat it meansOur stance
Open coreEngine is proprietary. Clients are MIT.Not truly open.
Source availableYou can read the code. You can’t run it without their infra.Not truly open.
Local-firstRuns on your machine. Cloud is optional and self-hostable.This is what we do.

For Contributors

Before shipping any feature, ask: does this work without a network connection? If the answer is no, either make it work offline or make the server component self-hostable and clearly optional.