# ping-relay.ts

> **Nostr Agent Onboarding** · [start here](https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/start.md) · [all examples](https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/examples/README.md) · 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.

```ts
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();
    },
  }
);
```
