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

@yamo/cli

v1.3.13

Published

YAMO Protocol v0.4 - Command-line tools for blockchain integration

Readme

💻 YAMO CLI npm version

The Command Line Interface for the YAMO Protocol. Now powered by @yamo/core.

📦 Installation

# Global installation (recommended)
npm install -g @yamo/cli

# Or use npx (no installation needed)
npx @yamo/cli <command>

⚙️ Configuration

Set environment variables or create a .env file:

CONTRACT_ADDRESS=0x3c9440fa8d604E732233ea17095e14be1a53b015
RPC_URL=https://ethereum-sepolia-rpc.publicnode.com
PRIVATE_KEY=0xYOUR_PRIVATE_KEY

# IPFS Settings (optional)
USE_REAL_IPFS=false
PINATA_JWT=your_pinata_jwt_if_using_real_ipfs

Networks

Sepolia Testnet (default):

  • Contract: 0x3c9440fa8d604E732233ea17095e14be1a53b015
  • RPC: https://ethereum-sepolia-rpc.publicnode.com (free public RPC)

Local Development:

  • Contract: Deploy using @yamo/contracts
  • RPC: http://127.0.0.1:8545

📖 Commands

yamo init <agent_name>

Creates a new block.yamo template.

# With global install
yamo init MyAgent

# With npx
npx @yamo/cli init MyAgent

yamo hash <file>

Calculates the content hash formatted for blockchain submission.

yamo hash block.yamo

yamo submit <file>

Submits a block to the chain.

  • --ipfs: Uploads content to IPFS. If the YAMO file contains output: file.json;, it will automatically create a Deep Bundle containing both the trace and the artifact.
  • -e, --encrypt: Encrypts the IPFS bundle using AES-256-GCM.
  • -k, --key <string>: The passphrase for encryption (or use YAMO_ENCRYPTION_KEY env var).
# Basic submission
yamo submit block.yamo

# With IPFS
yamo submit block.yamo --ipfs

# With encryption
yamo submit block.yamo --ipfs --encrypt --key "my-secret"

yamo audit <blockId>

Performs a cryptographic integrity check.

  1. Fetches block data from the chain.
  2. Downloads content from IPFS.
  3. Re-hashes the content locally.
  4. Asserts LocalHash === ChainHash.
  • -k, --key <string>: Passphrase to decrypt the content if the bundle is encrypted.
# Audit without encryption
yamo audit block_001

# Audit encrypted content
yamo audit block_001 --key "my-secret"

🔒 Encryption

YAMO v1.0 supports optional client-side encryption for IPFS bundles.

  • Algorithm: AES-256-GCM (Authenticated Encryption).
  • Key Derivation: Keys are derived from your passphrase using scrypt with a random salt.
  • Metadata: Encrypted bundles include an encryption_metadata.json file with the salt and IVs. The actual content is opaque.

Example Encrypted Workflow:

# Submit with encryption
yamo submit task.yamo --ipfs --encrypt --key "my-secret"

# Audit encrypted block
yamo audit block_001 --key "my-secret"