Skip to content

Zynerji/nICQ

Repository files navigation

nICQ

⚠️ This is an untested, vibe-coded 30th-anniversary tribute to ICQ. It compiles and launches, but nothing beyond that has been verified. Do not use it to carry anything you care about. Bugs, protocol gaps, and rough edges are expected.

A NOSTR-native instant messenger in the spirit of classic desktop pagers.

Unofficial fan project. Not affiliated with, endorsed by, or sponsored by VK or the holders of the ICQ® trademark. "ICQ" and the five-petal daisy logo are trademarks of their respective owners. nICQ uses a distinct six-petal hex-flower glyph and entirely new, synthesized notification sounds.

What it is

Every nICQ node runs its own embedded NOSTR relay and joins a libp2p gossip mesh, so messages deliver peer-to-peer across LAN (mDNS) and WAN (QUIC + WebRTC + DCUtR hole-punching). Public NOSTR relays are used as fallback inbox for recipients who aren't on the mesh.

NIPs

NIP Role in nICQ
01 Event sign/verify
02 Contact list = buddy list
05 DNS-based identifier (alice@nicq.im)
17 Private DMs (kind:14 chat rumors)
19 bech32 identities (npub/nsec)
28 Public chat rooms
38 User status (Online/Away/N/A/Occupied/DND/Free4Chat)
44 Payload encryption (ChaCha20 + HMAC)
51 Ignore list
59 Gift-wrap / seal
65 Relay list metadata (inbox/outbox)

Stack

  • Frontend: Tauri 2 + Svelte 5 (runes) + TypeScript, 98.css skin
  • Mesh relay sidecar: Rust — embedded NIP-01 relay over SQLite + libp2p gossipsub/mDNS/QUIC/WebRTC/DCUtR
  • Crypto: @noble/curves (schnorr), nostr-tools (NIP-19/44 reference)
  • Keystore: OS keychain via keyring-rs

Build

npm install
npm run tauri:dev    # develop
npm run tauri:build  # package for current OS

Layout

src/                  Svelte UI + NIP protocol layer (TS)
  lib/nostr/          NIP-01/02/05/17/19/28/38/44/51/59/65 + UIN derivation
  lib/ui/             Skeuomorphic widgets
  lib/stores/         session, roster, chats (Svelte 5 runes)
src-tauri/            Tauri shell (Rust)
relay-sidecar/        Embedded relay + libp2p mesh (Rust crate)

License

MIT. See LICENSE.

About

NOSTR-native instant messenger with 1999 desktop soul. Unofficial fan project, not affiliated with VK/ICQ trademark.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors