applesauce-signers

Unify NIP-07, NIP-46, and custom signers behind a single Signer interface.

4|Updated Dec 20, 2025
One-click install
npx skills add https://github.com/PlebeianApp/plebeian-signer --skill applesauce-signers-plebeianapp
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: applesauce-signers
Source: https://github.com/PlebeianApp/plebeian-signer/tree/main/.claude/skills/applesauce-signers
Command: npx skills add https://github.com/PlebeianApp/plebeian-signer --skill applesauce-signers-plebeianapp

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Nostr applications often need to sign events across multiple signers (browser extensions, remote signers, and custom implementations). This skill provides a unified approach with applesauce-signers to standardize the signing interface, reduce boilerplate, and improve security posture.

Core Features & Use Cases

  • Signer abstraction that unifies multiple signer types behind a single interface.
  • NIP-07 browser extension integration for obtaining public keys and signing events.
  • NIP-46 remote signer support for WebSocket/Connect-based remote signing workflows.
  • Simple signers with permission handling and multi-account session management.
  • Observable signing states to track in-progress, approved, and rejected signing flows.
  • Patterns for building custom signers and integrating with existing apps.

Quick Start

Install the applesauce-signers package and instantiate a signer to sign a sample event.

Frequently Asked Questions about applesauce-signers

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I unify Nostr event signing across browser extensions and remote signers?▼

To unify Nostr event signing, you can use a single Signer interface that abstracts multiple signer types, providing consistent getPublicKey and signEvent methods across NIP-07 and NIP-46 implementations.

What is the best way to handle NIP-46 remote signer permissions in a Nostr application?▼

Handling NIP-46 remote signer permissions requires a unified interface that supports permission management alongside session management, allowing you to track approved, rejected, or in-progress signing states observably.

Can I build a custom Nostr signer that supports nip04 and nip44 encryption?▼

Yes, you can build custom Nostr signers by implementing the base Signer interface with required getPublicKey and signEvent methods, plus optional nip04 and nip44 methods for encryption support.

Does a unified signer interface reduce boilerplate for multi-account Nostr session management?▼

A unified signer interface reduces boilerplate by standardizing the signing workflow, allowing you to manage multiple accounts and observe signing states without writing separate logic for each signer type.

How do I track in-progress and approved Nostr signing flows?▼

You can track Nostr signing flows by using observable signing states provided by the signer interface, which monitor the lifecycle of a signing request from in-progress to approved or rejected.

Why do I need a separate abstraction layer for Nostr signing instead of calling extensions directly?▼

You need a separate abstraction layer to standardize security posture and reduce boilerplate, ensuring consistent signing workflows across browser extensions, remote signers, and custom implementations.