Secure. Immutable. Yours.
A hardened, immutable Linux distribution designed for people who shouldn't have to think about security. Built on zero-trust principles with hardware-bound encryption, application containerization, and offline-first cloud sync.
33-Linux is a thick-client operating system that runs everything locally while syncing encrypted data to a cloud backend. Think of it as ChromeOS security meets Apple simplicity β without handing your data to a corporation.
- For grandma: Plug in, tap your YubiKey, use your computer. Can't break it. Can't hack it.
- For enterprises: Fleet-managed, policy-driven, containerized applications with full version control.
- For developers: The security model you wish your workstation had, with a shell when you need one.
Every app runs in its own container. Every file is chunked, encrypted, and version-controlled. Every action requires hardware authentication. If the device is lost or stolen, it's a paperweight.
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Ring 3 β
β CLI / Wayland Desktop / Apps β
β (user-facing layer) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Ring 2 β
β gated (policy gateway) β
β validates β rebuilds β routes requests β
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Ring 1 β
β authd β filed β netd β procsd β hwspawn β
β (core services, isolated) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Ring 0 β
β cryptd β 33Vault β
β (hardware-bound keys, crypto operations) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Ring isolation rules:
- Ring 3 can only call Ring 2 (never Ring 1 or Ring 0 directly)
- Ring 2 validates, rebuilds, and routes β no passthrough
- Ring 1 services cannot call each other β must go through Ring 2
- Ring 1 can call Ring 0 for crypto operations
- Ring 0 only accepts calls from Ring 1
All inter-ring communication is gRPC over Unix sockets with per-ring permission boundaries (SO_PEERCRED verification).
| Principle | What It Means |
|---|---|
| Immutable Root | squashfs mounted read-only, overlayfs+tmpfs for volatile writes. Reboot = factory fresh. |
| Offline-First | Everything runs locally. Cloud sync happens when connected; queued changes push automatically. |
| Hardware-Bound Auth | TPM proves "right device," YubiKey proves "right person." Both required. |
| Content-Defined Chunking | Files split into variable-size chunks (4-16KB), individually encrypted, deduplicated. Only changed chunks sync. |
| Version-Controlled Everything | Every file change creates a new version. Roll back any file, any setting, any time. |
| App Containerization | Each application runs in its own LXC container with namespace isolation. Browser can't read your email client's data. |
| Zero-Trust | Every RPC call authenticated. Modules can't talk to each other directly. Fail-safe deny. |
TPM (soldered to board) YubiKey (external, biometric)
βββ Platform identity βββ User identity
βββ Measured boot chain βββ FIDO2 / PIV credential
βββ Disk encryption key sealed βββ Biometric fingerprint
β to PCR values βββ Required for sensitive ops
βββ Cannot be removed βββ Can be replaced (with recovery)
Both required to unlock the system
Compromise one β still locked out. Steal the device β useless without the YubiKey. Steal the YubiKey β useless without the device.
Hardware Root (TPM PCR-sealed + YubiKey challenge)
ββ Master Key (derived at boot, lives only in memory)
ββ Session Keys (ephemeral, per-boot, crypto/rand)
ββ Per-Chunk Keys (AES-256-GCM, derived from session + content hash)
| Threat | Mitigation |
|---|---|
| Physical theft | TPM + YubiKey dual-factor; encrypted storage; no local plaintext at rest |
| Malware persistence | Immutable root; reboot wipes all volatile state |
| Lateral movement | Per-app LXC containers; ring-isolated services |
| Network MITM | mTLS for all cloud communication; certificate pinning |
| Supply chain | Minimal dependencies (Go stdlib + gRPC/protobuf); signed builds |
| Cloud compromise | Client-side encryption; server only sees encrypted blobs |
| Lost YubiKey | Recovery flow via backup codes or secondary key (configurable) |
Files aren't stored as files. They're split into variable-size chunks using a rolling hash (FastCDC), individually encrypted, and referenced by content hash.
photo.jpg (5MB)
β
βΌ Content-Defined Chunking
βββ chunk_a (4KB) β AES-256-GCM encrypt β sha256 hash
βββ chunk_b (8KB) β AES-256-GCM encrypt β sha256 hash
βββ chunk_c (6KB) β AES-256-GCM encrypt β sha256 hash
βββ ...
β
βΌ Manifest
v1: [chunk_a_hash, chunk_b_hash, chunk_c_hash, ...]
Benefits:
- Delta sync: Edit the middle of a file β only changed chunks re-encrypt and sync
- Deduplication: Identical content = identical chunks = stored once
- Version control: Each version is a manifest pointing to chunks. Rollback = load old manifest. Storage cost β 1.1x, not Nx.
- No metadata leakage: Encrypt first, then hash ciphertext. Server can't determine file contents or detect identical files across users.
The cloud server is the sync target, not the compute platform:
- Config store β source of truth for device policies and settings
- Encrypted backup β receives encrypted chunks, can't decrypt them
- Version history β stores manifests for rollback capability
- App/OS updates β distributes signed squashfs images
- Fleet management β manages multiple devices per user/family/org
- User recovery β new device pulls everything from cloud backup
| Option | Description |
|---|---|
| Self-hosted | Run the server on your own hardware (homelab, VPS). Free forever. |
| Subscription | We host it. Pay monthly for storage, sync, and support. |
The server is open source under BUSL-1.1. Run it yourself, or let us run it for you.
- Raspberry Pi 5 (8GB) β development target (no TPM, YubiKey-only auth)
- Radxa Rock 5B β TPM header available
- Any SBC with USB for external TPM module
- Standard desktops/laptops with TPM 2.0
- Enterprise thin clients
- Minimum: 4GB RAM, USB port (for YubiKey), SD card or USB SSD
- Recommended: 8GB RAM, TPM 2.0 (on-board or USB module), NVMe/SSD
- Network: Ethernet or WiFi (for cloud sync; not required for local operation)
- Go-based init system (PID 1)
- Immutable root (squashfs + overlayfs + tmpfs)
- gRPC dispatcher with Unix socket
- Core modules: authd, cryptd, filed, netd (stub), procsd, hwspawn
- CLI client (
33command) - Encrypted file queue for sync
- Dev mode for local development
- Ring 2 gateway (
gated) - Wayland compositor (kiosk mode)
- Browser in LXC container
- YubiKey integration
- TPM enrollment
- Cloud backend server (auth, sync, blob store)
- Content-defined chunking engine
- Offline queue drain with conflict resolution
- Provisioning tool (
33-prov) - Signed OS updates (A/B partition)
- Subscription/licensing enforcement
- Full Wayland desktop environment
- App containerization (LXC per app)
- App catalog with signed packages
- 33Vault password manager
- Multi-device sync & roaming
- Enterprise fleet management
- Formal security audit
- Post-quantum cryptography migration
- Mobile variant
- Pre-built hardware kits
- Go 1.25+
protocwith Go plugins (protoc-gen-go,protoc-gen-go-grpc)- Make
# Generate protobuf code and build binaries
make build
# Run in dev mode (no real mounts, local socket)
DEV_MODE=1 ./bin/initd
# In another terminal, use the CLI
DEV_MODE=1 ./bin/33 version
DEV_MODE=1 ./bin/33 auth login -u admin -p admin
DEV_MODE=1 ./bin/33 hw detectGOOS=linux GOARCH=arm64 go build -trimpath -ldflags="-s -w" -o bin/initd-arm64 ./cmd/initd
GOOS=linux GOARCH=arm64 go build -trimpath -ldflags="-s -w" -o bin/33-arm64 ./cmd/climain33-linux/
βββ cmd/
β βββ initd/ # Init system (PID 1)
β βββ climain/ # CLI client (the `33` command)
βββ internal/
β βββ authd/ # Authentication & session management
β βββ cryptd/ # AES-256-GCM encryption
β βββ dispatcher/ # gRPC server & Unix socket management
β βββ filed/ # File proxy, cache, sync queue
β βββ hwspawn/ # Hardware detection & container spawning
β βββ mount/ # Immutable root filesystem setup
β βββ netd/ # Network & cloud sync (Phase 1: stub)
β βββ procsd/ # Process & LXC container spawner
βββ proto/
β βββ auth/v1/ # Auth service protobuf definitions
β βββ crypto/v1/ # Crypto service protobuf definitions
β βββ file/v1/ # File service protobuf definitions
β βββ hw/v1/ # Hardware spawner protobuf definitions
β βββ net/v1/ # Network service protobuf definitions
β βββ proc/v1/ # Process service protobuf definitions
βββ docs/ # Architecture & design documentation
βββ Makefile
βββ go.mod
βββ LICENSE
- Talos Linux β immutable, API-driven, Kubernetes-focused. We're device-focused.
- Qubes OS β compartmentalization pioneer. We make it accessible.
- ChromeOS β security for everyone. We remove the Google dependency.
- Restic β content-defined chunking and deduplication for backups.
- Syncthing β offline-first sync protocol design.
Business Source License 1.1 (BUSL-1.1)
You can: Self-host, modify, contribute, run for personal or internal use. You cannot: Sell hosted services based on this code without a commercial license.
Self-hosters are first-class citizens. The subscription service funds development.
33-Linux β Because your grandmother deserves better security than most corporations have.
Don't Panic. Hack the Planet.