Native by design.
Open in connection.
Native views and a Go core. Standard Web and a global edge network. Every layer is built for lightweight, secure work across platforms.
Go + NSGo. Native throughout.
Go-written interfaces map to native platform views. UI and application logic work in one process for a small footprint and a complete experience.
Explore NSGoOne language for UI and core
Device management, pairing, networking and providers share a Go core, called directly by the native interface.
Built for longer sessions
Native virtual message lists, incremental Markdown, per-session drafts and attachment previews.
React + Next.js. Open and connect.
Next.js App Router powers the website, docs and Web console. OpenNext deploys the experience to Cloudflare, with standard WebRTC and Web Crypto in the browser.
Explore FumadocsDocumentation as code
Fumadocs generates navigation, search and pages from Markdown/MDX. Docs are maintained with the open-source core.
Standard browser capabilities
IndexedDB caches, virtual messages and responsive layouts create a consistent workflow across phone, tablet and desktop browsers.
WebRTC + TCP. Direct first.
Native clients use Pion WebRTC for UDP data channels while also attempting native TCP hole punching. Browsers use RTCPeerConnection. Public and optional self-hosted STUN gather candidates in parallel.
Read the connection strategyOne URL discovers capabilities
Clients need only the service root URL. Probe endpoints come from /p2p/config. The optional Go probe listens on TCP and UDP port 26330.
Flexible connection paths
Devices connect directly first. When relay is needed, the service provides an encrypted WebSocket path with end-to-end encryption.
One Worker coordinates your devices.
Cloudflare Workers host the website, Web client and /p2p/*. Durable Objects coordinate device rooms with hibernating WebSockets; D1 persists device and pairing metadata.
Deploy your own WorkerLess infrastructure to assemble
workers.dev provides HTTPS. Self-hosting requires no OAuth, payment setup or mandatory public VM. Add a probe if your network needs it.
One connection service
Discovery, pairing and encrypted relay share one endpoint. Official hosting and self-hosted deployments use the same clients and protocol.
Local cache. Clear cloud boundaries.
Native clients use SQLite and attachment files. Browsers retain pairing identity and session snapshots in IndexedDB. Reconnect, catch up and resume incremental events.
Read the full stack guideProjects stay on your computer
The cloud does not store plaintext chats or attachments. Projects and agents keep running on the host computer.
Storage with distinct responsibilities
SQLite stores native state, IndexedDB serves browsers and D1 persists cloud metadata. The official service manages business data with Drizzle ORM.
Keys on devices. Explicit authorization.
Pairing establishes trust with X25519, HKDF and AES-GCM. Direction-specific AEAD keys and replay protection secure traffic. Relayed messages remain end-to-end encrypted.
Security and privacy boundariesAn ID is not a credential
Six-digit device IDs enable discovery. First access requires confirmation or password verification. Account directory sync does not automatically trust a new controller.
Unified service authorization
The service issues short-lived authorization verified by the host. Direct and relay paths share access controls, while users manage device trust.
Lightweight. More room for your agents.
Native views and a Go core bring your cross-device sessions together in one lightweight app.
macOS arm64 compressed download
macOS .app file size
Demo dashboard / conversation footprint
Apple M5 · macOS 26.6 · arm64 preview build · ReignHub app physical memory measured in demo dashboard and conversation scenarios.
See test methods and resultsYour next move. Anywhere.
Six platforms. A native, lightweight experience. Bring your agents with you.