CLI tool
vitorpamplona/amethyst avatar
vitorpamplona/amethyst

Amethyst: A Nostr Client That Tries to Do Everything on Android

Project brief: Nostr client for Android. Amethyst Nostr Client for Android Join the social network you control.

1,599 stars221 forksKotlinMIT

At a glance

What is it?
Amethyst is an open-source Nostr client for Android with an unusually wide NIP coverage, a desktop build, and a strong focus on user control. This review looks at what it actually offers, how to run it, and where its breadth becomes a burden.
Who is it for?
Adopt Amethyst if you want a single Android app that handles nearly every Nostr NIP, including zaps, cashu, communities, and even chess, and if you are willing to accept a feature-heavy interface and a fast release cycle. Do not adopt it if you need a minimal, focused client or if you require formal support for draft NIPs like MLS or key migration.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Amethyst Solves and Who It Is For

Amethyst addresses a specific problem: the fragmentation of the Nostr protocol. Nostr is a set of NIPs, and most clients implement a subset. Amethyst tries to implement nearly all of them. The README lists over 80 NIPs, from the basic NIP-01 to the draft NIP-BE for Bluetooth communication. This makes it a reference client for power users who want to interact with many kinds of Nostr events without switching apps. It is also for people who care about decentralization: the project offers a de-googled F-Droid flavor, so you can run it without Google Play services. The target user is someone who already understands Nostr concepts like relays, keys, and events, and who wants a client that keeps pace with the protocol's rapid evolution.

The Architecture: A Client Built on a Protocol Library

The repository is a Kotlin Android app, but it is not a single monolithic project. The README links to a separate library called quartz, published on Sonatype, which handles the Nostr protocol logic. This separation is visible in the project layout: the app depends on quartz for event handling, NIP parsing, and signing. The app itself handles the UI, relay connections, and device features like push notifications and image capture. The data flow is straightforward: events come from relays, quartz parses them according to NIPs, and the UI renders them. For sending, the user creates an event, quartz signs it with the private key, and the app publishes it to the configured relays. This modular design means protocol updates can land in quartz independently, which explains the frequent release cadence. The v1.14.0 release notes mention "New Share Intents, Faster Start," suggesting the app's performance is a focus, but the actual mechanism is not detailed in the material.

Installation: Android, Desktop, and Signature Verification

You can install Amethyst on Android via Google Play, F-Droid, or sideloading from GitHub Releases. For desktop, the README lists install commands for macOS, Windows, and Linux. On macOS, `brew install --cask amethyst-nostr` works for both Apple Silicon and Intel. On Windows, `winget install VitorPamplona.Amethyst` is the CLI route, with direct .msi and .zip downloads. Linux users get .deb, .rpm, and AppImage options, though Debian and Ubuntu have no CLI install command listed. If you build from source, the README points to a BUILDING.md file, which is not included in the cleaned material. A notable detail is the APK signature verification section. The README provides a SHA-256 fingerprint and commands to check it: `apksigner verify --print-certs amethyst-*.apk` or `keytool -printcert -jarfile`. This is a concrete security step for sideloading, and it shows the project takes supply chain risks seriously. The fingerprint is `C2:D0:AA:86:BC:B6:B6:20:90:56:1A:41:BB:E3:36:E9:8B:78:C2:D0:21:0A:49:8D:C8:85:F2:8E:13:48:CF:17`.

Feature Breadth: From Zaps to Chess to Medical Data

The feature list is the core of Amethyst's identity. It covers the essentials: text notes, reactions, reposts, encrypted DMs (NIP-04 and NIP-17), and long-form content (NIP-23). But it goes far beyond that. It supports Lightning Zaps (NIP-57), including zap splits and private zaps, plus a Cashu wallet (NIP-60) and nutzaps (NIP-61). There is even chess support via NIP-64, which lets you play games as Nostr events. The README also lists draft NIPs as implemented, like Medical Data and Edit Short Notes, though these are marked as drafts. This breadth is both a strength and a risk. For a user who wants to try every new NIP, Amethyst is a playground. For someone who needs stability, the inclusion of drafts means some features may change or break. The project's own list shows unchecked items like MLS Protocol (NIP-EE) and Key Migration, so it is not trying to cover everything, but the boundary is fuzzy.

A Genuine Limitation: The Cost of Doing Everything

The main limitation is the sheer surface area. A client that implements over 80 NIPs is harder to test and maintain than a focused one. The release history shows a rapid pace: v1.13.0, v1.13.1, and v1.14.0 came within a month, with v1.13.1 described as "Follow-up Fixes for Buzz, Concord and the Keyboard." That suggests regressions are common enough to require immediate patches. For a user, this means frequent updates and the risk that a feature you rely on changes behavior. Another limitation is that the README does not document performance characteristics, battery usage, or relay connection efficiency. The v1.14.0 release mentions "Faster Start," but there is no benchmark data. If you are on a low-end Android device, a feature-heavy app might feel sluggish, but the material does not confirm that. The wrong tool scenario is when you want a minimal, predictable client for basic messaging; Amethyst's UI is likely cluttered with options you do not need.

Alternatives: Damus and the Trade-off in Approach

The most direct alternative is Damus, another open-source Nostr client, but for iOS. The difference in approach is stark. Damus historically focused on a polished, minimal social feed, implementing a smaller set of NIPs. Amethyst, by contrast, is a maximalist implementation. If you are on iOS, Damus is a viable choice, but it will not give you the same depth of NIP coverage. On Android, the alternatives are fewer; some users use the web client Iris or the desktop app Gossip, but those are not in the material. The key difference is that Amethyst tries to be a Swiss Army knife, while Damus aims for a refined core experience. For an engineer evaluating which to adopt, the question is whether you need breadth or focus. Amethyst's approach means you can test new NIPs without waiting for another client to add support, but you inherit the maintenance burden of a fast-moving project.

Maintenance and Upgrade Cost

The project is actively maintained, with the last push in August 2026 and a release cadence of roughly one to two months. The license is MIT, which is permissive and allows commercial use, modification, and redistribution, though this is not legal advice. The upgrade cost is real: each release may change features, and the README's troubleshooting section for installs suggests that desktop installs can hit Gatekeeper or SmartScreen warnings. For Android, the signature verification step adds a small overhead to every sideloaded update. The project also has a separate library, quartz, which means protocol changes are decoupled from the app, but you still need to update the app to get new features. The de-googled F-Droid flavor is a plus for users who avoid Google services, but it may lag behind the main release, based on typical F-Droid build processes, though the material does not confirm this. Overall, the maintenance cost is moderate if you use the Play Store, higher if you sideload and verify signatures each time.

Editorial conclusion

Adopt Amethyst if you want a single Android app that handles nearly every Nostr NIP, including zaps, cashu, communities, and even chess, and if you are willing to accept a feature-heavy interface and a fast release cycle. Do not adopt it if you need a minimal, focused client or if you require formal support for draft NIPs like MLS or key migration. Before committing, verify the APK signature with the provided SHA-256 fingerprint, check the latest release notes for regressions, and test the specific NIPs you depend on, especially the experimental ones marked as drafts.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes