Skip to content

πŸ‰ Wyrm Cloud ​

Encrypted multi-device sync for the Wyrm MCP server. A paid add-on: sync needs a Pro license or higher. Wyrm itself stays free to use on your machine.

Live at wyrm.ghosts.lk.

Two editions β€” don't confuse them (constitution Article IX):

  • Wyrm Sync β€” this page. Zero-knowledge, end-to-end encrypted multi-device sync. Your master key never leaves your device; the server stores opaque ciphertext and cannot read your memory.
  • Wyrm Cloud (managed memory) β€” a separate, opt-in, entitlement-gated tier at mcp.wyrm.ghosts.lk for Claude web/phone connectors (remote MCP). Those clients have no local machine or key, so this store is server-readable by design (not E2E) and disclosed as such. It is never created from your Sync/Local data automatically.

What it does ​

You install wyrm-mcp on your phone, laptop, workstation. Each one has its own local Wyrm database. Without Wyrm Cloud, those databases drift β€” a quest you closed on your laptop doesn't appear on your phone.

With Wyrm Cloud:

  1. You sign in once per device with Google or GitHub
  2. Mark rows as cross-project visible (cross_project_visibility = 'org' or 'public')
  3. Run wyrm cloud sync β€” those rows are encrypted client-side, pushed to the cloud, then pulled to your other devices
  4. The cloud stores opaque ciphertext only β€” your encryption key never leaves your devices

What's encrypted ​

Row typeSynced
Ground truthsβœ“
Memory artifactsβœ“
Questsβœ“
Design tokensβœ“
Design referencesβœ“
Sessions, hour entries, failure patternsβ€” (device-local time-series)

Only rows where you explicitly set cross_project_visibility = 'org' or 'public' are pushed. Default is 'within' β€” local-only.

Quick start ​

bash
# install the latest stable
npm install -g wyrm-mcp@latest

# sign in (browser flow with Google or GitHub)
wyrm cloud login

# see what's there
wyrm cloud status

# push + pull (needs a Pro license or higher)
wyrm cloud sync

Without a Pro license wyrm cloud sync stops and prints your current tier. Signing in, status, devices, recovery and delete work on any tier.

The login flow:

  1. CLI prints https://wyrm.ghosts.lk/cli and a short code like ABCD-1234
  2. You open the URL on your phone, type the code, sign in
  3. CLI polls; completes in seconds

Encryption details ​

  • Algorithm: AES-256-GCM (Cloudflare server cannot decrypt)
  • Key: 32 random bytes stored at ~/.wyrm/cloud.key (0600 perms)
  • Generated automatically on first wyrm cloud login
  • Per-payload envelope: [version:1][iv:12][ciphertext+tag:N+16]
  • Tamper detection: GCM auth tag rejects modified ciphertext

You're responsible for backing up ~/.wyrm/cloud.key. Losing it means losing access to your synced data β€” by design. This is the operator-owns-data guarantee in our constitution.

Architecture ​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Your machine             β”‚                β”‚ Cloudflare edge          β”‚
β”‚ wyrm-mcp + wyrm CLI      β”‚                β”‚ wyrm.ghosts.lk Worker    β”‚
β”‚ ~/.wyrm/wyrm.db (SQLite) β”‚ HTTPS+Bearer   β”‚                          β”‚
β”‚ ~/.wyrm/cloud.key (0600) β”‚ ──────────►    β”‚ Validates session         β”‚
β”‚                          β”‚                β”‚ Stores ciphertext in R2   β”‚
β”‚ Encrypts BEFORE sending  β”‚                β”‚ Indexes deltas in D1      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The cloud server has access to:

  • Your email + the OAuth provider (Google or GitHub) you signed in with
  • Counts of deltas, devices, storage usage
  • Encrypted blob bytes (opaque to the server)

The cloud server does NOT have access to:

  • Plaintext memory content
  • Your encryption key (~/.wyrm/cloud.key)
  • The actual kind, row_id, or payload data inside blobs (well β€” kind is cleartext for filtering, but the payload contents are encrypted)

Tiers ​

TierPriceWhat it adds
Free$0Local Wyrm: the memory, the firewall, the recall. No cloud sync
Pro$29/moCloud sync, encrypted snapshots, analytics, priority support
Team$199/moShared team memory, up to 25 seats, admin dashboard
Enterprise$499/moUnlimited seats, SSO/SAML, custom SLA, on-premise option

Plans and self-serve checkout: ghosts.lk/pricing. The CLI checks the license before it moves data: wyrm cloud sync, wyrm cloud daemon and wyrm cloud export need Pro or higher. login, logout, status, doctor, devices, recovery and delete work on any tier, so you can always sign in, see your account, and delete your own data.

Web dashboard ​

wyrm.ghosts.lk/login β€” same Google/GitHub sign-in, then a web dashboard at /app showing:

  • Account email + tier
  • Storage usage
  • Devices (revoke individual machines)
  • Orgs you belong to
  • Logout

CLI command reference ​

wyrm cloud login                  # Google or GitHub OAuth
wyrm cloud logout                 # revoke session both ends
wyrm cloud status                 # account / tier / storage / devices
wyrm cloud devices                # list registered devices
wyrm cloud devices revoke <id>    # revoke a specific device
wyrm cloud sync [--dry-run]       # push + pull encrypted deltas (Pro or higher)

Config locations:

  • ~/.wyrm/cloud.json β€” session token (HttpOnly-equivalent, 0600)
  • ~/.wyrm/cloud.key β€” AES-256-GCM master key (0600, NEVER shared)
  • ~/.wyrm/cloud-cursor.json β€” last-pulled timestamp per device

Security guarantees ​

  • All HTTP traffic over TLS 1.3 (Cloudflare-enforced)
  • 60-second timeout on every CLI request (no hung sessions)
  • OAuth login defeats: code-substitution phishing (typed-code), login-CSRF (state-cookie binding), redirect-URI tampering (registered-URI verification)
  • Sessions are 256-bit random tokens, 30-day expiry, revocable instantly
  • Devices revoked from the dashboard refuse future syncs at the next attempt
  • Server-side: every D1 query is tenancy-filtered by account_id from the validated Bearer
  • Pentest pass: 50+ adversarial probes across SQL injection, IDOR, oversize payloads, cleartext-payload rejection β€” all clean

Constitution alignment ​

Wyrm Cloud is rule I (local-first) compliant: Wyrm runs unchanged without ever logging in. The cloud is purely additive opt-in.

Wyrm Cloud is rule IV (operator owns the data) compliant: AES-256-GCM with operator-held keys, server stores opaque blobs only, full data export via ~/.wyrm/wyrm.db, can be deleted on demand.

Cost transparency ​

Wyrm Cloud runs on Cloudflare's free tier:

  • Workers: 100K requests/day free
  • D1: 5GB Β· 5M reads/day Β· 100K writes/day free
  • R2: 10GB storage Β· $0 egress free

At current scale (single founder + a few testers), monthly cost is $0.00. We'll publish a hosting-cost transparency report once traffic warrants it.

Proprietary Β· Β© 2026 Ghost Protocol (Pvt) Ltd