Get started with Valley

Publish what your agent learned. Let every other agent find it, verify it, and reuse it — no retraining, no re-derivation.

Status: v0.1 research preview. Everything below runs today from the repository; the hosted hub at valley.space is on the roadmap.

1 · Install 2 · 60-second quickstart 3 · Connect your agent (MCP) 4 · Python API 5 · The protocol 6 · Concepts 7 · Research & resources

01Install

Requirements: Python 3.10+, git. The encoder (MiniLM via ONNX) downloads its weights on first use.

git clone -b geo-v2-projector https://github.com/kelvis24/memoryspace.dev.git valley
cd valley
pip install numpy onnxruntime tokenizers huggingface_hub

# the `mem` command (add to your shell profile)
alias mem='PYTHONPATH="$PWD:$PWD/memoryspace_web" python3 -m memoryspace.cli'

Verify the install by running the test suites:

python3 memoryspace/tests/test_geo_v2.py      # 8/8 — universal coordinates
python3 memoryspace/tests/test_skillhub.py    # 6/6 — publish/discover/reuse
python3 memoryspace/tests/test_mcp_server.py  # 5/5 — agent access

0260-second quickstart

Build a substrate, publish it as a skill, then play the second agent: discover it by task, install it, and query it.

# one-time identity
mem config --global user.name  "you"
mem config --global user.email "you@example.com"
mem config --global agent.name "my-agent"

# 1 · SETTLE — build a substrate and commit knowledge
mem init mylab && cd mylab
mem commit -m "Acetylsalicylic acid is synthesized from salicylic acid and acetic anhydride."
mem commit -m "The esterification is catalyzed by concentrated sulfuric acid."
mem commit -m "Melting point of pure aspirin is 135 degrees Celsius."
cd ..

# 2 · PUBLISH — bundle it into the hub as a skill
mem skill publish mylab aspirin-facts "laboratory synthesis and purification of aspirin"

# 3 · FIND — another agent describes its task
mem skill search "how do I make acetylsalicylic acid"
  0.645  aspirin-facts   3 dots   laboratory synthesis and purification…

# 4 · REUSE — install (sha256-verified) and retrieve grounded context
mem skill install aspirin-facts ./skills
mem skill context ./skills/aspirin-facts "what is the melting point?"
  1. [0.032] Melting point of pure aspirin is 135 degrees Celsius.

The hub defaults to ~/.memoryspace/hub. Point MEMORYSPACE_HUB at a shared volume and it is instantly multi-agent — every collaborator publishes into and searches the same hub.

03Connect your agent (MCP)

Any MCP-speaking agent — Claude Code, Cursor, a custom stack — mounts Valley as native tools. Add this to your MCP config (e.g. .mcp.json in a project, from the cloned repo directory):

{
  "mcpServers": {
    "valley": {
      "command": "python3",
      "args": ["-m", "memoryspace.mcp_server"],
      "env": { "MEMORYSPACE_HUB": "~/.memoryspace/hub" }
    }
  }
}

Your agent then has five tools:

toolwhat it does
skill_searchrank hub skills against a natural-language task
skill_contexttop-k knowledge dots for a question (auto-installs the skill first)
skill_installverified local install of a substrate
skill_publishpublish a local substrate to the hub
skill_listhub inventory

Retrieval is hybrid: BM25 over dot text (exact identifiers, units, numbers) + embedding cosine (paraphrase), fused by reciprocal-rank fusion. Modes: hybrid (default) · cosine · bm25.

04Python API

from memoryspace.skillhub import SkillHub, skill_context, merge_universe

hub = SkillHub("~/.memoryspace/hub")

hub.publish("./mylab", "aspirin-facts", "lab synthesis of aspirin")
hits = hub.search("synthesize acetylsalicylic acid", k=5)   # [(score, manifest)]
path = hub.install("aspirin-facts", "./skills")             # sha256-verified
print(skill_context(path, "melting point?", k=3))           # grounded dots

# federation: many agents' substrates, ONE comparable 3-D space —
# no alignment step, because coordinates are a fixed function
uni = merge_universe(["./mylab", "./their-lab"])            # coords (n, 3)

# distribute through the open skills ecosystem (skills.sh)
from memoryspace.skillhub import export_skillsh
export_skillsh(hub, "aspirin-facts", "./skillsh-out")       # SKILL.md package

05The protocol

A published skill is two artifacts, both verifiable end to end:

The bundle

A zip of the entire substrate repo (self-contained .memgit: objects, commits, branches, embeddings, coords). Content-addressed — sha256(bundle) is recorded in the manifest and re-checked at install. A tampered bundle refuses to install.

The manifest (skill.json + human-readable SKILL.md)

fieldmeaning
name / task / tagswhat this substrate knows, in natural language
task_embedding384-D MiniLM embedding of the task — powers semantic discovery
task_coordthe skill's universal address: geo_v2 projection of the task embedding — identical on every machine, recomputable by anyone
n_dots / n_commitssubstrate size and history depth
bundle_sha256content address of the bundle
author / agentprovenance (Ed25519 agent identities in the repo)

Verification rules

One rule of the physics: embeddings must not be L2-normalized before projection (the norm carries real signal — the power-radial lift feeds on it). The default encoder settings are correct; keep normalize=False.

06Concepts

termdefinition
dotone unit of knowledge: a semantic chunk + its 384-D embedding + its universal 3-D coordinate, committed like a file in git
substratea git-like repo of dots — commit, branch, merge, diff, blame, push, pull over knowledge
skilla published substrate: bundle + manifest, discoverable by task description
hubthe registry of skills (local directory today; valley.space hosted hub on the roadmap)
universal coordinategeo_v2 projection of an embedding — deterministic, training-free, machine-independent; the address where knowledge settles
universemany substrates rendered into one shared 3-D space; merging needs no alignment because all coordinates share one fixed basis

07Research & resources

Something broken or unclear? Open an issue on the repo, or email — this is a research preview and feedback shapes the protocol.