π Warren
March 10, 2026 Β· View on GitHub
\\
\\
\\
\ (\(\
( -.-)
o_(")(")> Your terminal is too powerful to be a black box.
πΏ~~~~~~~~~~~
Warren is an open-source, peer-to-peer terminal mesh that lets you access your machines from any device β phone, laptop, or another Mac. No SSH keys. No config files. No cloud accounts. Install, scan, connect.
Topology
βββββββββββ
β Phone β (PWA β controller only)
β (PWA) β
ββββ¬ββββ¬βββ
β β independent, authenticated connections
β β
ββββββΌβ ββΌβββββ
βMac Aβ βMac Bβ (Electrobun β host + controller)
βhost β βhost β
β+ctrlβ β+ctrlβ
βββββββ ββββ¬βββ
β
ββββββΌβββ
β Mac C β (headless β host only)
βββββββββ
Every arrow is an independent, authenticated connection. Phone's access to Mac A does not grant access to Mac B. Ever.
Quick Start
# 1. Install the Mac app
brew install --cask warren # coming soon
# 2. Open Warren β it appears in your menu bar
# 3. Click "Show QR Code"
# 4. Open warren.sh on your phone β scan QR
# 5. You're in.
Features
- Peer-to-peer mesh β connect to any machine in your Warren network, phone to Mac or Mac to Mac
- No cloud required β LAN by default, bring-your-own tunnel (Cloudflare, Tailscale) for remote
- Touch-optimized terminal β xterm.js with a mobile toolbar (Ctrl, Alt, Tab, arrows, Esc)
- Theme system β native JSON themes + full Hyper theme ecosystem compatibility
- Open source, always β MIT licensed, every line auditable, no closed binaries touching your shell
- Zero trust β per-pair authentication, no transitive access, explicit pairing required
- PWA β add to Home Screen on iPhone/Android, works like a native app
Architecture
warren/
βββ apps/
β βββ desktop/ # Electrobun menu bar app (host + controller)
β βββ web/ # PWA terminal client (xterm.js, vanilla JS)
β βββ docs/ # Astro Starlight documentation
βββ packages/
β βββ core/ # PTY manager, WebSocket server, auth, config
β βββ themes/ # Theme system, Hyper importer, built-in themes
β βββ types/ # Shared TypeScript types
β βββ config/ # Shared tsconfig, biome config
βββ SPEC.md # Full specification
See SPEC.md for the full architecture, security model, and roadmap.
Stack: TypeScript Β· Bun Β· Electrobun Β· xterm.js Β· Biome Β· Turbo
Development
# Prerequisites: Bun 1.1+
bun install
# Full dev β Electrobun desktop app + PWA + docs
# Desktop starts the Warren server on :9470; PWA at localhost:3999
bun run dev
# Web-only dev β no Electrobun required
# Starts the core server (prints QR + token) + PWA
bun run dev:web
# Build everything
bun run build
# Lint + typecheck
bun run lint
bun run typecheck
Security
Warren is designed with security-first principles:
- Zero trust β no connections accepted until explicit pairing
- Per-pair auth β every device pair has its own trust relationship (X25519 key exchange in v0.2+)
- No inherited access β access is never transitive between nodes
- Local-first β LAN by default; remote access only via user-configured tunnels
- Open source β every line auditable; no telemetry, no phoning home
See Security Model for details.
π° Contributing
Warren is early-stage and welcomes contributors! See CONTRIBUTING.md for branding guidelines, emoji palette, code style, and setup instructions.
Priority areas:
- Bonjour/mDNS discovery (
packages/core/src/discovery.ts) - X25519 key exchange + encrypted transport (
packages/core/src/auth.ts) - Electrobun desktop app (
apps/desktop/) - Themes β submit themes as PRs to
packages/themes/src/defaults/
Please read the spec before contributing so you understand the design intent.
Roadmap
| Version | Focus |
|---|---|
| v0.1 | PTY + WebSocket + basic auth + manual IP |
| v0.2 | Bonjour discovery + QR pairing + X25519 |
| v0.3 | Electrobun shell + dashboard + PWA served by host |
| v0.4 | Multi-node + session switcher |
| v0.5 | Themes + Hyper importer + PWA lock screen |
| v0.6 | Tunnel guides (Cloudflare, Tailscale) |
| v1.0 | Public release + CLI + code signing + docs |
License
MIT β see LICENSE.
Warren β a network of tunnels, built in the open. π