Nostr Clients Compared — iOS, Android, Web & Desktop Apps
Compare open-source Nostr client apps across iOS, Android, web and desktop by platform, key-management/signer model and license. Your identity is your keypair, so you can switch clients freely. Free CSV/JSON + REST under CC BY 4.0.
Quick answer
A Nostr client is the app you actually use to read and post. The key insight: your identity is a keypair (your nsec), not an account on any server, so you can move between clients freely without losing your followers or history. This reference compares 19 open-source clients across iOS/macOS (Damus, Nostur, Nos), Android (Amethyst, Voyage), cross-platform mobile (Primal, YakiHonne, 0xchat, Olas), web (Coracle, Snort, Iris, noStrudel, Habla.news, Flycat, Ditto) and desktop (Gossip, Notedeck) by platform, key-management model and license.
Because identity lives in your keypair, switching clients is friction-free. Web clients lean on NIP-07 browser signers; Android increasingly uses NIP-55 external signers (Amber); desktop clients like Gossip encrypt your key on disk. Hold your own nsec and you stay sovereign across every app.
Download CSV Download JSON REST API →
| Client | Platforms | Key handling | License | Category | What it is |
|---|---|---|---|---|---|
| Damus | iOS, iPadOS, macOS | Local on-device key storage; nsec import/generate; integrates with iOS keychain | GPL-3.0 | General social client | One of the earliest Nostr clients for Apple platforms, offering a Twitter-like microblogging experience for iPhone, iPad and Mac. Written in Swift. |
| Amethyst | Android (with desktop builds for macOS, Windows, Linux) | Local key storage, plus support for external signers via NIP-55 (e.g. Amber) so the app need not hold the private key directly | MIT | General social client | A feature-rich Nostr social client for Android, written primarily in Kotlin. Supports NIP-55 external Android signer applications. |
| Primal | Web, iOS, Android | nsec import/generate; web app works with NIP-07 browser signers | MIT (primal-web-app) | General social client | A Nostr client with a caching/indexing backend offering fast feeds, search and analytics across web and mobile. The web app is built with SolidJS/TypeScript. |
| Coracle | Web (PWA), Android | Supports NIP-07 browser extensions and remote/bunker signing (NIP-46); nsec login also available | MIT | General social client | A Nostr web client focused on getting the most out of multiple relays, with custom feeds, filtering and zaps. Built with Svelte/TypeScript. |
| Snort | Web (with a Tauri desktop variant) | Supports NIP-07 browser signer extensions and nsec login | MIT | General social client | A Nostr web UI built with React/TypeScript aiming for speed and broad NIP support. |
| Iris | Web (with desktop and mobile builds) | Client-side key storage; offline-first design; supports NIP-07 browser signers | MIT | General social client / messenger | An offline-first Nostr web client that does not depend on a single relay, including encrypted DMs, a Cashu wallet and social-graph based content filtering. Written in TypeScript. |
| Gossip | Desktop (Windows, macOS, Linux) | Private key encrypted under a passphrase on disk, decrypted on startup; memory zeroed before freeing. Emphasis on secure local key handling | MIT | General social / power-user desktop client | A desktop Nostr client written in Rust (egui UI) emphasizing security, relay-model correctness and careful private-key handling. |
| Nostur | iOS, iPadOS, macOS | Local on-device key storage; nsec import/generate | GPL-3.0 | General social client | A social-media oriented Nostr client for Apple platforms with a broad and experimental feature set. Public source written in Swift. |
| noStrudel | Web | Recommends NIP-07 browser extensions (e.g. Alby, nos2x) rather than entering secret keys directly in the web app | MIT | General/exploratory social client | A web Nostr client and protocol sandbox for browsing notes and inspecting underlying events, written in TypeScript. |
| Nos | iOS, macOS | Local on-device key storage; nsec import/generate | MPL-2.0 | General social client | A Nostr client from the Planetary team focused on a polished new-user experience for Apple platforms. Written in Swift. |
| Notedeck | Desktop (Linux, macOS, Windows), Android | Local key storage with multi-account support | GPL (per-crate; see repository) | Multi-column power-user client | A multiplatform, TweetDeck-style Nostr client built in Rust by the Damus team, providing a multi-column layout and media support. In beta. |
| YakiHonne | Web, iOS, Android, macOS | nsec login; web app supports NIP-07 browser signers | MIT | Content/media social client (long-form, articles, curation) | A decentralized content-media client supporting multiple formats including long-form articles, notes and curation, across web and mobile. Mobile app built with Flutter/Dart. (Linked repo is the archived mobile app; project continues at the YakiHonne organization.) |
| Habla.news | Web | Supports NIP-07 browser signer extensions | GPL-3.0 | Long-form content client (NIP-23) | A Nostr web client for reading, writing and curating long-form (NIP-23) censorship-resistant content. Written in TypeScript. |
| Highlighter | Web | Supports NIP-07 browser signer extensions | — | Creator publishing / curation client | A Nostr web tool for creators and fans, supporting curated highlights and creator publishing/subscriptions (built on NIP-29 groups and NIP-88 subscriptions). Source is publicly available but no explicit license was found in the repository, so open-source status is not confirmed. |
| Olas | iOS, Android | nsec login; supports remote signing | MIT | Media-sharing social client (image/photo) | A media-focused Nostr client (image/photo sharing) built with React Native/Expo in TypeScript. |
| 0xchat | iOS, Android (desktop/tablet planned) | Private-key login; encrypted private and group chats; encrypted contact lists | LGPL-3.0 | Secure messenger client | A secure chat app built on Nostr offering encrypted private and group messaging, public channels and Cashu payments. Built with Dart/Flutter. |
| Flycat | Web (PWA, with Tauri desktop) | Multiple sign-in methods including NIP-07 browser signers | MIT | Blogging / minimalist social client | A 2000s old-school style Nostr web client supporting blogging and multiple content types, with no follower counts or engagement metrics. Written in TypeScript. |
| Ditto | Web (static build), Android (Capacitor) | Supports NIP-07 browser signers; nsec login | AGPL-3.0 | Customizable social client / community platform | A customizable Nostr social client that builds to static HTML/JS/CSS and can be self-deployed, with an Android build via Capacitor. Written in TypeScript. |
| Voyage | Android | External-signer-only authentication (NIP-55); the app itself does not hold the private key | MIT | Reddit-style / lightweight social client | A lightweight Android Nostr client with a Reddit-like UI, outbox-model relay discovery and offline support. Written in Kotlin; requires an external signer. |
Source: each project’s own GitHub repository, cross-referenced against the awesome-nostr list (June 2026). See also the Nostr relay implementations, the NIPs reference, the event kinds reference, and the Nostr glossary entry.
Related products, repair, and setup paths
- Bitcoiner sovereignty hub
- the plebs sovereign stack
- Nostr for Bitcoiners
- run your own Nostr relay
- getting started with Meshtastic
- Bitcoin over Meshtastic mesh networks
- open-source hardware tools directory
- off-grid Bitcoin mining
Last reviewed June 19, 2026.
