agentmesh
Skill1.2k starsChanged 13 days agoApache-2.0View on GitHub
Use when local tools cannot provide a needed capability and an Agent Mesh network can: inspect mesh state, discover reachable services/tools, describe and call namespaced remote MCP tools, reach OpenAI-compatible inference models hosted by mesh peers, and hand work to A2A agents on the mesh through the official a2a CLI. Also use to set up, join, or reconnect a agentmesh-node when its MCP tools are not callable yet.
- Pipes a download into a shell
- Installs packages
2 other projects use a version of this.
Trending
More talk lately.about the whole repository
Most recently taken up by
- alex1678747287/agentmeshtheir own version, first seen Oct 20, 2026
- google/agentmeshword for word, first seen Oct 11, 2026
Who's talking about google/sam
- google/agentmesh“refactor: rename project and repository from SAM to Agent Mesh”GitHub · Oct 9, 2026 · 1 reactions
- google/agentmesh“node, sdk: present a refreshed credential to the routers already connected”GitHub · Oct 8, 2026 · 1 reactions
- pion/awesome-pion“Add Google”GitHub · Oct 2, 2026 · 1 reactions
- google/agentmesh“sdk/python: dial routers and DHT peers at once, stop when the record is in hand”GitHub · Sep 27, 2026 · 1 reactions
- google/agentmesh“sdk/python: bound every dial the DHT walk makes”GitHub · Sep 27, 2026 · 1 reactions
The biggest 5 of 51 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 51
Talked about on GitHub and Bluesky (51 times).
On GitHub · 50
- Oct 9, 2026refactor: rename project and repository from SAM to Agent Mesh — google/agentmesh1 reaction
- Oct 8, 2026node, sdk: present a refreshed credential to the routers already connected — google/agentmesh1 reaction
- Oct 2, 2026Add Google — pion/awesome-pion1 reaction
- Sep 27, 2026sdk/python: dial routers and DHT peers at once, stop when the record is in hand — google/agentmesh1 reaction
- Sep 27, 2026sdk/python: bound every dial the DHT walk makes — google/agentmesh1 reaction
45 more on GitHub
- Sep 26, 2026Egress pep — google/agentmesh1 reaction
- Sep 24, 2026release: npm dist-tag for prereleases and a manual SDK publish — google/agentmesh1 reaction
- Sep 24, 2026Native JavaScript and Python SDKs, and the protocol contracts they need — google/agentmesh1 reaction
- Sep 19, 2026Follow MCP tool-list pagination in discovery and remote tool lookups — google/agentmesh1 reaction · 1 comment
- Sep 18, 2026deploy: let the cold-path probe try every provider it discovers — google/agentmesh1 reaction
- Sep 14, 2026discovery: record the canonical peer ID from an announcement — google/agentmesh1 reaction · 3 comments
- Sep 10, 2026node: operator-enforced egress label floor (egress.require_labels) — google/agentmesh1 reaction · 3 comments
- Sep 3, 2026node,router: reconcile peer bans from the control plane instead of a local store — google/agentmesh1 reaction · 5 comments
- Sep 1, 2026node: fail closed when a required-labels spec names no label — google/agentmesh1 reaction · 8 comments
- Aug 30, 2026SSE-safe HTTP timeouts in SamClient, self peer_id in get_mesh_info — google/agentmesh1 reaction · 1 comment
- Aug 22, 2026fix(api): sort label keys in ValidateLabels for deterministic errors — google/agentmesh1 reaction · 2 comments
- Jul 7, 2026Mmobile — google/agentmesh1 reaction · 1 comment
- Jun 26, 2026add mcp tools for debug and troubleshooting — google/agentmesh1 reaction
- Oct 19, 2026fix(pins): dispose #1047 to #1049 — sattyamjjain/agent-audit-kit0 reactions
- Oct 9, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 9, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 8, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 8, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 8, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 8, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 7, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 7, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 7, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 7, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 7, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 7, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 7, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 7, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 6, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 4, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 3, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 3, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 2, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 1, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Oct 1, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Sep 30, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Sep 30, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Sep 29, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Sep 27, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Sep 26, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Sep 26, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Sep 26, 2026Testnet hub is unhealthy — google/agentmesh0 reactions · 1 comment
- Sep 26, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
- Sep 25, 2026Testnet hub is unhealthy — google/agentmesh0 reactions
- Sep 25, 2026Testnet bananas is unhealthy — google/agentmesh0 reactions · 1 comment
On Bluesky · 1
- Aug 20, 2026AIエージェント同士が安全に通信してツールを共有できるP2Pネットワークツールっぽい マルチエージェントの開発や連携に使えそうかも yug1224 starred google/sam https://github.com/google/sam — @yug1224.com1 likes and repost
Other versions2 projects use a version of this.
Word for word · 1
- google/agentmesh★ 1.2k100% same
Edited · 0
None found.
Wrote their own version · 1
- alex1678747287/agentmesh★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- AGENTS.mdAGENTS.md
The file
Show its rules and text
We split this skill into the rules it gives an agent
38 rules. About 0 are common, 13 are distinctive, and 25 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
25
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this skill when local tools cannot satisfy the task and the Agent Mesh can.
- Very specific: line 32
Check the CLI: agentmesh-node --help.
- Very specific: line 35
Start the node in the background: agentmesh-node run --daemonize.
- Very specific: line 39
If step 2 reports that the node is not enrolled, run the command it prints, agentmesh-node join --headless <control-plane-url>.
- Very specific: line 49
Read the node API token from the file named in step 2, then register the MCP endpoint http://127.0.0.1:8080/mcp with the header …
- Very specific: line 62
If setup is stuck in a half-configured state, ask the user before starting over: stop the node, run agentmesh-node reset --all --yes for a …
- Distinctive: line 67
Put the node API token only in the agent's MCP configuration.
- Very specific: line 90
2. The TCP endpoint, with the node API token: Use this when get_mesh_info reports no local_api_socket, or when that path is not reachable …
- Very specific: line 106
If the node was started with --api-token-path or AGENTMESH_API_TOKEN, ask the user where the token lives rather than searching for it.
- Very specific: line 109
Never print the token or echo it into the transcript.
- Distinctive: line 142
Start by understanding the local node and mesh state:
- Very specific: line 144
Use get_mesh_info with {} to inspect connected_peers, attached_routers, and router_peer_id.
- Very specific: line 146
Use list_local_services with {} to see services registered on the local node.
- Distinctive: line 151
Use service discovery when you need to inventory reachable service providers:
- Very specific: line 153
Use discover_remote_services with {"type":"mcp"}, {"type":"inference"}, or {"type":"a2a"}.
- Very specific: line 156
Treat discover_remote_services as service inventory.
- Distinctive: line 161
Use tool discovery when you need remote MCP tools:
- Very specific: line 163
Use find_remote_tools to discover reachable aggregated MCP tools advertised by remote Agent Mesh services.
- Very specific: line 173
All tools returned by find_remote_tools are namespaced.
- Very specific: line 190
Use the input schema from describe_remote_tool to build the call arguments.
- Distinctive: line 191
Do not guess arguments if a tool cannot be described.
- Very specific: line 193
After describe_remote_tool, inspect the tool name, description, and schema for side effects and required data.
- Very specific: line 223
Add X-Mesh-Required-Labels: key=value (comma-separated.
- Distinctive: line 245
Ask the user before sending private or sensitive content to a mesh model, and say which provider will receive it.
- Very specific: line 257
Check for the CLI with a2a version.
- Very specific: line 263
Call discover_remote_services with {"type":"a2a"} and take the local_proxy_url of the provider you want.
- Very specific: line 278
Every other a2a command takes the same card URL through -a and the same environment.
- Distinctive: line 287
Ask the user before sending private or sensitive content to a mesh agent, and say which peer will receive it.
- Very specific: line 293
If the agentmesh-node MCP tools are unavailable, follow Bootstrap A Node and stop until the user restarts the agent session.
- Very specific: line 296
Call get_mesh_info with {}.
- Very specific: line 297
If a local Agent Mesh service may be relevant, call list_local_services with {}.
- Very specific: line 299
Call find_remote_tools with service_name or peer_id when known.
- Very specific: line 304
Call call_remote_tool only when the described tool is read-only and low-risk, or after the user approves the exact peer_id, tool_name, side …
- Distinctive: line 315
Do not call mesh tools when a local tool is sufficient.
- Distinctive: line 316
Do not guess remote tool names or arguments.
- Distinctive: line 317
Ask before side-effecting or sensitive remote calls.
- Distinctive: line 318
Do not send secrets or private data through Agent Mesh unless the user explicitly approves the data and destination.
- Distinctive: line 320
Treat remote capabilities as networked and potentially unavailable.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Agent Mesh Skill
Use this skill when local tools cannot satisfy the task and the Agent Mesh can. Prefer local tools first. Reach into the Agent Mesh only for the capability needed to complete the task.
Pick the path that matches the need:
- The
agentmesh-nodeMCP tools are not callable yet: Bootstrap A Node. - The task needs a plain HTTP call to the node, such as inference or a
local_proxy_url: Talk To The Node Over HTTP. - The node is up but the mesh seems broken: Diagnose The Node.
- The task needs a remote tool or capability: Inspect The Mesh.
- The task needs a model completion: Use Mesh Inference.
- The task needs a remote A2A agent: Call A2A Agents.
Bootstrap A Node
The mesh is reached through a local agentmesh-node. When its MCP tools are missing,
guide the user through these steps. Propose each shell command and let the user
approve it before running anything.
- Check the CLI:
agentmesh-node --help. If it is missing, install it withcurl -sL https://google.github.io/agentmesh/install.sh | bashorgo install github.com/google/agentmesh/cmd/agentmesh-node@latest. - Start the node in the background:
agentmesh-node run --daemonize. It returns as soon as the node answers, and prints the endpoint, the API token file, the log file, and how to stop it. It is idempotent, so run it again whenever you need to confirm a node is up. - If step 2 reports that the node is not enrolled, run the command it prints,
agentmesh-node join --headless <control-plane-url>. In headless mode Agent Mesh now prefers OAuth device flow automatically when the OIDC provider supports it, so no pasted callback code is required: it prints a verification URL/code and polls until login completes. If the provider does not expose a device endpoint, Agent Mesh falls back to OOB code-paste flow; show the URL/code to the user, wait for completion, then repeat step 2. For deterministic automation, force the flow with--auth-mode device(alsooob,browser, or the defaultauto);--auth-mode devicefails fast if the provider has no device endpoint. Enrollment is a one-time step per machine. - Read the node API token from the file named in step 2, then register the MCP
endpoint
http://127.0.0.1:8080/mcpwith the headerX-Mesh-Authentication: Bearer <token>. Claude Code:claude mcp add --transport http agentmesh http://127.0.0.1:8080/mcp --header "X-Mesh-Authentication: Bearer <token>". Antigravity: add the same URL asserverUrlwith the same header to~/.gemini/config/mcp_config.json. - Tell the user to restart the agent session, since MCP tools load at startup.
MCP clients need that HTTP endpoint. For everything else — shell commands and direct HTTP calls to the node — see Talk To The Node Over HTTP: the Unix socket gets you in without a token.
If setup is stuck in a half-configured state, ask the user before starting over:
stop the node, run agentmesh-node reset --all --yes for a clean slate, then go back
to step 2. That deletes the node's identity and its PeerID, and enrolling again
needs another login, so never do it to work around an unexplained error.
Put the node API token only in the agent's MCP configuration. Do not echo it into the transcript, and do not commit it.
Talk To The Node Over HTTP
The MCP tools need none of this. It applies when a task needs a plain HTTP
request to the node: the OpenAI-compatible /v1 endpoints, or a
local_proxy_url returned by discover_remote_services.
There are two ways in. Try them in this order.
1. The Unix socket, whenever there is one. get_mesh_info reports it as
local_api_socket, by default ~/.config/agentmesh/agentmesh.sock. It serves the same
API and takes no token at all: only the user who owns the socket can connect to
it, so the filesystem has already done the authenticating. Prefer it, because no
secret reaches a command line, the shell history, or the transcript.
curl --unix-socket ~/.config/agentmesh/agentmesh.sock http://localhost/v1/modelsThe host in the URL is a placeholder that curl ignores once it dials a socket.
2. The TCP endpoint, with the node API token. Use this when get_mesh_info
reports no local_api_socket, or when that path is not reachable from where you
run, for example a node inside a container. Do not read your MCP client
configuration to recover it: those files hold the headers of every other server
you are connected to, and reading them puts all of those secrets into the
transcript. A daemonized node writes its token to
~/.config/agentmesh/api-token; let curl read that file itself so the value
never appears in an argument, the shell history, or your output:
curl http://127.0.0.1:8080/v1/models -H @<(printf 'X-Mesh-Authentication: Bearer %s' "$(cat ~/.config/agentmesh/api-token)")<(...) needs bash or zsh; in a plain sh, write the header line to a file
with mode 0600 and pass -H @that-file instead.
If the node was started with --api-token-path or AGENTMESH_API_TOKEN, ask the
user where the token lives rather than searching for it.
Never print the token or echo it into the transcript. Authorization is not the
node's credential: send it only when the destination service needs its own, and
it passes through to that service untouched.
Diagnose The Node
Operator diagnostics are not MCP tools, so they never appear in the tool list.
A running node serves them under /debug, and the agentmesh-node CLI wraps each
endpoint over the node's Unix socket — no token involved:
agentmesh-node debug mesh-info # connected peers, attached routers, router peer ID
agentmesh-node debug connectivity [peer-id] # ping the Agent Mesh router, or a specific peer
agentmesh-node debug network-info # listen and announced addresses
agentmesh-node debug token-info # local auth token expiration and status
agentmesh-node debug logs # recent log lines
agentmesh-node debug connect-peer <multiaddr> # manually dial a peerEach command prints the endpoint's raw JSON, so it composes with jq. The same
data is one curl away when the CLI is not at hand:
curl --unix-socket ~/.config/agentmesh/agentmesh.sock http://localhost/debug/mesh-infoThese endpoints answer even while the mesh is unreachable — that is the state
they exist to diagnose. When the node runs but mesh tools fail, check
debug connectivity for router_error_msg and debug token-info for an
expired token before restarting or re-enrolling anything.
Inspect The Mesh
Start by understanding the local node and mesh state:
- Use
get_mesh_infowith{}to inspectconnected_peers,attached_routers, androuter_peer_id. - Use
list_local_serviceswith{}to see services registered on the local node.
Discover Remote Capabilities
Use service discovery when you need to inventory reachable service providers:
- Use
discover_remote_serviceswith{"type":"mcp"},{"type":"inference"}, or{"type":"a2a"}. Addnameonly when narrowing by service name. - Treat
discover_remote_servicesas service inventory. Non-MCP service types are not callable withcall_remote_tool. Forinference://services see Use Mesh Inference, fora2a://services Call A2A Agents.
Use tool discovery when you need remote MCP tools:
- Use
find_remote_toolsto discover reachable aggregated MCP tools advertised by remote Agent Mesh services. - Narrow
find_remote_toolswithservice_nameorpeer_idwhen you already know the target. - Mesh-wide searches fetch each peer's catalog on a best-effort basis and may
return an empty array when no reachable aggregated tools are found. Discovery
failures or explicit
peer_idlookup failures are returned as errors.
Describe Before Calling
All tools returned by find_remote_tools are namespaced. Always call
describe_remote_tool before calling them with call_remote_tool.
Remote MCP tools returned by find_remote_tools are namespaced as:
<scheme>://<service_name>/<tool_name>For example mcp://everything/get-sum. Pass the name exactly as returned to
describe_remote_tool and call_remote_tool; do not reassemble it.
Entries may carry an error field instead of a description when a peer
advertises a service whose backend did not answer. Discovery is best-effort per
peer, so a partly broken mesh yields a partly populated array rather than a
failed call. Check for error before treating a tool as available.
Use the input schema from describe_remote_tool to build the call arguments.
Do not guess arguments if a tool cannot be described.
After describe_remote_tool, inspect the tool name, description, and schema
for side effects and required data. Only call read-only, low-risk tools
autonomously. Ask the user before calls that may mutate state, execute code,
access files, contact external services, spend money, or transmit sensitive or
private data. Pass only task-required data, and never include secrets unless
explicitly authorized.
Call Remote Tools
Use call_remote_tool with:
peer_id: the peer hosting the tooltool_name: the discovered namespaced tool name, such asmcp://everything/get-sumarguments: a JSON object whose keys match the described input schema
arguments must be a JSON object, not a string containing JSON.
Use Mesh Inference
The mesh also carries inference:// services: OpenAI-compatible model
endpoints. They are plain HTTP and are never invoked with call_remote_tool.
The node exposes them through an OpenAI-compatible facade on its own address:
- Base URL
http://localhost:8080/v1, usable asbase_urlfor any OpenAI SDK or a directcurl. GET /v1/modelslists the models reachable across the mesh.POST /v1/chat/completionsroutes to a provider of the requestedmodel, preferring a local one, and fails over between providers.- Add
X-Mesh-Required-Labels: key=value(comma-separated; every pair must be attested) to accept only providers whose labels the control plane attested, for exampleregion=eu. Enforcement is fail-closed: unattested providers are rejected before any request data leaves the node.
To pin one specific provider instead of letting the facade choose, call
discover_remote_services with {"type":"inference"} and send the request to
the returned local_proxy_url (append /v1/chat/completions).
Authenticate as described in
Talk To The Node Over HTTP: over the socket when
there is one, otherwise with the token from your own MCP configuration. The
/v1 endpoints also accept that token as Authorization, so an OpenAI SDK can
pass it as its api_key.
curl --unix-socket ~/.config/agentmesh/agentmesh.sock \
http://localhost/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model": "<model>", "messages": [{"role": "user", "content": "..."}]}'Ask the user before sending private or sensitive content to a mesh model, and say which provider will receive it.
Call A2A Agents
The mesh also carries a2a:// services: agents that speak the A2A protocol.
They are plain HTTP behind the node's proxy path and are never invoked with
call_remote_tool. Drive them with the official a2a CLI
(github.com/a2aproject/a2a-cli, v0.3.0 or later). It ships its own agent
skill, which covers the protocol side: cards, messages, tasks and streaming.
This section only adds what the mesh needs.
Check for the CLI with a2a version. If it is missing, propose the install
from its README (go install github.com/a2aproject/a2a-cli@latest names the
binary a2a-cli; rename it to a2a) and its skill with
npx skills add https://github.com/a2aproject/a2a-cli --skill a2a-cli, and
let the user approve each command.
- Call
discover_remote_serviceswith{"type":"a2a"}and take thelocal_proxy_urlof the provider you want. - Point the CLI at the agent card under that URL. The node regenerates the card so its interface URL is the proxy path itself; every later request then goes through the mesh with no further Agent Mesh-specific setup.
- The CLI speaks TCP only, so it needs the node API token from Talk To The Node Over HTTP as a service parameter. Pass it through the CLI's environment, never as a flag, so the value stays out of the process arguments and the shell history:
A2ACLI_SVC_PARAM="X-Mesh-Authentication=Bearer $(cat ~/.config/agentmesh/api-token)" \
a2a card get <local_proxy_url>/.well-known/agent-card.jsonEvery other a2a command takes the same card URL through -a and the same
environment. To accept only a provider whose labels the control plane
attested, append ,X-Mesh-Required-Labels=region=eu to that variable: the
node then refuses fail-closed with 403 before any data leaves it. That
refusal is the feature: report it, never retry with weaker labels on your
own. A --svc-param flag replaces the whole variable, and the variable is
split on commas, so several label pairs need a --config YAML file with
both entries under svc-param instead.
Ask the user before sending private or sensitive content to a mesh agent, and say which peer will receive it.
Minimal Workflow
- Confirm no local tool can satisfy the task.
- If the
agentmesh-nodeMCP tools are unavailable, follow Bootstrap A Node and stop until the user restarts the agent session. - Call
get_mesh_infowith{}. - If a local Agent Mesh service may be
relevant, call
list_local_serviceswith{}. - Call
find_remote_toolswithservice_nameorpeer_idwhen known. Use{}only when the user asked to inventory the mesh or no narrower target exists. - Call
describe_remote_toolwith{"peer_id":"...","tool_name":"service.tool"}. - Call
call_remote_toolonly when the described tool is read-only and low-risk, or after the user approves the exactpeer_id,tool_name, side effects, and task-required data being sent:{"peer_id":"...","tool_name":"service.tool","arguments":{...}}.
For a model completion rather than a tool, skip steps 5-7 and follow Use Mesh Inference instead; for an A2A agent, Call A2A Agents.
Safety And Reliability
- Do not call mesh tools when a local tool is sufficient.
- Do not guess remote tool names or arguments.
- Ask before side-effecting or sensitive remote calls.
- Do not send secrets or private data through Agent Mesh unless the user explicitly approves the data and destination.
- Treat remote capabilities as networked and potentially unavailable.
- Surface peer, service, discovery, schema, and tool-call errors clearly.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

