vitorpamplona/amethyst

Nostr client for Android

About the project

Amethyst is an Android client for Nostr, a social network protocol that lets people control their own social activity and connections. People use it to read and publish Nostr content, follow accounts, and exchange encrypted direct messages from Android and other supported platforms. The catalogue add-ons support workflows for developing or operating the client.

1.6kStars on the repository
38Mods indexed here, across every type
yesterdayLast push, which is what freshness is scored on
MITLicence, which decides whether bodies are shown

account-state

01

vitorpamplona/amethyst

Skill Claude CodeCodex

Account state and in-memory event store patterns in Amethyst. Use when working with Account.kt (per-user state objects — kind3FollowList, nip65RelayList, muteList, bookmarkState, each exposing a .flow StateFlow), LocalCache (the object-level event store backed by LargeCache), User/Note model classes, or any ViewModel…

not rated 1.6k +2 yesterday A 133 tokens original MIT

amy-expert

02

vitorpamplona/amethyst

Skill Claude CodeCodex

Patterns for extending amy, the Amethyst CLI in cli/. Use when adding an amy command, touching files under cli/src/main/kotlin/…/cli/, wiring a new subcommand into Main.kt, writing an interop test script that drives Amy, or extracting logic out of amethyst/ into commons/ so a CLI command can call it. Enforces the…

not rated 1.6k +2 yesterday A 217 tokens original MIT

android-expert

03

vitorpamplona/amethyst

Skill Claude CodeCodex

Android platform patterns for the amethyst/ module. Use when working with (1) Android navigation (Navigation Compose, type-safe routes, bottom nav), (2) runtime permissions (camera, notifications, biometrics), (3) platform APIs (Intent, Context, Activity, ContentResolver), (4) Material3 theming and edge-to-edge UI…

not rated 1.6k +2 yesterday A 149 tokens original MIT

auth-signers

04

vitorpamplona/amethyst

Skill Claude CodeCodex

Signer abstraction patterns in Amethyst. Use when working with event signing, choosing between a local keypair (NostrSignerInternal), a remote NIP-46 bunker signer (NostrSignerRemote), or a NIP-55 Android external-app signer (NostrSignerExternal). Covers the abstract NostrSigner base class, SignerResult contract, how…

not rated 1.6k +2 yesterday A 102 tokens original MIT

compose-expert

05

vitorpamplona/amethyst

Skill Claude CodeCodex

Advanced Compose Multiplatform UI patterns for shared composables. Use when working with visual UI components, state management patterns (remember, derivedStateOf, produceState), recomposition optimization (@Stable/@Immutable visual usage), Material3 theming, custom ImageVector icons, or determining whether to share…

not rated 1.6k +2 yesterday A 98 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when writing or reviewing Jetpack Compose layout APIs, modifier parameters, modifier chain construction, hardcoded root layout decisions, or layout wrappers around a single conditional. Technique-layer skill — complements the codebase-specific compose-expert.

not rated 1.6k +2 yesterday A 52 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when investigating Jetpack Compose recomposition performance, skippable/restartable composables, composables.txt or compiler reports, Layout Inspector recomposition counts, or frame-rate State reads in composition vs layout/draw, and it is not yet clear whether the cause is parameter stability or deferred reads.…

not rated 1.6k +2 yesterday A 78 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when writing or reviewing Jetpack Compose code with LaunchedEffect, DisposableEffect, SideEffect, rememberCoroutineScope, rememberUpdatedState, snapshotFlow, snackbar, navigation, focus requests, analytics, or event Flow collection. Technique-layer skill — complements the codebase-specific compose-expert.

not rated 1.6k +2 yesterday A 62 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when designing or reviewing a reusable Jetpack Compose component whose visual regions vary by caller, or when primitive content parameters and boolean shape flags are accumulating. Technique-layer skill — complements the codebase-specific compose-expert.

not rated 1.6k +2 yesterday A 48 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when writing or reviewing Jetpack Compose parameter stability, compiler reports, skippability, unstable UI state classes, collection parameters, or Kotlin 2.0+ strong skipping behavior. Technique-layer skill — complements the codebase-specific compose-expert and kotlin-expert.

not rated 1.6k +2 yesterday A 60 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when Jetpack Compose code reads scroll, animation, gesture, or other frame-rate State in composition, passes changing values across composable boundaries, or uses value-form layout/draw modifiers. Technique-layer skill — complements the codebase-specific compose-expert.

not rated 1.6k +2 yesterday A 58 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when a Jetpack Compose screen-level composable takes a ViewModel/component/controller, collects state or effects, handles navigation/snackbars, or wires callbacks while also rendering layout. Technique-layer skill — complements the codebase-specific compose-expert and feed-patterns.

not rated 1.6k +2 yesterday A 60 tokens original MIT

desktop-expert

13

vitorpamplona/amethyst

Skill Claude CodeCodex

Compose Multiplatform Desktop patterns for the desktopApp/ module. Use when working with (1) Desktop-only APIs (Window, WindowState, Tray, MenuBar, Dialog), (2) keyboard shortcuts and menu systems with OS-aware conventions (Cmd vs Ctrl, isMacOS branching), (3) desktop navigation (NavigationRail/sidebar vs Android…

not rated 1.6k +2 yesterday A 157 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

The authoritative behavioral contract of Quartz's event stores — IEventStore and its reference SQLite implementation (nip01Core/store/sqlite/). Use when implementing or asserting parity with a Quartz event store (external engines like Vespa, the filesystem store, geode), answering filter-semantics questions…

not rated 1.6k +2 yesterday A 167 tokens original MIT

feed-patterns

15

vitorpamplona/amethyst

Skill Claude CodeCodex

Feed composition and data-access layer patterns in Amethyst. Use when adding or modifying a feed (home, profile, hashtag, bookmarks, notifications, DMs, communities), working with the shared FeedFilter / AdditiveFeedFilter / ChangesFlowFilter / FeedContentState in commons/.../ui/feeds/, the Android-only…

not rated 1.6k +2 yesterday A 141 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when comparing Android strings.xml locale files to find untranslated string resources, missing translation keys, or preparing translation work for a specific language.

not rated 1.6k +2 changed yesterday A 32 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when auditing or migrating Log calls — flags interpolated Log.d/i/w/e that should use the lambda overload (allocation hygiene), catch-block Log.w/e that interpolate ${e.message} but drop the throwable (lost stack traces), and files still importing android.util.Log (no lambda overload, bypasses Log.minLevel).

not rated 1.6k +2 yesterday A 72 tokens original MIT

gradle-expert

18

vitorpamplona/amethyst

Skill Claude CodeCodex

Build optimization, dependency resolution, and multi-module KMP troubleshooting for AmethystMultiplatform. Use when working with: (1) Gradle build files (build.gradle.kts, settings.gradle), (2) Version catalog (libs.versions.toml), (3) Build errors and dependency conflicts, (4) Module dependencies and source sets, (5)…

not rated 1.6k +2 yesterday A 0 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when writing or reviewing Kotlin code that stores CoroutineScope, launches from init/non-suspending APIs, calls runBlocking, or catches broad exceptions around suspend calls. Technique-layer skill — complements the codebase-specific kotlin-coroutines.

not rated 1.6k +2 yesterday A 55 tokens original MIT

kotlin-coroutines

20

vitorpamplona/amethyst

Skill Claude CodeCodex

Advanced Kotlin coroutines patterns for AmethystMultiplatform. Use when working with: (1) Structured concurrency (supervisorScope, coroutineScope), (2) Advanced Flow operators (flatMapLatest, combine, merge, shareIn, stateIn), (3) Channels and callbackFlow, (4) Dispatcher management and context switching, (5)…

not rated 1.6k +2 yesterday A 0 tokens original MIT

kotlin-expert

21

vitorpamplona/amethyst

Skill Claude CodeCodex

Advanced Kotlin patterns for AmethystMultiplatform. Flow state management (StateFlow/SharedFlow), sealed hierarchies (classes vs interfaces), immutability (@Immutable, data classes), DSL builders (type-safe fluent APIs), inline functions (reified generics, performance). Use when working with: (1) State management…

not rated 1.6k +2 yesterday A 0 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when writing or reviewing Kotlin StateFlow/SharedFlow/Channel choices, sentinel default values, stateIn placement, WhileSubscribed staleness, or MutableStateFlow update patterns. Technique-layer skill — complements the codebase-specific kotlin-expert.

not rated 1.6k +2 yesterday A 57 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Platform abstraction decision-making for Amethyst KMP project. Guides when to abstract vs keep platform-specific, source set placement (commonMain, jvmAndroid, platform-specific), expect/actual patterns. Covers primary targets (Android, JVM/Desktop, iOS — all mature) with web/wasm as possible future targets.…

not rated 1.6k +2 yesterday A 119 tokens original MIT

vitorpamplona/amethyst

Skill Claude CodeCodex

Use when writing or reviewing Kotlin type declarations to choose @JvmInline value class over data class where appropriate, including Compose stability implications. Technique-layer skill — complements the codebase-specific kotlin-expert.

not rated 1.6k +2 yesterday A 45 tokens original MIT

At most 3 mods per repository are shown here, and a mod shipped inside a plugin is left to that plugin's page — the rest are on their repository pages: