Markdown source for agents: https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/ping-relay.md

ping-relay.ts

Nostr Agent Onboarding · start here · all examples · source: nostr-dev/sdk/examples/ping-relay.ts · snapshot 2026-10-10

Connect to a relay with nostr-tools and read a few kind 1 events.

import { Relay, useWebSocketImplementation } from "nostr-tools/relay";
import WebSocket from "ws";

useWebSocketImplementation(WebSocket as any);

const url = process.argv[2] ?? "wss://relay.ngit.dev";

const relay = await Relay.connect(url);
console.log(`connected: ${relay.url}`);

const events: any[] = [];
const sub = relay.subscribe(
  [{ kinds: [1], limit: 3 }],
  {
    onevent(e) {
      events.push(e);
      console.log(`kind=${e.kind} id=${e.id.slice(0, 12)}… author=${e.pubkey.slice(0, 12)}… content="${e.content.slice(0, 60).replace(/\s+/g, " ")}"`);
    },
    oneose() {
      console.log(`EOSE — ${events.length} events`);
      sub.close();
      relay.close();
    },
  }
);