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
- Rust toolchain (for building Hypha)
- A domain you control (for releasing)
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 freelyReleasing 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 details3. 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
- Releasing Spores - Detailed releasing workflow
- Spawn/Grow/Bond/Absorb Workflow - Spawning, syncing, bonding, and evolving spores
- Hypha CLI Reference - Complete command reference