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.