Perfup
raullenchai/Rapid-MLX
Autonomous performance optimization: research, PoC, benchmark, implement, review, PR
Interact with a Meshtastic LoRa mesh network through MESH-API — list nodes, read messages, send texts, and check connection status.
$ npx skills add mr-tbot/mesh-api --skill mesh-api -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mr-tbot/mesh-api mesh-api --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mr-tbot/mesh-api.git skills-src && mkdir -p .claude/skills && cp -r skills-src/openclaw-release/skills/mesh-api .claude/skills/mesh-api && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "mesh-api" agent skill from https://github.com/mr-tbot/mesh-api/tree/main/openclaw-release/skills/mesh-api into .claude/skills/mesh-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mesh-api", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mr-tbot/mesh-api/tree/main/openclaw-release/skills/mesh-apiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mr-tbot/mesh-api --skill mesh-api -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mr-tbot/mesh-api mesh-api --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mr-tbot/mesh-api.git skills-src && mkdir -p .agents/skills && cp -r skills-src/openclaw-release/skills/mesh-api .agents/skills/mesh-api && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mesh-api" agent skill from https://github.com/mr-tbot/mesh-api/tree/main/openclaw-release/skills/mesh-api into .agents/skills/mesh-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mesh-api", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mr-tbot/mesh-api --skill mesh-api -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mr-tbot/mesh-api mesh-api --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mr-tbot/mesh-api.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/openclaw-release/skills/mesh-api .cursor/skills/mesh-api && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mesh-api" agent skill from https://github.com/mr-tbot/mesh-api/tree/main/openclaw-release/skills/mesh-api into .cursor/skills/mesh-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mesh-api", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mr-tbot/mesh-api.git --path openclaw-release/skills/mesh-api--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mr-tbot/mesh-api --skill mesh-api -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mr-tbot/mesh-api mesh-api --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mr-tbot/mesh-api.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/openclaw-release/skills/mesh-api .gemini/skills/mesh-api && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mesh-api" agent skill from https://github.com/mr-tbot/mesh-api/tree/main/openclaw-release/skills/mesh-api into .gemini/skills/mesh-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mesh-api", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mr-tbot/mesh-api mesh-apiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mr-tbot/mesh-api --skill mesh-api -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mr-tbot/mesh-api.git skills-src && mkdir -p .github/skills && cp -r skills-src/openclaw-release/skills/mesh-api .github/skills/mesh-api && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mesh-api" agent skill from https://github.com/mr-tbot/mesh-api/tree/main/openclaw-release/skills/mesh-api into .github/skills/mesh-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mesh-api", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mr-tbot/mesh-api --skill mesh-api -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mr-tbot/mesh-api mesh-api --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mr-tbot/mesh-api.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/openclaw-release/skills/mesh-api .opencode/skills/mesh-api && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mesh-api" agent skill from https://github.com/mr-tbot/mesh-api/tree/main/openclaw-release/skills/mesh-api into .opencode/skills/mesh-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mesh-api", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mesh-apiInteract with a Meshtastic LoRa mesh network through MESH-API — list nodes, read messages, send texts, and check connection status.
Mesh API is an agent skill from mr-tbot/mesh-api. Interact with a Meshtastic LoRa mesh network through MESH-API — list nodes, read messages, send texts, and check connection status.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in AI & LLM Engineering, covering Fine-tuning and LLM inference and serving. It works with OpenAI, DeepSeek, Model Context Protocol and Ollama. The repository describes itself as: MESH-API — Off-Grid AI & API Router & with MCP server & over 30 API extensions for Meshtastic & MeshCore - Seamlessly connect LM Studio, Ollama, AI Providers , 3rd-party APIs…. The licence is GPL-3.0.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ea3cf12. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
MESH_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Mesh API loads about 1.8k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 825 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mr-tbot/mesh-api at commit ea3cf12, republished under its GPL-3.0 licence (© mr-tbot). 825 words, ~1,837 tokens.
.claude/skills/mesh-api/SKILL.md (or your agent's skills folder).You can interact with a Meshtastic LoRa mesh network through a running MESH-API instance. MESH-API exposes a REST API (default port 5000) that lets you list online nodes, read recent messages, send texts to specific nodes or broadcast to channels, and check device connectivity.
MESH_API_URL — Base URL of the MESH-API instance (e.g. http://192.168.1.50:5000). Required.MESH_API_KEY — Optional bearer token for future authentication support. If set, include it as Authorization: Bearer <token> on every request. If empty or unset, omit the header entirely — MESH-API has no auth by default.List all mesh nodes the MESH-API instance can see.
Request:
curl -s "$MESH_API_URL/nodes"Response: JSON array of node objects.
[
{"id": "!a1b2c3d4", "shortName": "TBot", "longName": "TBot Base Station"},
{"id": "!e5f6a7b8", "shortName": "Hike", "longName": "Hiker Node"}
]id is the Meshtastic hex node ID (always starts with ! followed by 8 hex characters).shortName is a 4-character display name.longName is the full node name.Retrieve recent messages from the mesh.
Request:
curl -s "$MESH_API_URL/messages"Response: JSON array of message objects. Each message contains sender info, text, timestamp, and channel.
Send a message to a specific node (direct) or broadcast to a channel.
Direct message to a node:
curl -s -X POST "$MESH_API_URL/send" \
-H "Content-Type: application/json" \
-d '{"message": "Hello from OpenClaw", "node_id": "!a1b2c3d4", "direct": true}'Broadcast to a channel:
curl -s -X POST "$MESH_API_URL/send" \
-H "Content-Type: application/json" \
-d '{"message": "Hello mesh!", "channel_index": 0}'Body parameters:
message (string, required) — The text to send.node_id (string, required for direct) — Target node hex ID (e.g. !a1b2c3d4).direct (boolean) — Set true for a direct message to node_id.channel_index (integer) — Channel index for broadcast (default 0 = LongFast).Response:
{"status": "sent", "to": "!a1b2c3d4", "direct": true, "message": "Hello from OpenClaw"}Broadcast a message to a channel (form-encoded, primarily used by the web UI).
Request:
curl -s -X POST "$MESH_API_URL/ui_send" \
-d "message=Hello+mesh!&channel_index=0"Parameters (form-encoded):
message (string, required) — The text to send.channel_index (integer) — Channel index (default 0).destination_node (string, optional) — If provided, sends a direct message instead of broadcast.For programmatic use, prefer POST /send with JSON. Use /ui_send only when mimicking the web UI.
Check whether MESH-API is connected to its Meshtastic radio device.
Request:
curl -s "$MESH_API_URL/connection_status"Response:
{"status": "connected", "error": null}status will be "connected" or "disconnected".error contains an error description string if disconnected, otherwise null.List all available slash commands registered on the mesh (including extension commands).
Request:
curl -s "$MESH_API_URL/commands_info"Response: JSON array of command objects.
[
{"command": "/ping", "description": "Check if the bot is online"},
{"command": "/ai-9z", "description": "Ask the AI a question"},
{"command": "/nodes", "description": "List online mesh nodes"}
]When the user says something like the phrases below, map their intent to the corresponding API call:
| User says | Action |
|---|---|
| "Who is online on the mesh?" | GET /nodes — list all visible nodes and summarize who is online. |
| "What nodes are on the mesh network?" | GET /nodes |
| "Send 'hello' to TBot" | GET /nodes first to resolve the name "TBot" to a node ID, then POST /send with {"message": "hello", "node_id": "<resolved_id>", "direct": true}. |
| "Send a message to !a1b2c3d4" | POST /send with {"message": "<user's message>", "node_id": "!a1b2c3d4", "direct": true}. |
| "What's been said on the mesh recently?" | GET /messages — retrieve and summarize the recent messages. |
| "Show me mesh messages" | GET /messages |
| "Is the mesh connected?" | GET /connection_status — report whether the radio link is up. |
| "Check mesh connection" | GET /connection_status |
| "Broadcast 'weather alert' to the mesh" | POST /send with {"message": "weather alert", "channel_index": 0}. |
| "Broadcast on channel 2: meeting at noon" | POST /send with {"message": "meeting at noon", "channel_index": 2}. |
| "What commands does the mesh bot support?" | GET /commands_info — list and describe available slash commands. |
When resolving a node by name (e.g. "send to TBot"), always call GET /nodes first to find the matching id. Never guess a node ID.
Character limit. Meshtastic mesh messages have a strict practical limit. Keep any message you send via POST /send under 200 characters unless the user explicitly requests a longer message. MESH-API will chunk longer messages automatically, but each chunk is a separate radio transmission — warn the user it will arrive as multiple packets and may take time.
No unsolicited long messages. Never send AI-generated text directly to the mesh without user confirmation if the text exceeds one chunk (200 characters). Always ask the user first: "This response is X characters and will be sent as N packets — proceed?"
Bot-loop prevention. Messages prefixed with m@i- are AI-generated mesh messages. If you see this prefix on an inbound mesh message (via GET /messages), do not relay it back to the mesh. Doing so creates an infinite loop between AI agents on the network.
Node ID format. Meshtastic node IDs are hex strings matching the pattern ! followed by exactly 8 hexadecimal characters (e.g. !a1b2c3d4). Always validate a node ID matches this format before using it in POST /send. If the user provides a name instead, resolve it via GET /nodes.
Connection check. Before sending messages, it is good practice to call GET /connection_status to verify the mesh radio is connected. If status is "disconnected", inform the user and do not attempt to send.
No auth by default. MESH-API does not require authentication in its default configuration. The MESH_API_KEY env var is optional future-proofing. Only include the Authorization header if MESH_API_KEY is set and non-empty.
Rate awareness. Meshtastic is a low-bandwidth LoRa network. Do not send rapid bursts of messages. If you need to send multiple messages, space them out and inform the user about the delay.
© mr-tbot, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in openclaw-release/skills/mesh-api of mr-tbot/mesh-api.
Open the folder on GitHubat commit ea3cf12
Mesh API next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Mesh API this skillmr-tbot/mesh-api | 179 | — | ~1.8k | Automated safety check: Pass | GPL-3.0 | |
| Perfupraullenchai/Rapid-MLX | 3.9k | — | ~1.6k | Automated safety check: Notes | Custom licence | |
| Agent Frameworkjihadkhawaja/Egroo | 178 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Configuring Visionoxbshw/watch-skill | 452 | — | ~509 | Automated safety check: Notes | MIT | |
| Facturasgustavoeenriquez/MakerAi | 212 | — | ~127 | Automated safety check: Pass | MIT | |
| Open Weightsericrisco/rsc-harness | 156 | — | ~4.1k | Automated safety check: Pass | MIT |
raullenchai/Rapid-MLX
Autonomous performance optimization: research, PoC, benchmark, implement, review, PR
jihadkhawaja/Egroo
Build, extend, and debug AI agents in Egroo using the Microsoft Agent Framework (C .NET).
oxbshw/watch-skill
The user wants to connect an LLM or vision provider, already has an API key, asks "can I use OpenAI/Anthropic/Gemini/OpenRouter", wants local Ollama, or needs different cheap and strong models.
gustavoeenriquez/MakerAi
Úsalo cuando el usuario pida redactar una factura, una cuenta de cobro o una nota de cobro.
ericrisco/rsc-harness
A skill your agent uses when choosing an open-weight LLM and clearing it for use — which family and size fit the task, the hardware and the budget, and above all whether the license permits shipping.
magnus919/agent-skills
Operate, configure, benchmark, and troubleshoot llama.cpp across CPU, Metal, CUDA, HIP/ROCm, Vulkan, SYCL, and hybrid or multi-GPU systems.
Categories
Interact with a Meshtastic LoRa mesh network through MESH-API — list nodes, read messages, send texts, and check connection status. Mesh API is an agent skill from mr-tbot/mesh-api. Interact with a Meshtastic LoRa mesh network through MESH-API — list nodes, read messages, send texts, and check connection status.
Mesh API fits situations like: tasks that involve Fine-tuning; tasks that involve LLM inference and serving.
Run `npx skills add mr-tbot/mesh-api --skill mesh-api -a claude-code`. Or copy the skill folder (openclaw-release/skills/mesh-api in mr-tbot/mesh-api) into .claude/skills/mesh-api in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mr-tbot/mesh-api --skill mesh-api -a codex`. Or copy the skill folder (openclaw-release/skills/mesh-api in mr-tbot/mesh-api) into .agents/skills/mesh-api in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mr-tbot/mesh-api --skill mesh-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mesh-api, .gemini/skills/mesh-api, .github/skills/mesh-api and .opencode/skills/mesh-api in your project.
Going by SKILL.md and its folder, Mesh API needs the command-line tools its instructions call (curl) and credentials named MESH_API_KEY. Our summary lists: A credential in MESH_API_KEY.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Mesh API is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Mesh API: Perfup (raullenchai/Rapid-MLX, 3.9k stars), Agent Framework (jihadkhawaja/Egroo, 178 stars), Configuring Vision (oxbshw/watch-skill, 452 stars) and Facturas (gustavoeenriquez/MakerAi, 212 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mr-tbot (a GitHub user) maintains it in mr-tbot/mesh-api, which has 179 GitHub stars. The repository was last updated on July 28, 2026.
Source: mr-tbot/mesh-api on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.