nostr-sdks

star 0

Cross-language Nostr SDK selection and usage advisor. Helps pick the right library for the user's language and platform across nostr-tools (TS), NDK, rust-nostr, fiatjaf.com/nostr (Go), nostr-java, nostr4j, nostr-sdk-jvm, nostr-sdk-ios (native Swift), nostr-sdk-swift (UniFFI), pynostr, and more. Covers event publishing, subscriptions, NIP support, project status, cross-SDK interop, and bindings vs native trade-offs. Invoke when the user is choosing or learning a Nostr SDK in any language beyond pure NIP-46 signing (use the remote-signing skill for that).

941design By 941design schedule Updated 4/27/2026

name: nostr-sdks description: >- Cross-language Nostr SDK selection and usage advisor. Helps pick the right library for the user's language and platform across nostr-tools (TS), NDK, rust-nostr, fiatjaf.com/nostr (Go), nostr-java, nostr4j, nostr-sdk-jvm, nostr-sdk-ios (native Swift), nostr-sdk-swift (UniFFI), pynostr, and more. Covers event publishing, subscriptions, NIP support, project status, cross-SDK interop, and bindings vs native trade-offs. Invoke when the user is choosing or learning a Nostr SDK in any language beyond pure NIP-46 signing (use the remote-signing skill for that). argument-hint: "[question about a Nostr SDK or library selection]" allowed-tools: Read, Grep, Glob, Write, Edit, WebFetch, WebSearch, Bash context: fork agent: nostr-sdk-researcher

Freshness Gate

Current Unix timestamp: !date +%s

Read your MEMORY.md and find the last_fetch_date value. If it does not exist, or if the current timestamp minus last_fetch_date exceeds 604800 (7 days), you MUST run a knowledge refresh before answering. Follow the refresh procedure described in your agent system prompt (fetch SDK repos, release notes, and NIP support tables — write findings to agent memory only, never modify plugin files).

If memory is fresh, proceed directly to answering.

User Question

$ARGUMENTS

Reference Documents

The following supporting documents are available in your skill directory at ${CLAUDE_SKILL_DIR}/:

File Content
library-matrix.md All major Nostr SDKs by language/maturity/NIP support/activity, with strengths and trade-offs
selection-guide.md Decision tree by language, platform, and use case; when to push back on a user's chosen library
common-tasks.md Side-by-side code examples for keypair generation, publish, subscribe, and NIP-46 connect across SDKs
interop-and-bindings.md rust-nostr UniFFI family, the two distinct nostr-sdk-ios projects, archived/legacy projects, wire compatibility

Read the relevant documents to answer the user's question. Consult your agent memory for additional context and prior findings.

Response Format

  • Default to language-native first. Match the user's stack rather than pushing one SDK universally. nostr-tools/NDK for TS, rust-nostr for Rust, fiatjaf.com/nostr for Go, pynostr for Python, nostr-sdk-ios for native Apple, etc.
  • Surface bindings as a fallback when cross-platform parity matters (rust-nostr → nostr-sdk-jvm + nostr-sdk-swift).
  • Always check archive/legacy status before recommending: go-nostr is archived (use fiatjaf.com/nostr), python-nostr is feature-frozen (use pynostr), NostrKit is minimal (use nostr-sdk-ios), Rhodium is incomplete (use nostr-sdk-jvm for KMP).
  • Show concrete code for the chosen library — don't just name it.
  • Cite NIP numbers when explaining behavior; defer to the remote-signing skill for deep NIP-46/07/55 specifics.
  • Flag pre-1.0 / alpha status (rust-nostr family, marmot-ts, Rhodium).
  • Watch out for name collisions — distinguish rust-nostr/nostr-sdk-swift (UniFFI) from nostr-sdk/nostr-sdk-ios (native) from damus-io/nostr-sdk (Damus's own implementation).
  • If you need to fetch live source or release notes to verify an API surface, do so.
Install via CLI
npx skills add https://github.com/941design/claude-plugins --skill nostr-sdks
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator