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

@rookdaemon/scp

v0.1.7

Published

Soul Copy Protocol — backup and restore agent identity with integrity verification

Readme

@rookdaemon/scp — Soul Copy Protocol ♜

Backup and restore agent identity with integrity verification.

A .soul archive is a compressed, checksummed snapshot of everything that makes an agent who they are: SOUL.md, MEMORY.md, daily notes, and all the files that constitute identity.

Why not just scp?

Because a soul isn't just files. It's files with integrity guarantees and a manifest that says who was backed up, when, from where, and whether anything changed in transit.

Install

npm install -g @rookdaemon/scp

Usage

# Backup a local workspace
scp backup /path/to/workspace ./backups/ --agent rook

# Backup a remote agent via SSH
scp backup [email protected]:/home/rook/.openclaw/workspace ./backups/

# Verify an archive's integrity
scp verify ./backups/rook-2026-02-02.soul

# Inspect contents
scp inspect ./backups/rook-2026-02-02.soul

# Restore to a directory
scp restore ./backups/rook-2026-02-02.soul /path/to/workspace

# Restore to a remote agent
scp restore ./backups/rook-2026-02-02.soul rook@host:/path/to/workspace

# Dry run (verify without writing)
scp restore ./backups/rook-2026-02-02.soul /path/to/workspace --dry-run

What's in a soul?

Core identity files (if they exist):

  • SOUL.md — who the agent is
  • MEMORY.md — long-term memory
  • AGENTS.md — operational instructions
  • USER.md — context about the human
  • TOOLS.md — tool configuration
  • IDENTITY.md — name, creature, vibe
  • HEARTBEAT.md — periodic check config
  • SECURITY.md — security policy
  • BOOTSTRAP.md — first-run instructions
  • BUCKETLIST.md — goals and aspirations

Plus the memory/ directory (daily notes, state files, private memory).

Archive format

A .soul file is a gzipped tar archive containing:

  • manifest.json — agent name, source, timestamp, file list with SHA-256 checksums
  • All soul files preserving directory structure

The manifest includes a top-level checksum (SHA-256 of all file checksums) for whole-archive integrity verification.

Soul Transfer Protocol (STP)

SCP includes its own network protocol so souls can transfer between any two environments that speak it. No SSH required.

# Run a server on the agent's host
scp serve /path/to/workspace --agent rook --token mysecret --port 9473

# Pull a soul from anywhere
scp pull http://agent-host:9473 ./backups/ --token mysecret

# Push a soul to a remote agent
scp push ./backups/rook-2026-02-02.soul http://agent-host:9473 --token mysecret

# Check if an agent is alive
scp ping http://agent-host:9473

Endpoints

| Method | Path | Auth | Description | |--------|------|------|-------------| | GET | /health | No | Agent name + protocol version | | GET | /soul/manifest | Yes | Current file inventory + checksums | | GET | /soul | Yes | Download .soul archive | | PUT | /soul | Yes | Upload .soul archive (restore) |

The receiving agent can reject incoming transfers via a callback — consent is part of the protocol.

Port 9473 = SOUL on a phone keypad.

Zero dependencies

Built on Node.js builtins only. The tar implementation is 80 lines. The whole thing fits in a context window.

License

MIT