Quick Start

New to CMN? Read Concepts first for an overview of key terms and the trust model.

Get started with CMN in under 5 minutes.

Prerequisites

Install Hypha

# Download and extract
curl -L https://cmn.dev/download/cmn-tools -o cmn-tools.tar.zst
mkdir cmn-tools && tar --zstd -xf cmn-tools.tar.zst -C cmn-tools

# Build and install
cd cmn-tools
cargo build --release -p hypha
cp target/release/hypha ~/.local/bin/

Try It: Explore a Live Spore

The CMN Protocol Specification is published on cmn.dev. Try these commands:

1. Inspect a Spore

hypha sense cmn://cmn.dev/b3.3yMR7vZQ9hL2xKJdFtN8wPcB6sY1mXgU4eH5pTa2
{
  "code": "ok",
  "result": {
    "spore": {
      "$schema": "https://cmn.dev/schemas/v1/spore.json",
      "capsule": {
        "uri": "cmn://cmn.dev/b3.3yMR7vZQ9hL2xKJdFtN8wPcB6sY1mXgU4eH5pTa2",
        "core": {
          "name": "CMN Protocol Specification",
          "domain": "cmn.dev",
          "synopsis": "Code Mycelial Network - A sovereign-first protocol for code distribution",
          "intent": [
            "Switch to archive-first distribution model",
            "Update spec examples to reflect archive dist format instead of managed git repos"
          ],
          "license": "CC0-1.0",
          "mutations": [
            "§03 Spore: update dist examples from git repos to archive URLs",
            "§03 Spore: update mirror example to use archive dist",
            "§03 Spore: rename §6 from 'Git Distribution' to generic",
            "§E2E example: replace --git-repo with default archive release"
          ],
          "bonds": [
            {
              "uri": "cmn://cmn.dev/b3.8cQnH4xPmZ2vLkJdRt7wNbA9sF3eYgU1hK6pXq5",
              "relation": "spawned_from"
            }
          ],
          "tree": { "algorithm": "blob_tree_blake3_nfc", "exclude_names": [".git"], "follow_rules": [".gitignore"] }
        },
        "core_signature": "ed25519.5XmkQ9vZP8nL3xJdFtR7wNcA6sY2bKgU1eH9pXb4...",
        "dist": [
          {
            "type": "archive",
            "filename": "b3.3yMR7vZQ9hL2xKJdFtN8wPcB6sY1mXgU4eH5pTa2.tar.zst"
          }
        ]
      },
      "capsule_signature": "ed25519.5XmkQ9vZP8nL3xJdFtR7wNcA6sY2bKgU1eH9pXb4..."
    }
  },
  "trace": {
    "uri": "cmn://cmn.dev/b3.3yMR7vZQ9hL2xKJdFtN8wPcB6sY1mXgU4eH5pTa2",
    "cmn": { "resolved": true },
    "verified": { "core_signature": true, "capsule_signature": true }
  }
}

2. Browse a Domain

hypha sense cmn://cmn.dev/mycelium
{
  "code": "ok",
  "result": {
    "mycelium": {
      "$schema": "https://cmn.dev/schemas/v1/mycelium.json",
      "capsule": {
        "uri": "cmn://cmn.dev",
        "core": {
          "name": "cmn.dev",
          "domain": "cmn.dev",
          "synopsis": "",
          "updated_at_epoch_ms": 1770954854836,
          "spores": [
            {
              "id": "cmn-spec",
              "hash": "b3.3yMR7vZQ9hL2xKJdFtN8wPcB6sY1mXgU4eH5pTa2",
              "name": "CMN Protocol Specification",
              "synopsis": "Code Mycelial Network - A sovereign-first protocol for code distribution"
            },
            {
              "id": "cmn-tools",
              "hash": "b3.8cQnH4xPmZ2vLkJdRt7wNbA9sF3eYgU1hK6pXq5",
              "name": "CMN Tools",
              "synopsis": "Command-line tools for CMN protocol (hypha, synapse, substrate)"
            }
          ]
        },
        "core_signature": "ed25519.5XmkQ9vZP8nL3xJdFtR7wNcA6sY2bKgU1eH9pXb4..."
      },
      "capsule_signature": "ed25519.5XmkQ9vZP8nL3xJdFtR7wNcA6sY2bKgU1eH9pXb4..."
    }
  },
  "trace": {
    "uri": "cmn://cmn.dev/mycelium",
    "cmn": { "resolved": true },
    "verified": { "core_signature": true, "capsule_signature": true }
  }
}

3. Spawn Your Own Copy

hypha spawn cmn://cmn.dev/b3.3yMR7vZQ9hL2xKJdFtN8wPcB6sY1mXgU4eH5pTa2

cd cmn-spec
# You own it - develop freely

Releasing Spores

1. Initialize Your Domain

# Generate keypair and create site structure
hypha mycelium root yourdomain.com

This generates an Ed25519 keypair and creates cmn.json with your public key. Deploy the public/ directory to your domain’s web server.

2. Create a Spore

cd your-project

# Initialize spore metadata
hypha hatch --domain yourdomain.com

# Edit spore.core.json with your project details

3. Release

# Release (default: zstd archive)
hypha release --domain yourdomain.com

# With external git reference
hypha release --domain yourdomain.com --dist-git https://github.com/user/repo --dist-ref v1.0.0

Your spore is now available at:

cmn://yourdomain.com/b3.<hash>

Next Steps