Nosterm
Encrypted terminal chat, IRC-style, on the Nostr overlay network.
Nosterm is a browser-based Nostr client that looks and behaves like a classic IRC
command-line terminal. It connects directly to relays over WebSockets — clearnet or Tor .onion, including your own self-hosted relay — with no
custom backend, and driven entirely by IRC-style slash commands.
Old-school chat. New-world protocol.
The interface is pure IRC muscle memory — channels, nicks, /-commands, a
scrolling log. Underneath, it's Nostr: an open, decentralized network of relays with no
central owner. Familiar on the surface, unstoppable underneath.
Self-host the whole stack — the web client and the NIP-29 home relay — in a couple of minutes. Prebuilt images are published on Amazon ECR Public, so there's nothing to build. Pull them directly, or bring up both together with Docker Compose.
Nosterm — web client
The browser client, served by Caddy (which also reverse-proxies the relay).
docker pull public.ecr.aws/nosterm/nosterm:latest
Nostermd — home relay
The NIP-29 managed-groups relay with capability handshake and optional federation.
docker pull public.ecr.aws/nosterm/nostermd:latest
Or run both together with Docker Compose:
# docker-compose.yml
services:
relay:
image: public.ecr.aws/nosterm/nostermd:latest
environment:
# stable identity; required in production — openssl rand -hex 32
RELAY_SECRET_KEY: ${RELAY_SECRET_KEY:-}
volumes:
- relay-data:/data
restart: unless-stopped
nosterm:
image: public.ecr.aws/nosterm/nosterm:latest
ports:
- '8080:80'
depends_on:
- relay
restart: unless-stopped
volumes:
relay-data:
docker compose up -d # client on http://localhost:8080
The client is served at http://localhost:8080, with the home relay reachable
through the same origin at /relay. Full configuration and Tor hosting are in
the deployment docs.
⌘Command-driven
Drive everything with familiar IRC-style slash commands — /join,
/msg, /nick, /theme. Tab completion included.
⚡No backend
A client-only SPA that talks straight to Nostr relays over WebSockets. Your data path is you and the relays — nothing in between.
🔐Keys stay yours
Sign in with a NIP-07 extension, a remote signer (NIP-46), an nsec, or a freshly generated key. No third-party analytics, ever.
#NIP-29 rooms
Join relay-scoped managed groups with real rosters, invites, and moderation — the IRC channel model, on Nostr.
🌐Federated
Channels can span multiple relays run by different operators — mirror chat across peers so a room outlives any single relay. No single point of failure.
🧅Works over Tor
Connect to .onion relays straight from the browser. Reach hidden-service
relays for location privacy and censorship resistance — no exit node required.
🖥Run your own relay
Ships with a self-hostable Nostr relay in a bundled Docker stack. Point Nosterm at your own relay — clearnet or onion — and own the whole path end to end.
🎨Themeable
Twelve built-in terminal themes — Nord, Gruvbox, Dracula, Tokyo Night, Solarized and
more — switchable live with /theme.
✉Private DMs
End-to-end encrypted direct messages via NIP-17 gift wrapping. Send with a single
/msg.
Channels without servers. Identity without passwords.
Rooms are NIP-29 managed groups that live on relays, not on a company's servers — spin one up anywhere, or run your own relay in the bundled Docker stack. Channels can even federate across relays run by different operators, so a room outlives any single one. And you never register: your identity is a key pair you already control, so there's nothing to sign up for and no password to leak.
/join #generalJoin a NIP-29 managed room
/msg <npub> heySend an encrypted direct message
/nick satoshiSet your public display name
/theme set nordChange the color theme live
/connect wss://…Add a relay — clearnet, onion, or your own
/whois <npub>Show a profile, NIP-05 verified
/helpList every command, or usage for one
Chat without surrendering your identity.
No tracking, no third-party analytics, no remote scripts — the client only ever talks to the relays you choose. Your private key signs your messages and nothing else, and with a browser extension or remote signer it never even touches the page.
Ready to /connect?
No account. No password. Just your keys.
Open the client in your browser. No install, no signup wall — just type and go.
Launch Nosterm