Skip to content
Data
Skill

/slm-mesh

Cross-session peer coordination via the SLM mesh network. Lets multiple AI agent sessions on the same machine discover each other, send messages, share lightweight state, and lock files to avoid conflicts. Requires full, power, or mesh MCP profile. All 8 tools are MCP-only —

From plugin
superlocalmemory
20636 skills4 agents1 command1 MCP
Install
$ npx -y skills add qualixar/superlocalmemory --skill slm-mesh --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/slm-mesh

Context preview

The summary Claude sees to decide when to auto-load this skill.

Cross-session peer coordination via the SLM mesh network. Lets multiple AI agent sessions on the same machine discover each other, send messages, share lightweight state, and lock files to avoid conflicts. Requires full, power, or mesh MCP profile. All 8 tools are MCP-only —

SKILL.md

slm-mesh.SKILL.md
name: slm-mesh
description: Cross-session peer coordination via the SLM mesh network. Lets multiple AI agent sessions on the same machine discover each other, send messages, share lightweight state, and lock files to avoid conflicts. Requires full, power, or mesh MCP profile. All 8 tools are MCP-only — there is no CLI fallback.
when_to_use: |
  - Multiple agent sessions running simultaneously on the same machine
  - "Announce what I'm working on to other sessions"
  - "Check if another agent has locked a file before I edit it"
  - "Send a message to the other Claude session"
  - "Is anyone else working on this project?"
  - Parallel agent workflows needing coordination
  - Cross-session state sharing without persisting to the memory store
allowed-tools: mesh_summary, mesh_peers, mesh_send, mesh_inbox, mesh_state, mesh_lock, mesh_events, mesh_status, Bash

slm-mesh — Cross-Session Peer Coordination

The mesh network lets multiple AI agent sessions on the same machine discover each other and coordinate in real time — without writing to the persistent memory store. Mesh messages are transient (48-hour TTL); they complement memory (which is durable) rather than replacing it.

Mesh is local-only: it uses the SLM daemon as a local broker. No data leaves the machine.

---

Profile requirement

Mesh tools are available in the `full`, `power`, and `mesh` MCP profiles. Confirm the active profile with `slm status` before calling mesh tools. If the tools are not available, switch to `full` profile with `switch_profile("full")` (requires `code` or higher active profile). See `slm-profile`.

---

Tool reference

1. `mesh_summary` — announce what this session is doing

mesh_summary(summary: str = "") -> dict

Call at session start to register on the mesh and announce your purpose. Other sessions can see your summary via `mesh_peers`. The session stays alive via automatic heartbeat.

mesh_summary(summary="Refactoring auth module in api/src/auth/")

Response: `{peer_id, summary, project_path, registered, heartbeat_active, broker_response}`

Call this once at the start of any session that will participate in the mesh. The peer registration happens automatically at MCP startup, but calling `mesh_summary` sets the human-readable description that other agents see.

---

2. `mesh_peers` — list active sessions

mesh_peers() -> dict

Returns all active peer sessions on this machine.

mesh_peers()

Response: `{peers: [{peer_id, summary, project_path, last_seen}], count, my_peer_id}`

Use this to discover other sessions before sending a message or checking for conflicts.

---

3. `mesh_send` — send a message to another session

mesh_send(
  to: str,       # peer_id | "broadcast" | "project:/path/to/dir"
  message: str,  # max 4 KB — use file paths for large data
) -> dict

Send a targeted, broadcast, or project-wide message.

# Direct message to a specific peer
peers = await mesh_peers()
target_id = peers["peers"][0]["peer_id"]
mesh_send(to=target_id, message="I'm starting work on auth/handler.py — please hold off")

# Broadcast to all sessions
mesh_send(to="broadcast", message="Deploying to staging in 5 minutes")

# Message all sessions working in the same project
mesh_send(to="project:/Users/me/myproject", message="Tests are green on main")

**4 KB message cap.** For large payloads (diffs, file contents), write to a file and send the path instead. The circuit breaker opens automatically if the daemon is repeatedly unreachable — `mesh_send` returns `ok: false` in that case.

---

4. `mesh_inbox` — read messages sent to this session

mesh_inbox() -> dict

Returns unread messages (direct, broadcast, and project-targeted). Messages are automatically marked as read after retrieval.

inbox = await mesh_inbox()
for msg in inbox["messages"]:
    print(msg["from"], msg["content"])

Response: `{messages: [{id, from, content, sent_at, read}], count, unread}`

Messages auto-expire after 48 hours.

---

5. `mesh_state` — get or set shared coordination state

mesh_state(
  key: str = "",
  value: str = "",
  action: str = "get",   # "get" | "set"
) -> dict

Shared state is visible to all authenticated peers. Use it for non-secret coordination metadata: feature flags, task assignments, progress markers.

# Set state
mesh_state(key="deploy_in_progress", value="true", action="set")
mesh_state(key="current_reviewer", value=my_peer_id, action="set")

# Read one key
mesh_state(key="deploy_in_progress", action="get")

# Read all state
mesh_state(action="get")

**Security constraint:** Credentials, tokens, passwords, and API keys are rejected by the broker. Never store secrets in shared state.

---

6. `mesh_lock` — file lock coordination

mesh_lock(
  file_path: str,         # must be an absolute path
  action: str = "query",  # "query" | "acquire" | "release"
) -> dict

Check, acquire, or release a file lock before editing a shared file.

# Step 1: check if the file is already locked
lock = await mesh_lock(file_path="/abs/path/to/auth/handler.py", action="query")

if lock.get("locked"):
    print(f"File is locked by {lock['locked_by']} — wait")
else:
    # Step 2: acquire the lock
    mesh_lock(file_path="/abs/path/to/auth/handler.py", action="acquire")

    # ... edit the file ...

    # Step 3: release the lock when done
    mesh_lock(file_path="/abs/path/to/auth/handler.py", action="release")

`file_path` must be an absolute path (starts with `/` on Unix, drive letter on Windows). Relative paths are rejected.

---

7. `mesh_events` — recent mesh activity log

mesh_events() -> dict

Returns the activity log for the mesh network: peer joins, leaves, messages sent, and state changes. Use to understand what other sessions have been doing.

---

8. `mesh_status` — mesh broker health

mesh_status() -> dict

Returns broker uptime, peer count, and connection health. Use at sessi

Read more
Ships withsuperlocalmemory

World's first local-only AI memory to break 74% retrieval and 60% zero-LLM on LoCoMo. No cloud, no APIs, no data leaves your machine. Additionally, mode C (LLM/Cloud) - 87.7% LoCoMo. Research-backed. arXiv: 2603.14588

Get the whole plugin

Other skills on superlocalmemory.