Community

Apps

Nostr Clients

A Nostr client is the reader's current window into the network, not the network itself. The best way to compare clients is to ask what they reveal, what they hide, which standards they understand and how gently they handle identity, relays, media, zaps and trust.

Nostr Clients visual
Apps The product layer Clients, signers, publishing tools, wallets and protocol utilities.
Back to Nostr
Apps

Apps shelf

Apps pages collect clients, signers, tools, developer libraries and product research without turning the app into the whole network.

Apps All Apps pages App routeProduct profiles, categories, tools and source links Browse appsClose shelf

App orientation

App categories

App profiles

0xchatadvanced-nostr-searchAegisAlbyAlby GoAlby HubAlby HubAlby SDKAmberAmberAmethystAmethystApp and product researchApplication-specific dataBlossomBlossom spec NIP-B7BookstrBorisBouquetCalendar by FormstrChachiNostr Apps DirectoryCoracleCoracleCorny ChatCreatrDamusDamusDeveloper stack researchDittoDittodiVineDocstrDTANEmojitoFlotillaFlycatFormstrFountainFreeFromFundstrfutrGIF BuddyGittrgo-nostrGossipGossipGrimoireGroups NIP-29HablaHablaHello Nostr — ResourcesHighlighterHiveTalkhomebrew-nostrHORNET StorageHugo2NostrHyperNoteIrisIrisJumblekanbanstrKeys BandListrLNBits NostrmarketLumeLumilumiLUMINAMapstrMarmot Protocolmatrix-nostr-bridgeMeetstrMemestrMindsmonstrmostardMostronaknak — Nostr Army KnifeNalgorithmNarrnashboardNDKNegentropyngitNofluxNosNos Socialnos2xnosbinnosclNostorg Feature MatrixNostr App ManagerNostr Apps Directory GuideNostr clients feature listNostr Compass — ProjectsNostr Developer GuideNostr Development KitNostr Events MonitorNostr MCP ServerNostr NestsNostr PlaygroundNostr Service ProvidersNostr Writernostr-post-checkernostr-protocol/nostrnostr-rubynostr-sdknostr-sdk-ffinostr-sdk-flutternostr-to-rssnostr-toolsNostr.bandnostr.buildnostr.co.uk ClientsNostr.how — Clientsnostr.hsNostrabilityNostrAppsNostrApps category — AudioNostrApps category — CareerNostrApps category — CommunityNostrApps category — CurationNostrApps category — Direct MessageNostrApps category — DiscoveryNostrApps category — File SharingNostrApps category — Group ChatNostrApps category — MeatspaceNostrApps category — OnboardingNostrApps category — SignersNostrApps category — Toolsnostrchecknostrdbnostrdb-rsNostreeNostreonNostriaNostridNostrium / read.nostr.comNostrmoNostrubenoStrudelnoStrudelNostterNosturNosturNotedeckNpub.proNpub.worldnsec.appnsiteNsiteNstart.meObsidian Nostr WriterOlasOpenvibeOracoloOstrich WorkOwn Your PostsP2P BandPazPeridotPhoenixPlebeian MarketPostizPostr / write.nostr.comPrimalPrimalPrimal Article Editor / Reads authoringPrimal Studiopynostrpython-nostrRecommended Application HandlersRelay Toolsrsslayrust-nostrrust-nostr docsSatelliteSatellite EarthSatlantisSatShootShakespeareShopstrSlidestrSnortSnortStemstrswift-nostr-clientTreasuresWavlakeWavlakeWikifreediaWikistrYakiHonneYakiHonneYakiHonne mobile/web app directoryYondar

App pages

Deep dives

Field guides

Awesome Nostr branches

Research and library

Source inventory

Deep Research: Clients, apps and product surfacesDeep Research: Developer stack and toolingResearch Map: nostrapps.comResearch Source: 0xchatResearch Source: 0xchat — NostrApps pageResearch Source: advanced-nostr-searchResearch Source: Aegis — NostrApps pageResearch Source: AlbyResearch Source: Alby — NostrApps pageResearch Source: Alby GoResearch Source: Alby HubResearch Source: Alby Hub GitHubResearch Source: Alby SDKResearch Source: AmberResearch Source: Amber — NostrApps pageResearch Source: AmethystResearch Source: Amethyst GitHubResearch Source: Awesome Nostr ResourcesResearch Source: BookstrResearch Source: BorisResearch Source: Boris — NostrApps pageResearch Source: BouquetResearch Source: Bouquet — NostrApps pageResearch Source: Calendar by FormstrResearch Source: ChachiResearch Source: Chachi — NostrApps pageResearch Source: CoracleResearch Source: Coracle — NostrApps pageResearch Source: Corny ChatResearch Source: DamusResearch Source: Damus — NostrApps pageResearch Source: DittoResearch Source: Ditto — NostrApps pageResearch Source: DocstrResearch Source: DTANResearch Source: DTAN — NostrApps pageResearch Source: EmojitoResearch Source: Emojito — NostrApps pageResearch Source: Flotilla — NostrApps pageResearch Source: FlycatResearch Source: FormstrResearch Source: Formstr — NostrApps pageResearch Source: FountainResearch Source: FreeFromResearch Source: FreeFrom — NostrApps pageResearch Source: FundstrResearch Source: futrResearch Source: futr — NostrApps pageResearch Source: GIF BuddyResearch Source: GIF Buddy — NostrApps pageResearch Source: GittrResearch Source: go-nostr GitHubResearch Source: GossipResearch Source: Gossip — NostrApps pageResearch Source: GrimoireResearch Source: Grimoire — NostrApps pageResearch Source: HablaResearch Source: Habla — NostrApps pageResearch Source: Hello Nostr — ResourcesResearch Source: HighlighterResearch Source: HiveTalkResearch Source: HORNET Storage — NostrCompassResearch Source: IrisResearch Source: Iris — NostrApps pageResearch Source: JumbleResearch Source: Jumble — NostrApps pageResearch Source: Keys BandResearch Source: Keys Band — NostrApps pageResearch Source: ListrResearch Source: LNBits NostrmarketResearch Source: LumeResearch Source: LumilumiResearch Source: LUMINAResearch Source: MapstrResearch Source: Marmot ProtocolResearch Source: MeetstrResearch Source: MemestrResearch Source: MindsResearch Source: monstr GitHubResearch Source: mostardResearch Source: MostroResearch Source: my.nostr.comResearch Source: nak — Nostr Army KnifeResearch Source: nak GitHubResearch Source: NalgorithmResearch Source: Narr — NostrApps pageResearch Source: nashboardResearch Source: NDK GitHubResearch Source: NDK NPMResearch Source: NegentropyResearch Source: Noflux — NostrApps pageResearch Source: Nos SocialResearch Source: Nos Social — NostrApps pageResearch Source: nos2xResearch Source: nos2x — NostrApps pageResearch Source: nosbinResearch Source: noscl GitHubResearch Source: Nostorg Feature MatrixResearch Source: Nostr App ManagerResearch Source: Nostr Book — KindsResearch Source: Nostr DesignResearch Source: Nostr Developer GuideResearch Source: Nostr NestsResearch Source: Nostr Nests — NostrApps pageResearch Source: Nostr PlaygroundResearch Source: nostr-post-checkerResearch Source: nostr-protocol/nostr GitHubResearch Source: nostr-sdk crates.ioResearch Source: nostr-sdk-ffi GitHubResearch Source: nostr-tools GitHubResearch Source: nostr-tools NPMResearch Source: Nostr.BandResearch Source: nostr.buildResearch Source: nostr.co.uk ClientsResearch Source: Nostr.howResearch Source: Nostr.how — ClientsResearch Source: Nostr.how — ProtocolResearch Source: Nostr.how — What is Nostr?Research Source: Nostr.orgResearch Source: NostrabilityResearch Source: NostrAppsResearch Source: NostrApps category — AudioResearch Source: NostrApps category — CareerResearch Source: NostrApps category — CommunityResearch Source: NostrApps category — CurationResearch Source: NostrApps category — Direct MessageResearch Source: NostrApps category — DiscoveryResearch Source: NostrApps category — File SharingResearch Source: NostrApps category — Group ChatResearch Source: NostrApps category — MeatspaceResearch Source: NostrApps category — OnboardingResearch Source: NostrApps category — SignersResearch Source: NostrApps category — ToolsResearch Source: nostrcheckResearch Source: nostrdb GitHubResearch Source: NostreeResearch Source: Nostree — NostrApps pageResearch Source: NostriaResearch Source: Nostria — NostrApps pageResearch Source: NostridResearch Source: Nostrmo — NostrApps pageResearch Source: Nostrmo GitHubResearch Source: NostrubeResearch Source: noStrudelResearch Source: noStrudel — NostrApps pageResearch Source: NostterResearch Source: NosturResearch Source: Nostur — NostrApps pageResearch Source: NotedeckResearch Source: Npub.proResearch Source: Npub.worldResearch Source: nsec.appResearch Source: NsiteResearch Source: Nstart.meResearch Source: Nstart.me — NostrApps pageResearch Source: Obsidian Nostr Writer — NostrApps pageResearch Source: OlasResearch Source: Olas — NostrApps pageResearch Source: OpenvibeResearch Source: OracoloResearch Source: Oracolo — NostrApps pageResearch Source: Ostrich WorkResearch Source: P2P BandResearch Source: PazResearch Source: PeridotResearch Source: Peridot — NostrApps pageResearch Source: PhoenixResearch Source: Phoenix — NostrApps pageResearch Source: Plebeian MarketResearch Source: Plebeian Market — NostrApps pageResearch Source: PrimalResearch Source: Primal — NostrApps pageResearch Source: Primal Article Editor / Reads authoringResearch Source: Primal StudioResearch Source: pynostr GitHubResearch Source: python-nostr GitHubResearch Source: Registry of KindsResearch Source: Relay Tools — NostrApps pageResearch Source: rsslayResearch Source: rust-nostr docsResearch Source: rust-nostr GitHubResearch Source: SatelliteResearch Source: SatShootResearch Source: ShakespeareResearch Source: Shakespeare — NostrApps pageResearch Source: ShopstrResearch Source: Shopstr — NostrApps pageResearch Source: SlidestrResearch Source: SnortResearch Source: start.nostr.netResearch Source: StemstrResearch Source: TreasuresResearch Source: WavlakeResearch Source: WikifreediaResearch Source: Wikifreedia — NostrApps pageResearch Source: WikistrResearch Source: Wikistr — NostrApps pageResearch Source: YakiHonne mobile/web app directoryResearch Source: YondarResearch Source: Yondar — NostrApps page

Nostr Clients

A Nostr client is the reader's current window into the network, not the network itself. The best way to compare clients is to ask what they reveal, what they hide, which standards they understand and how gently they handle identity, relays, media, zaps and trust.

Reader route: Open this when someone asks which app to install first, why two clients show different timelines, or why switching clients does not have to mean losing a social identity.

What a client really does

A Nostr client reads and writes signed events through relays. That sounds technical, but the product consequence is easy to feel: the client is the interface that turns a public key, relay set and event stream into something that looks like a social app, a publishing tool, a video page, a chat surface or a wallet-adjacent feed. It chooses layout, timelines, search, notifications, profile rendering, moderation tools, media previews and the signing path. Those choices determine how Nostr feels, even though the client does not own the underlying identity.

This is why two Nostr clients can make the same public key feel almost like two different accounts. One may emphasize global notes and zaps. Another may emphasize communities or long-form writing. Another may default to different relays, hide spam more aggressively, show only certain event kinds or surface wallet actions more clearly. The protocol makes portability possible; the client decides how much of that portability a normal person can actually understand.

For a reader, the safest mental model is this: the client is a lens. A good lens shows enough of the network to be useful while giving the user control over identity, relays and signing. A weak lens may still work, but it can make Nostr look empty, confusing or riskier than it needs to be.

Why the same Nostr can look different

Nostr is not a single global database with one official feed. Clients ask relays for events. They decide which relays to connect to, how long to wait, which event kinds to display, how to rank or thread replies and how to handle missing data. If a friend posted something to a relay your client is not reading, it may look absent. If another client reads a broader or better relay set, it may appear there. That is not necessarily censorship or failure; it is part of how a relay-based system behaves.

NIP-65 relay list metadata helps clients understand where a user tends to read and write, but support and interpretation vary. Some clients do more to discover outbox relays. Some lean on their own indexing services. Some are optimized for speed and consumer polish. Others are more transparent but rougher. This tradeoff matters because a newcomer rarely blames relay discovery. They blame the app. A strong client hides complexity only after it has made the user safer.

The same is true for NIPs. NIP-19 identifiers make public keys and events easier to copy. NIP-07 helps web apps sign without directly holding a private key. NIP-46 enables remote signing. NIP-57 enables zap flows. NIP-23 supports long-form content. NIP-29 touches groups. A client that supports one cluster of standards can feel like a different product category from a client focused elsewhere.

Consumer clients and specialist clients

Damus helped make Nostr visible on iOS by giving people a recognizably social mobile surface. Amethyst became important on Android because it treated Nostr as a broad client problem, not just a short-note feed. Primal invested in a polished consumer experience and a wallet-connected product layer. Coracle explored web-client ideas around relays, lists, communities and user agency. noStrudel became useful for power users and developers because it exposes protocol details that more polished apps may hide.

Those products are not interchangeable even when they all let someone read and post. A beginner may need the smoothest route. A builder may want visibility into event kinds, relays and raw objects. A writer may care about long-form notes and discovery. A community operator may care about groups, moderation and lists. A zap-heavy user may care about wallet flow. A privacy-sensitive user may care most about where the private key is stored and how remote signing works.

The Apps hub keeps these products together because the reader often enters through a single question: which app should I use? But the answer has to split quickly. Nostr clients are not just skins. They are product theories about what an open social protocol is for.

The key question behind every client

Before choosing a client, ask how it handles the private key. Some clients create or import keys locally. Some rely on browser extensions through NIP-07. Some work with Android signers such as Amber. Some can connect to a NIP-46 remote signer. Some product journeys make it too easy to paste an nsec into a website because that reduces friction. That may be convenient, but it is the wrong default for many readers.

A platform password can often be reset by the company that hosts the account. A Nostr private key signs the identity itself. If a client stores it poorly or asks for it casually, the user may carry that risk across the whole ecosystem. This is why the client page links directly to signer pages. The client is the face of the product, but the signer is often the trust boundary.

A good client explains the difference between public key, private key, signer, wallet and relay without burying the user in protocol words. It lets a new reader begin, but it does not train them to treat a private key as a normal login field.

How to compare clients

Compare clients by the jobs they handle well. Can you onboard without key mistakes? Can you find people? Can you follow lists? Can you choose or inspect relays? Does search work? Are zaps understandable? Does media load reliably? Can long-form content be written or only read? Are communities supported? Does the client publish enough information about its source, team or repository? Does it use open standards or depend on private infrastructure that only its own product understands?

Also compare the emotional texture. Some clients are quiet and precise. Some are loud and feed-first. Some expose too much technical machinery for a first-time user. Some hide too much for anyone who wants to learn. The best client for a new reader may not be the best client for a developer, journalist, event host, wallet user or relay operator.

The Crays app route therefore does not rank clients as a single ladder. It groups them by the kind of doorway they create into Nostr. A polished mobile client, a protocol-heavy web client and a long-form publishing tool can all be excellent while serving different readers.

A safe first route

A sensible first route is: learn the key model, install a client that does not make key custody mysterious, choose a signer when the product supports it, follow a few known accounts, then inspect relays only after the basic flow is clear. That order keeps the first experience from becoming a relay debugging session.

After the first week, switching clients becomes part of learning. Try one polished client, one web client and one power-user client. Notice what changes. If the same identity looks richer in one app and thinner in another, ask which relays, NIPs and indexing choices are different. That comparison teaches more than a definition page can.

Clients are where Nostr either becomes legible or loses people. The protocol can be elegant, but readers meet it through product surfaces. That makes client pages some of the most important pages in the Apps hub.

Sources worth opening

  • nostr.how clients - Client overview with platform and product context.
  • Damus - iOS client that helped make Nostr visible to mainstream mobile users.
  • Primal - Consumer Nostr client and wallet surface.
  • Coracle - Web client exploring relays, communities and social graph control.
  • noStrudel - Web client and protocol-friendly Nostr interface.
  • NIP-01 - Base event and client-relay model.
  • NIP-65 - Relay list metadata for read and write relay discovery.
  • NIP-07 - Browser signer interface exposed as window.nostr.
  • NIP-46 - Remote signing flow for clients and bunker-style signers.
Apps route visual cue 1
Apps route visual cue 2
Apps route visual cue 3
Apps route visual cue 4
Apps route visual cue 5

How to use this page

Find the product surface first.

Search clients, signers, product categories or developer tools when you need a specific app, source file or comparison clue.

AppsKeep exploring AppsApp routeProduct profiles, categories, signer guides and source links.Browse apps
Apps route visual cue 1
Apps route visual cue 2
Apps route visual cue 3
Apps route visual cue 4
Apps route visual cue 5

Bring something back

Ask, suggest, submit or nominate.

Use these links when something is missing, a source is stale, or a public Nostr builder belongs in the map.