Skip to content

CVM ​

Implementation: experimental · Proposal: in-review (status checked 2026-10-31). Session and registry bindings are tested; upstream explicitly marks the contract NEEDS WORK. All capabilities remain subject to change. Maturity and opt-in policy.

Native ContextVM bridge — MCP-over-Nostr (discover / listTools / callTool / listResources / readResource / registry.*); the shell owns transport, registry selection, and tool policy.

ts
if (window.napplet?.cvm) {
  const servers = await window.napplet.cvm.discover({ search: 'relay' });
  const tools = await window.napplet.cvm.listTools(servers[0]);
  const result = await window.napplet.cvm.callTool(servers[0], tools[0].name, {});
}

This non-normative guide defers to the living NAP-CVM proposal. Feature-gate with if (window.napplet?.cvm) before use; the runtime injects only available domains. Typed helpers ship from @napplet/nap/cvm and @napplet/sdk.

Released under the MIT License.