Amethyst : guide pratique et limites à connaître
Aperçu du projet : Client Nostr pour Android. Amethyst Nostr Client pour Android Rejoignez le réseau social que vous contrôlez.
En bref
- De quoi s’agit-il ?
- Ce que Amethyst apporte, comment le lancer et où vérifier ses limites.
- À qui s’adresse-t-il ?
- Amethyst convient aux lecteurs dont le besoin correspond à Nostr, les relais et la synchronisation. Il ne convient pas à une intégration qui suppose des plateformes, modèles ou garanties absents du README.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement Kotlin, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Amethyst comme client Nostr
La description du dépôt appelle Amethyst un « client Nostr pour Android », et le README le décrit avec le slogan « Rejoignez le réseau social que vous contrôlez ». Le projet est écrit en Kotlin et est décrit comme étant divisé en plusieurs modules : Amethyst, l'application Android native avec Kotlin et Jetpack Compose ; Quartz, une bibliothèque KMP Nostr-commons pour les classes de protocole partagées entre les plateformes ; Commons, un module Kotlin Multiplatform avec des composants d'interface utilisateur partagés ; et DesktopApp, une application de bureau Compose Multiplatform qui réutilise Commons et Quartz. Ainsi, bien que l'objectif principal du projet soit Android, le dépôt contient également une application de bureau et des composants de bibliothèque partagés.
Relais, événements et cache
Le README répertorie les options de téléchargement pour les versions Android et bureau. Les utilisateurs Android peuvent installer l'application via Zap Store, Obtainium, GitHub Releases et Google Play. Pour le bureau, il liste macOS (Apple Silicon et Intel, via Homebrew avec `brew install --cask amethyst-nostr`, ou téléchargements directs .dmg), Windows 10/11 (via `winget install VitorPamplona.Amethyst` ou fichiers .msi/.zip), et Linux (fichiers .deb, .rpm, AppImage et .tar.gz). Le README note également que Scoop pour Windows et AUR pour Arch Linux sont « à venir (PR séparé) ». Les instructions de compilation sont référencées dans BUILDING.md.
Médias, clés et identité
Pour les installations en sideload, le README fournit un moyen de vérifier la signature APK. Il répertorie l'empreinte SHA-256 de la clé de version officielle : 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. Les utilisateurs peuvent confirmer cette empreinte avec les commandes `apksigner verify --print-certs amethyst-*.apk` ou `keytool -printcert -jarfile amethyst-*.apk`, ou avec l'application AppVerifier. Le README indique que tous les APK officiels, à la fois les variantes googleplay et fdroid, sont signés avec le même certificat.
Navigation et performances mobiles
Le README contient une longue liste de fonctionnalités liées au protocole Nostr, marquées comme faites ou non faites, couvrant des éléments associés à NIP-01 à NIP-BE, plus des fonctionnalités comme les notifications push, les traductions automatiques sur l'appareil, plusieurs comptes et la connexion par QR code. Certains éléments sont marqués comme non faits, notamment « Protocole MLS (NIP-EE) », « Base de données locale » et « Espaces de travail ». Le README comprend également une section « Confidentialité et permanence des informations », indiquant que les relais connaissent votre adresse IP, votre clé publique et vos contacts, et peuvent lire la plupart de vos actions, à l'exception des Zaps privés et des MP privés. Il suggère d'utiliser un VPN ou Tor pour masquer votre adresse IP et avertit que le contenu publié peut être considéré comme permanent.
Tester un compte avec des relais contrôlés
Le README décrit une architecture divisée en une interface utilisateur, une couche de service et une couche modèle/référentiel. L'interface utilisateur utilise le modèle habituel State/ViewModel/Composition. La couche de service se connecte aux relais Nostr, assemble des filtres, reçoit les données et les envoie au référentiel. La couche modèle/référentiel conserve tous les objets Nostr en mémoire dans un graphe OO complet, stockant les événements comme Notes et Users séparément, utilisant des objets LiveData et Flow pour s'abonner aux changements. Le README indique que les connexions avec les relais ne sont jamais fermées pendant l'utilisation de l'application et qu'« il n'y aura jamais deux Notes avec le même ID ou deux instances User avec la même clé publique ». Il ajoute que les informations de compte de l'utilisateur (clé privée/clé publique) sont stockées dans le Android KeyStore.
Pour Amethyst, le contrôle doit rester lié à Nostr, les relais et la synchronisation. Reproduisez d abord l exemple du README, puis observez la sortie exacte, les journaux et les fichiers créés. Une commande réussie ne prouve pas la compatibilité avec toutes les machines : relevez la version, le système, les dépendances et les paramètres effectivement utilisés. Les éléments que la documentation ne décrit pas restent des points à vérifier, pas des garanties. Pour Amethyst, le contrôle doit rester lié à Nostr, les relais et la synchronisation. Reproduisez d abord l exemple du README, puis observez la sortie exacte, les journaux et les fichiers créés. Une commande réussie ne prouve pas la compatibilité avec toutes les machines : relevez la version, le système, les dépendances et les paramètres effectivement utilisés. Les éléments que la documentation ne décrit pas restent des points à vérifier, pas des garanties.
Conclusion éditoriale
Amethyst convient aux lecteurs dont le besoin correspond à Nostr, les relais et la synchronisation. Il ne convient pas à une intégration qui suppose des plateformes, modèles ou garanties absents du README. Commencez par un essai minimal avec la commande et la configuration documentées, puis comparez la sortie attendue aux journaux et fichiers réellement produits.
Notes de la communauté