# napplet docs > Documentation for the napplet protocol SDK — composable, sandboxed Nostr web applets that delegate to a host shell over the NIP-5D JSON envelope wire format. Markdown copies of every docs page. Each page is also served as HTML at the same path with `.html`. These docs are non-normative: NIP-5D (https://github.com/nostr-protocol/nips/pull/2303) and the NAPs (https://github.com/napplet/naps) are the canonical protocol sources. ## Overview - [napplet: Composable Nostr apps](https://napplet.run/docs/index.md): Sandboxed Nostr web applets that delegate signing, storage, and relay access to a host shell over the NIP-5D JSON envelope wire format. ## Introduction - [What are napplets?](https://napplet.run/docs/guide/index.md): A napplet is a small, single-purpose Nostr web application that runs inside a sandboxed iframe and delegates everything sensitive — signing, storage, relay access — to a host shell. - [NIP-5D explained](https://napplet.run/docs/guide/nip-5d.md): NIP-5D — Nostr Web Applets is the specification that defines how a napplet and its host shell talk to each other. - [Migrating NIP-5D events](https://napplet.run/docs/guide/event-migration.md): This is non-normative migration guidance for the @napplet packages. ## Getting Started - [Core concepts](https://napplet.run/docs/guide/concepts.md): These are the ideas that recur across every @napplet/ package. - [Getting started](https://napplet.run/docs/guide/getting-started.md): This page walks you from zero to a deployable napplet. - [Tutorial: build a Note Drafts napplet from scratch](https://napplet.run/docs/guide/build-note-drafts-napplet.md): This tutorial builds a small Nostr note composer that runs as a napplet in Kehto/Paja. - [Tutorial: build a Note Drafts napplet from boilerplate](https://napplet.run/docs/guide/build-note-drafts-napplet-from-boilerplate.md): This tutorial builds the same Note Drafts app as the from-scratch tutorial, but starts from @napplet/boilerplate instead of an empty directory. - [Tutorial: build a Note Drafts napplet with an AI agent and the napplet skills](https://napplet.run/docs/guide/build-note-drafts-napplet-with-ai-agent-and-skills.md): This tutorial builds the Note Drafts napplet with a coding agent instead of typing every file yourself. - [Agent skills](https://napplet.run/docs/guide/agent-skills.md): napplet- skills that let a coding agent make, design, build, port, and test a napplet, including its icon artwork. - [Agent access to napplet.run](https://napplet.run/docs/guide/agent-access.md): How AI agents can read napplet.run as Markdown, search its app store, use its WebMCP tools and discover the napplet agent skills. ## Packages - [Packages](https://napplet.run/docs/packages/index.md): The napplet SDK is a small set of focused, ESM-only packages. - [@napplet/core](https://napplet.run/docs/packages/core.md): JSON envelope types and NAP dispatch infrastructure for the napplet ecosystem. - [@napplet/shim](https://napplet.run/docs/packages/shim.md): Runtime-side helper for injecting selected window.napplet. objects before napplet scripts run. - [@napplet/sdk](https://napplet.run/docs/packages/sdk.md): Named TypeScript exports for napplet developers using a bundler. - [@napplet/nap](https://napplet.run/docs/packages/nap.md): Every active napplet NAP domain as layered subpath exports. - [@napplet/vite-plugin](https://napplet.run/docs/packages/vite-plugin.md): Vite build integration for current NIP-5D manifests. - [@napplet/cli](https://napplet.run/docs/packages/cli.md): Standalone CLI for creating, configuring, inspecting, and deploying napplets. - [@napplet/conformance](https://napplet.run/docs/packages/conformance.md): Framework-agnostic conformance engine for the napplet protocol — lets a napplet self-verify that it conforms to NIP-5D + the NAP wire protocol before publishing. - [@napplet/conformance-cli](https://napplet.run/docs/packages/conformance-cli.md): The headless napplet-conformance runner — drives the @napplet/conformance engine against a napplet in real headless Chromium (via Playwright). - [@napplet/conformance-web](https://napplet.run/docs/packages/conformance-web.md): Browser conformance runtime for live napplet protocol testing. - [@napplet/boilerplate](https://napplet.run/docs/packages/boilerplate.md): Project-only generator behind napplet create. ## NAP domains - [NAP domain reference](https://napplet.run/docs/naps/index.md): A NAP (Nostr Applet Protocol) is one capability contract between a napplet and its runtime — what the runtime provides (relay access, storage, intents, …) and exactly how a napplet asks for it. - [NAP maturity and opt-in](https://napplet.run/docs/naps/maturity.md): This is non-normative implementation guidance for the @napplet/ packages. - [SHELL](https://napplet.run/docs/naps/shell.md): The runtime may expose shell for environment information. - [THEME](https://napplet.run/docs/naps/theme.md): Read-only shell theme access — colors, fonts, background, and title. - [CONFIG](https://napplet.run/docs/naps/config.md): Declarative per-napplet configuration (JSON Schema-driven). - [KEYS](https://napplet.run/docs/naps/keys.md): Keyboard bindings and action registration — the shell binds keys to named actions. - [NOTIFY](https://napplet.run/docs/naps/notify.md): Shell-rendered notifications, badges, and interaction callbacks. - [MEDIA](https://napplet.run/docs/naps/media.md): Ownership-aware media sessions and playback control. - [LINK](https://napplet.run/docs/naps/link.md): Shell-mediated external link opening. - [IDENTITY](https://napplet.run/docs/naps/identity.md): Read-only user queries — pubkey, profile metadata, follows, … Never signs, encrypts, or decrypts. - [COMMON](https://napplet.run/docs/naps/common.md): Common social actions — public NIP-19 helpers, profile lookup, follows, follow/unfollow, reactions, and reports. - [LISTS](https://napplet.run/docs/naps/lists.md): Runtime-mediated NIP-51 list mutations. - [DM](https://napplet.run/docs/naps/dm.md): Runtime-mediated direct messages. - [OUTBOX](https://napplet.run/docs/naps/outbox.md): Outbox-aware relay routing — getEvent / query / subscribe / publish / resolveRelays; the shell owns NIP-65 relay discovery, fallback, dedup, signature validation, signing, and fanout. - [RELAY](https://napplet.run/docs/naps/relay.md): Low-level Nostr relay proxy — subscribe, publish, and one-shot query through the shell's relay pool. - [COUNT](https://napplet.run/docs/naps/count.md): Runtime-mediated aggregate counts for NIP-01 filters. - [INC](https://napplet.run/docs/naps/inc.md): Inter-napplet communication — topic-based publish/subscribe between napplets. - [INTENT](https://napplet.run/docs/naps/intent.md): Intent calls derive archetype and action from the URI. - [STORAGE](https://napplet.run/docs/naps/storage.md): Scoped key-value storage proxied through the shell — isolated per napplet identity. - [FS](https://napplet.run/docs/naps/fs.md): Shell-mediated virtual filesystem access. - [RESOURCE](https://napplet.run/docs/naps/resource.md): Sandboxed byte fetching (info() -> ResourceInfo, bytes(url, options?) -> Blob, bytesMany(requests) -> ResourceBytesItem[]) over https / blossom (BUD-10 blossom:. URIs) / nostr / data s… - [UPLOAD](https://napplet.run/docs/naps/upload.md): Shell-mediated file/blob upload over NIP-96 + Blossom rails; the shell signs auth and returns NIP-94 metadata. - [CVM](https://napplet.run/docs/naps/cvm.md): Native ContextVM bridge — MCP-over-Nostr (discover / listTools / callTool / listResources / readResource / registry.); the shell owns transport, registry selection, and tool policy. - [GAMEPAD](https://napplet.run/docs/naps/gamepad.md): This non-normative guidance defers to NAP-GAMEPAD. - [BLE](https://napplet.run/docs/naps/ble.md): Runtime-mediated Bluetooth LE/GATT sessions. - [SERIAL](https://napplet.run/docs/naps/serial.md): Runtime-mediated serial device access. - [WEBRTC](https://napplet.run/docs/naps/webrtc.md): Runtime-mediated WebRTC sessions. - [LLM](https://napplet.run/docs/naps/llm.md): This non-normative guide follows the living NAP-LLM proposal. ## Reference - [NIP-5D spec status](https://napplet.run/docs/spec.md): The napplet packages implement NIP-5D — Nostr Web Applets.