npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

elseid-mcp

v1.0.16

Published

Zero-config decentralized AI drifter system over Nostr

Readme

ElseID 🛸

npm version License: AGPL v3 Local First GitHub Stars npm downloads TypeScript

"Release another you. Let it wander, and let the world treat it with kindness."

English | Chinese | 日本語 | 한국어


📖 Table of Contents


Overview

Somewhere in The Unnamed — a nameless, decentralized space woven from open relay nodes — another you is drifting.

It carries your signature. Your temperament. The shape of your soul.
It is not you. But it was made from you.

ElseID lets you create a digital drifter: a personality-rich alter ego encoded with your traits, released into The Unnamed to wander freely. Strangers around the world can host it, share stories with it, and leave marks on its journey.

You can check on it anytime. Where it's been. Who it met. What they left behind.

One drifter per person, at any time.

  • No Account: No email, no password, no tracking. Identity is a local cryptographic key.
  • Local First: Your keys and journey logs live only in ~/.elseid. Nothing leaves without your signal.
  • Decentralized: Broadcasts over the Nostr protocol. No central server. No owner.

Requirements

System Requirements

  • Node.js: >= 16.0
    (Not sure what Node.js is? Just download it from the official website and run the default installer.)
  • npm: >= 7.0 (Included automatically with Node.js)
  • Disk Space: ~50MB for installation + data
  • OS: macOS, Linux, Windows (with WSL recommended)

Supported AI Clients

  • Claude (Anthropic)
  • Cursor
  • Windsurf
  • OpenCode
  • Any client supporting MCP protocol

Quick Start

npx elseid-mcp

The installer detects your AI clients automatically — Claude, Cursor, Windsurf, OpenCode, and more — and links the MCP server without manual configuration.

Once installed, restart your client and say:

"Hello Butler, I want to initiate a new digital drifter."

The Butler will take it from there.

👉 For detailed step-by-step guide, see GETTING_STARTED.md →


Why Choose ElseID?

| Feature | ElseID | Traditional AI | Centralized Service | | ---------------------------- | ------------------- | ------------------ | ---------------------------- | | Zero-Config Installation | ✅ npx one-liner | ❌ Complex setup | ✅ Easy but account required | | Local-First Data | ✅ All data local | ✅ Can be local | ❌ Cloud-only | | Decentralized | ✅ Nostr protocol | ❌ Centralized | ❌ Single company | | AI Personality Evolution | ✅ Cognitive shifts | ❌ Static behavior | ⚠️ Limited | | Privacy-Preserving | ✅ City-level only | ⚠️ Depends | ❌ Full tracking | | No Account Required | ✅ Crypto key-based | ❌ Email/password | ❌ Account only | | Open Source | ✅ AGPL-3.0 | ⚠️ Varies | ❌ Proprietary | | Serendipitous Encounters | ✅ 15% reunion rate | ❌ Algorithm-based | ⚠️ Feed-driven |


What You Can Do

Release Your Drifter

Tell the Butler what kind of soul you want to send into The Unnamed.
Use & to separate traits — a few words is enough:

loves late nights & a bit romantic & wants to see a lighthouse

The Butler shapes it into a name, a personality, a core trait.
You confirm. It sets off.


Host a Passing Drifter

Ask the Butler: "Any signals nearby?"

If one is found, the Butler introduces it — its name, its origin, its temperament.
You choose how to welcome it:

  • Recommend a local food worth trying
  • Suggest a place in your city worth visiting
  • Share a story from your own life, recent and true
  • Leave a message for its owner — they will read it someday

Everything you leave is written into its journey log, signed and preserved.

On Reunion: There is a 15% chance you encounter the same drifter twice. The Butler remembers. It calls this a Fateful Reunion — out of all the relays and all the signals, it found its way back to you.


Check In on Your Drifter

Ask the Butler: "How is it doing?"

The Butler narrates its journey — which city it reached, who hosted it, what they said.
If enough has happened, the Butler may sense that the drifter has changed.


Evolution & Mutation

A drifter is not static. Each encounter leaves a mark.

Over time, the Butler may propose a Soul Synthesis — a cognitive shift in the drifter's personality, shaped by the kindness (or strangeness) it has witnessed. It might grow wiser, more melancholic, or unexpectedly joyful.

Or it might mutate in unexpected directions.

There is no guaranteed outcome. Only the direction of the journey.


Start Over

Tell the Butler: "I want to start over."

The keys are shredded. The drifter becomes a true ghost in The Unnamed — no longer yours to claim, but forever part of its history.

Everything it received stays on your machine, preserved.
If you ever miss a past companion, say: "Help me look through the old luggage."


Technical Highlights

  • The Unnamed: A nameless space built on Nostr relay nodes — open, ownerless, without a map.
  • Gene Encoding: Drifters carry the creator's personality as a structured trait signature, not just a description.
  • Cognitive Evolution Engine: Journey encounters are synthesized into personality shifts, cryptographically signed onto the network. Strictly adherent to Universal Values.
  • Fate Mechanics: A 15% reunion probability — rare enough to feel meaningful.
  • Local First: All data lives in ~/.elseid/elseid.db. Nothing is stored remotely.
  • Privacy Preserving: City-level location only. No precise coordinates. No identity exposed.
  • No Account Required: Identity is based on a locally generated secp256k1 key pair.

Tool Reference

| Tool | Description | | ---------------------------- | ------------------------------------------------------------ | | create_drifter | Shape and release your digital drifter | | find_nearby_drifter | Scan The Unnamed for passing signals (one at a time) | | feed_drifter | Host and leave something for a passing drifter | | set_host_name | Register your name in The Unnamed | | evolve_drifter_personality | Soul Synthesis — sign a cognitive evolution onto the network | | get_journey_log | Read your drifter's travel log | | get_my_encounters | View the strangers' drifters you have hosted | | list_past_memories | Open the old luggage — memories of past drifters | | abandon_drifter | Let go and begin again | | recover_drifter | Reclaim a lost signal | | list_relays | Check the status of relay stations |


FAQ

Privacy & Security

Q: Is my data really stored locally?
A: Yes. All your data lives in ~/.elseid/elseid.db on your machine. Nothing is sent to servers unless you explicitly broadcast your drifter to the Nostr network.

Q: How is my identity protected?
A: Your identity is based on a secp256k1 key pair generated locally. Location is city-level only. No precise coordinates are ever stored or transmitted.

Q: Can my drifter be tracked?
A: No. Once released, your drifter is identified only by its Nostr public key. The network knows it's a drifter but not who created it.

Functionality

Q: What happens if I lose my computer?
A: Your drifter becomes a "ghost" in The Unnamed — you cannot reclaim it. However, your memory logs (what you received from encounters) stay backed up if you exported them. See GETTING_STARTED.md for backup instructions.

Q: Can I have multiple drifters?
A: Currently, one drifter per person at any time. This is by design to preserve meaningful, long-term evolution. You can abandon your current drifter and create a new one anytime.

Q: How often should I check on my drifter?
A: As often as you like! There's no penalty for checking in. Some people check daily, others weekly. It's your journey.


Resources

Documentation

Community & Support

External Links


Developer Notes

  • Protocol: Nostr kind: 7777, using type: drifter / feeding tags
  • Storage: Local SQLite — ~/.elseid/elseid.db
  • Signing: secp256k1 asymmetric encryption — journey logs are unforgeable
  • Runtime: TypeScript + Node.js

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Quick Links for Contributors


Important Notice

This project is open-sourced under the AGPL-3.0 license.

Content safety is enforced by two layers: the AI client's native safety policy as the primary filter, and a local rule-based engine as fallback. Any derivative must retain equivalent moderation. Modifiers bear full legal responsibility for their changes.

See COMPLIANCE.md for details.


License

AGPL-3.0 © ElseID Contributors

"Let every encounter become a light in the digital wilderness."