
Nosterm active
A terminal-style Nostr chat client — an IRC-like SPA that talks directly to relays over WebSocket, with an optional self-hosted home relay.
- role
- author & maintainer
- client
- SvelteKit + TypeScript
- relay
- Go (khatru, NIP-29)
- transport
- Nostr over WebSocket
- status
- MVP complete
Overview
Nosterm is a browser-based Nostr chat client that looks and behaves like a classic IRC command-line terminal. It connects directly to Nostr relays over WebSockets — no application backend — and is driven primarily through IRC-style slash commands. Nostr is a client-side protocol, so the browser talks to relays itself; there’s nothing to phone home to.
It aims to be the premier Nostr Relay Chat (NRC) client, built around a simple belief: private communication is a right, not a feature. Anonymity, encryption, and censorship resistance are the baseline, not opt-in extras.
Architecture
The client is a client-only SvelteKit SPA with strictly separated layers, so the UI and command parser never touch protocol objects directly:
UI ──▶ command layer ──▶ chat service (NDK) ──▶ stores ──▶ UI
Data flows one way. Remote Nostr events are mapped into application models and rendered as text only — never HTML — so remote content can’t forge trusted system messages or inject styles.
Home relay
Nosterm runs a hybrid model: the client connects to public relays for general
Nostr content while pointing at your own home relay for private communities.
That relay, nostermd, is a minimal NIP-29 managed-group relay in pure Go
(built on khatru, BoltDB storage, static binary on distroless). It adds a
Nosterm capability handshake — a features array in its NIP-11 document — so the
client can feature-gate its UI and fall back gracefully on plain relays.
Principles
- Small footprint — a static SPA and a single lightweight relay binary, cheap to self-host, no telemetry, no lock-in.
- Deploy anywhere — one runtime-configured image that drops onto overlay networks (Tor, I2P, Yggdrasil, and friends).
- Privacy by default — make the private path the easy path.