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

ariadne-cli

v0.1.9

Published

ARIADNE - decentralized git repository hosting on Arweave/AO

Readme

ARIADNE CLI

Decentralized git repository hosting on Arweave/AO with permanent storage and optional encryption.

Features

  • Permanent Storage: Repos are stored on Arweave — data persists forever
  • Decentralized: No single server required — anyone can run their own instance
  • Private Repos: AES-256-GCM encryption with RSA key exchange
  • Simple UX: Just git add, git commit, and ariadne push

Installation

# Install globally via npm (recommended)
npm install -g ariadne-cli

# Or use directly with npx
npx ariadne-cli <command>

For development:

cd ariadne-cli
npm install
npm link  # Makes `ariadne` and `git ariadne` commands available globally

Or use directly:

node cli/index.js <command>

Quick Start

# Create a new repo
mkdir my-project && cd my-project
git init
echo "# My Project" > README.md
git add . && git commit -m "Initial commit"

# Create on ARIADNE (public)
ariadne init --create --wallet ./wallet.json

# Or create private (encrypted)
ariadne init --create --private --wallet ./wallet.json

# Push changes
ariadne push --wallet ./wallet.json

# Clone a repo
ariadne clone <manifest-tx-id> --wallet ./wallet.json

Usage

Standard Git Commands

# Stage files for commit
ariadne add <files...>

# Create a commit
ariadne commit -m "Your commit message"

# Show working tree status
ariadne status

# List branches
ariadne branch

# Create a branch
ariadne branch create <branch-name>

# Delete a branch
ariadne branch delete <branch-name>

# Switch branches
ariadne checkout <branch-name>

# Show changes between commits
ariadne diff [ref1] [ref2]

# Show commit history
ariadne log -n 10

Repository Commands

# Clone a repository from ARIADNE
ariadne clone <repo-id> [directory]
ariadne clone <repo-id> --wallet ./wallet.json  # Required for private repos

# Initialize a new repository
mkdir my-repo && cd my-repo
git init
ariadne init --create --wallet ./wallet.json

# Initialize a private (encrypted) repository
ariadne init --create --private --wallet ./wallet.json

# Push changes to ARIADNE
ariadne push --wallet ./wallet.json

# Push as private repo
ariadne push --private --wallet ./wallet.json

# Pull changes from ARIADNE
ariadne pull

# Fetch objects from ARIADNE
ariadne fetch

# Manage remotes
ariadne remote list
ariadne remote add origin <repo-id>

# Wallet management
ariadne auth --show

Git Wrapper Integration

When installed via npm link, works as git ariadne:

git ariadne add <files...>
git ariadne commit -m "message"
git ariadne status
git ariadne branch
git ariadne checkout <branch>
git ariadne diff
git ariadne log

git ariadne clone <repo-id>
git ariadne push
git ariadne pull
git ariadne init --create

Private Repositories

ARIADNE supports encrypted private repositories using AES-256-GCM encryption with RSA key exchange:

# Create a private repo
ariadne init --create --private --wallet ./wallet.json

# Push to private repo
ariadne push --private --wallet ./wallet.json

# Clone private repo (wallet required for decryption)
ariadne clone <repo-id> --wallet ./wallet.json

How it works:

  1. A random 256-bit AES key is generated for the repository
  2. All blob data is encrypted with AES-256-GCM before upload
  3. The AES key is encrypted with your wallet's RSA public key
  4. Only your wallet (or shared collaborators) can decrypt the AES key and access the data

Configuration

The CLI stores configuration in .gitariadne in the repository root:

[ariadne]
  repoId = x8asj...           # Manifest TX ID (repo identifier)
  processId = n_XZJhUnmldNFo4dhajoPZWhBXuJk-OcQr5JQ49c4Zo
  dataTxId = x8asj...         # Legacy: current pack data TX ID
  encrypted = false           # Whether repo is encrypted
  encryptedKey =              # AES key encrypted with owner's RSA key
  lastPush = 1712234567890

Self-Hosting

ARIADNE is designed for self-hosting. Teams can run their own instances:

# Deploy your own AO contract
cd ao-contracts/repository-contract
npx ao-deploy aod.config.js  # Gets process ID

# Initialize with your own instance
ariadne init --create --process-id n_xxx --node https://your-node.com

See SELF-HOSTING.md for full documentation.

Wallet

The CLI supports multiple wallet sources (in order of priority):

  1. --wallet <path> CLI flag
  2. ARWEAVE_WALLET environment variable (base64-encoded JWK or raw JSON)
  3. Common locations: ~/.arweave/wallet.json, ~/.arconnect/wallet.json

Architecture

lib/
├── git/       # isomorphic-git wrapper
├── ardrive/   # Turbo upload module
├── ao/        # AO/HyperBEAM state module
├── wallet/    # JWK wallet module
├── crypto/    # AES-256-GCM + RSA encryption
└── config/    # .gitariadne config

cli/
└── commands/  # ariadne clone, push, pull, init, etc.

Environment Variables

  • ARWEAVE_WALLET - JWK wallet (base64 or JSON string)
  • AOS_PROCESS_ID - AO process ID for repository contract
  • HYPERBEAM_NODE - HyperBEAM node URL (default: https://push-1.forward.computer)