.env; until then the lane is live-but-unauthenticated and waits for you to connect it (set PENDPOST_MODE=mock to exercise it through the mock driver).
Nostr has no accounts and no central service, only a keypair you hold. You are responsible for how you use it. pendpost drafts and schedules, but a human approves before anything goes live.
Text only. The Nostr protocol has no media hosting, so a media post publishes its caption and logs a warning. Deletion is a request (NIP-09) that relays may ignore.
Node 22+. The Nostr lane needs the global WebSocket client, so it requires Node 22 or newer. The other lanes also require Node 22 or newer.
Setup ceremony
The private key (nsec) is the account: anyone holding it can post as you, so treat it like a password.
-
Mint or import a keypair. Run the keygen CLI below to mint a fresh
nsec/npubpair, or reuse an existingnsecfrom any Nostr client. -
Choose relays. Posts are published to every relay in a comma-separated list, and one acceptance counts as published. Public defaults such as
wss://relay.damus.io,wss://nos.lolwork; a private relay works too.
npub and proves at least one relay is reachable:
Environment variables
A lane publishes only once its credential is present. If the Nostr variables are blank, the Nostr lane is live-but-unauthenticated and waits for you to connect it. Set
PENDPOST_MODE=mock to exercise it through the mock driver.Validate the lane
A present credential is not the same as a working one. After setup, validate the Nostr lane in the Setup tab, or run a live probe with thehealth_recheck tool, to confirm the credential is live and not just configured. The lane is ready when it reports live.
Over MCP. Setup and rotation are an interactive human ceremony; secrets are never written through MCP. An agent can still check status (
account_status), run a live liveness probe (health_recheck), and read non-secret config (config_get) over MCP without touching credentials.