Skip to main content
GET
/
v1
/
runmesh
/
nodes
RunMesh
curl --request GET \
  --url https://api.example.com/v1/runmesh/nodes \
  --header 'Content-Type: application/json' \
  --data '
{
  "publicKey": "<string>",
  "deviceLabel": "<string>",
  "os": "<string>",
  "appVersion": "<string>"
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.runtools.ai/llms.txt

Use this file to discover all available pages before exploring further.

Device linking starts before normal user auth because the device does not have an approved identity yet.
MethodPathAuthDescription
POST/v1/runmesh/devices/link/startnoneCreate a short-lived link code for a device public key
POST/v1/runmesh/devices/link/pollnonePoll a link code until approved or expired
POST/v1/runmesh/devices/link/approveuser/API keyApprove a pending code into the current org
publicKey
string
required
Device public key.
deviceLabel
string
Human-readable device label.
os
string
Client OS, such as macos.
appVersion
string
Client app version.
cURL
curl -X POST https://api.runtools.ai/v1/runmesh/devices/link/start \
  -H "Content-Type: application/json" \
  -d '{
    "publicKey": "device-public-key",
    "deviceLabel": "Gregs Mac",
    "os": "macos"
  }'
201 Created
{
  "data": {
    "code": "ABCD12",
    "url": "https://runtools.ai/devices/link",
    "expiresAt": "2026-05-10T12:00:00.000Z"
  }
}

Authenticated Node APIs

All routes below require normal auth.
MethodPathScopeDescription
GET/v1/runmesh/overviewrunmesh:readNode counts for the org
GET/v1/runmesh/nodesrunmesh:readList visible nodes
GET/v1/runmesh/nodes/{id}runmesh:readGet one node
GET/v1/runmesh/nodes/{id}/configrunmesh:readGenerate peer config for a node
PATCH/v1/runmesh/nodes/{id}runmesh:writeRename a node
DELETE/v1/runmesh/nodes/{id}runmesh:writeRevoke a node
POST/v1/runmesh/nodes/{id}/revokerunmesh:writeRevoke a node
GET/v1/runmesh/auditrunmesh:readList RunMesh audit events
GET/v1/runmesh/devices/{id}/activityactivity:readActivity for one device
all
boolean
Include all visible org nodes.
owner
string
Use owner=me to list only nodes owned by the current user.
cURL
curl "https://api.runtools.ai/v1/runmesh/nodes?owner=me" \
  -H "X-API-Key: $RUNTOOLS_API_KEY"

Local Mac Agents

Create a local-mac agent with a targetDeviceId. Runs can be started from any client, but the work executes on the bound device through RunMesh.
{
  "slug": "code-on-my-mac",
  "executionMode": "local-mac",
  "targetDeviceId": "node_abc123",
  "tools": ["exec_command", "write_stdin", "apply_patch", "view_image", "web_search"]
}