Napplet Migrate updates the metadata that describes a napplet to the proposed NIP-5D format. It runs in your browser and lets you review changes before publishing them to Nostr.
You can migrate your own napplets or copy someone else’s to your account. The napplet’s files stay untouched.
You need Node.js 24 or newer.
git clone https://github.com/napplet/migrate.git
cd migrate
npm ci
npm run devOpen the URL printed by Vite. No environment variables or backend setup are needed.
To migrate, connect a Nostr browser extension (NIP-07) or a remote signer (NIP-46). The app never asks you to enter your private key.
- Connect — use an extension, scan a NostrConnect QR code, or paste a bunker URI.
- Choose — load your napplets or paste any napplet
naddr. Select one or several. - Prepare — fill in the description and choose which APIs are required or optional.
- Review — compare the original and updated JSON, and download a backup.
- Migrate — approve signing, publish to your relays, and download the results.
Your publishing relays come from your NIP-65 relay list and can be edited in the app. Another author’s napplet is copied under your account, leaving their original intact.
| Before | After |
|---|---|
| Description stored in a tag | Plain-text event content |
| Legacy file paths and aggregate hash | A single artifact hash |
| Undifferentiated API requirements | Required or optional APIs |
Source references can use HTTP(S), Blossom, git://, or Nostr Git URLs. Files are never downloaded, modified, or uploaded by the migration tool.
- Inspect: open raw event JSON; validation errors show the exact problematic entry.
- Copy: click an address bubble to copy the full address.
- Review replacements: publishing can replace a manifest with the same identifier under your account.
- Single-file only: multi-file napplets must be rebundled before migration.
The app targets a pinned proposal revision. See migration details for compatibility rules and signer settings.
