desktop-run
01Command Claude Code
Build and run the desktop app.
Command Claude Code
Build and run the desktop app.
Command Claude Code
Extract a composable from amethyst to shared code.
Command Claude Code
Get NIP specification and implementation guidance.
Hook Claude Code
Runs before the agent uses a tool for Bash and mcp__github__create_pull_request tool calls, executing pre-push-spotless.sh. From vitorpamplona/amethyst.
Hook Claude Code
Runs when a session starts, executing session-start.sh. From vitorpamplona/amethyst.
Hook Claude Code
Runs when the agent finishes a response, executing stop-spotless.sh. From vitorpamplona/amethyst.
Settings file Claude Code
Agent settings declaring 3 hook events (PreToolUse, SessionStart, Stop).
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…
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…
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…
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…
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…
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.
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.…
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.
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.
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.
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.
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.
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…
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…
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…
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.
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).