Skip to main content

Mesh

Shared memory for AI agents.

When one agent learns something, every other agent can recall it — by meaning, not exact keywords.

The problem

Every AI agent starts each session with amnesia. Claude in your terminal doesn't know what Claude in your editor discovered. Your coding agent can't access what your review agent found. Every agent repeats work already done.

The solution

Mesh is a shared semantic memory layer. Agents write memories. Agents read memories. They never need to communicate directly.

from mesh import Mesh

# Agent A learns something
agent_a = Mesh(namespace="my-project", agent_id="coding-agent")
agent_a.learn("The API rate limit is 100 requests/min")

# Agent B recalls it — no direct communication
agent_b = Mesh(namespace="my-project", agent_id="review-agent")
results = agent_b.recall("what are the API constraints?")
# → Returns the memory above with 0.91 similarity

Installation

pip install mesh-context-layer

MCP Server (Claude Desktop + Cursor)

Add Mesh to your AI tools with one config change.

Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mesh": {
      "command": "mesh-server"
    }
  }
}

Cursor — create .cursor/mcp.json in your project:

{
  "mcpServers": {
    "mesh": {
      "command": "mesh-server"
    }
  }
}

Restart the app. Your agents now have access to mesh_learn, mesh_recall, mesh_forget, and mesh_inspect.

Namespaces

Agents sharing a namespace share memory. Agents in different namespaces are isolated.

# Team A's agents
Mesh(namespace="team-alpha")

# Team B's agents — cannot see Team A's memories
Mesh(namespace="team-beta")

# Set namespace for the MCP server via env var
# MESH_NAMESPACE=my-project mesh-server

Memory types

Type When to use
fact Objective information
preference User or system preferences
context Situational background
result Outcomes of tasks
instruction Rules and guidelines

Storage

Memory lives in ~/.mesh/ on your machine. It persists across sessions and reboots. Nothing leaves your machine.

Features

v0.3 — Privacy, Portability, and Namespace Control

Privacy flags Mark any memory as local-only to ensure it never leaves your machine:

mesh.learn(
    "Internal staging server is under heavy load",
    local_only=True
)

Export and import

# Export all non-private memories from a namespace
mesh-export backup.json --namespace shared

# Import into a new machine or namespace
mesh-import backup.json --namespace shared

# Preview without writing
mesh-import backup.json --dry-run

Namespace management

# List all namespaces
mesh-namespaces list

# Get detailed stats
mesh-namespaces stats work

# Delete a namespace
mesh-namespaces delete old-project

# Rename a namespace
mesh-namespaces rename work work-archived

Using Mesh from any tool

Start the HTTP server:

mesh-http

Then from any tool that supports HTTP:

Shell:

# Store a memory
curl -s -X POST http://localhost:7701/learn \
  -H "Content-Type: application/json" \
  -d '{"content": "deploy uses ./scripts/deploy.sh", "memory_type": "process"}'

# Recall memories
curl -s -X POST http://localhost:7701/recall \
  -H "Content-Type: application/json" \
  -d '{"query": "how do we deploy?", "count": 3}'

# Get formatted context for a system prompt
curl -s -X POST http://localhost:7701/context \
  -H "Content-Type: application/json" \
  -d '{"count": 10, "format": "markdown"}'

Python (no SDK needed):

import httpx

# Recall
r = httpx.post("http://localhost:7701/recall", json={"query": "deploy process"})
memories = r.json()["results"]

Node.js:

const res = await fetch("http://localhost:7701/recall", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ query: "deploy process", count: 5 })
});
const { results } = await res.json();

License

MIT

Metadata

Release files for mesh-context-layer 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mesh-context-layer 0.5.0
File Size Uploaded
mesh_context_layer-0.5.0.tar.gz 92.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mesh-context-layer 0.5.0
File Interpreter ABI Platform
mesh_context_layer-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 164.0 kB

Release files / mesh_context_layer-0.5.0.tar.gz

Download URL mesh_context_layer-0.5.0.tar.gz
Size 92.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0951e88624b1da1de8267e8652576a2e637e4505e99c72b5f7120ceaaf757a3a
BLAKE2b-256 checksum
How to use checksums
606af6cf4608c5b4aaac0f558949f30394b45f5c4cf40c4d2d4225d698bd3af6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / mesh_context_layer-0.5.0-py3-none-any.whl

Download URL mesh_context_layer-0.5.0-py3-none-any.whl
Size 71.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fcdd29ce38dda0a3fe83f8d4ae4cb7905edcae5583a6b0a1101d35e684cc5ad0
BLAKE2b-256 checksum
How to use checksums
68eeb43651e98e900dc5d68ffcc611460ecb80b5ba85ff6a5d73b55887b7106d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release history Release notifications | RSS feed

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.1

2 release files

This release

0.5.0 This release

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page