Skip to main content

Gossip

Native desktop Nostr client. Privacy-focused with intelligent relay management.

Overview

Gossip is a desktop Nostr client written in Rust, known for pioneering the outbox model for relay selection. It provides a native, performant experience with strong privacy features.

Key Features

Outbox Model Pioneer

┌─────────────────────────────────────────────────────────┐
│ Outbox Model │
├─────────────────────────────────────────────────────────┤
│ │
│ Traditional: │
│ Connect to fixed list of popular relays │
│ Hope everyone you follow is there │
│ │
│ Gossip Outbox Model: │
│ 1. Read user's relay list (NIP-65) │
│ 2. Connect to their write relays │
│ 3. Fetch their content directly │
│ │
│ Result: Better decentralization, less missing content │
│ │
└─────────────────────────────────────────────────────────┘

Native Desktop

FeatureBenefit
RustFast, memory-safe
Native UIOS-integrated
Local storageYour data stays local
No browserDirect relay connections

Privacy Features

  • Local key storage — Never leaves your machine
  • Selective relay connections — Only connect where needed
  • No tracking — No analytics or telemetry
  • Tor support — Optional onion routing

Core Features

FeatureDescription
FeedChronological timeline
ThreadsFull conversation view
DMsEncrypted messages
ProfilesView and edit
Relay managementFine-grained control
ZapsLightning payments

Installation

Linux

# Flatpak
flatpak install flathub com.mikedilger.gossip

# Or build from source
git clone https://github.com/mikedilger/gossip.git
cd gossip
cargo build --release

macOS

Download from GitHub releases or build from source.

Windows

Download installer from GitHub releases.

Configuration

Key Import

Settings → Identity → Import nsec

Relay Settings

Settings → Relays

Write relays: Where your posts go
Read relays: Where to fetch others' posts
Advertise relays: Published in NIP-65

Privacy Options

Settings → Privacy

□ Use Tor
□ Verify signatures only for followed
□ Prefer local cache

Outbox Implementation

Gossip reads NIP-65 relay lists:

{
"kind": 10002,
"tags": [
["r", "wss://relay.damus.io", "write"],
["r", "wss://nos.lol", "read"],
["r", "wss://relay.nostr.band"]
]
}

Then connects strategically:

  • Write to your write relays
  • Read from follows' write relays
  • Discover relays as needed

Comparison

FeatureGossipDamusWeb clients
PlatformDesktopiOSBrowser
LanguageRustSwiftJS
Outbox modelPioneerYesVaries
Local storageFullAppIndexedDB
PrivacyHighMediumVaries

See Also