Tandem v0.7.0
v0.7.0 — Cowork Foundation Auth
Added
- Auth token storage — on first boot the server generates a 32-byte base64url token and persists it to the platform data directory. Subsequent boots reuse the token.
O_EXCLprotects the first-boot race. Tauri mode receives the token viaTANDEM_AUTH_TOKENenv before sidecar spawn. - Auth middleware — non-loopback MCP and API requests require
Authorization: Bearer <token>. Loopback connections remain exempt, preserving zero-config Claude Code usage. Token comparison uses SHA-256 +timingSafeEqual. Rate-limiting (5 attempts / 60 s) per IP with LRU eviction; Authorization headers are redacted from rejection logs. TANDEM_BIND_HOSTbind-mode selection — MCP HTTP server binds to127.0.0.1by default; setTANDEM_BIND_HOST=0.0.0.0to expose on LAN. Hocuspocus WebSocket always stays loopback. Non-loopback bind without a token file exits 1.TANDEM_ALLOW_UNAUTHENTICATED_LAN=1is the escape hatch.tandem rotate-token— atomically regenerates the auth token, opens a 60-second grace window, and re-runstandem setupacross all detected MCP config files. Prints old and new token fingerprints.- Token forwarding —
tandem mcp-stdio,tandem monitor, and the channel sidecar forwardTANDEM_AUTH_TOKENasAuthorization: Bearer. - OAuth protected-resource metadata —
/.well-known/oauth-protected-resource/mcpdeclaresbearer_methods_supported: ["header"]per RFC 9728.
Security
- Loopback detection keys off
req.socket.remoteAddressexclusively. - Fail-closed on LAN bind without a token file.
crypto.randomBytesfailure → server exits 1; no silent fallback.
See the assets to download and install Tandem, or npm install -g tandem-editor for the CLI.