| name | nodes-list |
| description | Manage paired nodes (status/describe/pending/approve/reject/notify/camera/screen/location/run). |
| metadata | {"CARNELIAN":{"emoji":"📱","requires":{"env":["GATEWAY_URL","GATEWAY_TOKEN"]},"primaryEnv":"GATEWAY_URL"},"carnelian":{"runtime":"node","version":"1.0.0","sandbox":{"network":"localhost","resourceLimits":{"maxMemoryMB":128,"maxCpuPercent":25,"timeoutSecs":30},"env":{"GATEWAY_URL":"${GATEWAY_URL}","GATEWAY_TOKEN":"${GATEWAY_TOKEN}"}},"capabilities":["net.ws"]}} |
nodes-list
Manage paired nodes (status/describe/pending/approve/reject/notify/camera/screen/location/run).
Ported from CARNELIAN nodes-tool.ts.
Input
{
action: string;
node?: string;
requestId?: string;
title?: string;
body?: string;
command?: string[];
}
Supported Actions
| Action | Description | Required Fields |
|---|
status | List all paired nodes | - |
describe | Get node details | node |
pending | List pending pairing requests | - |
approve | Approve pairing request | requestId |
reject | Reject pairing request | requestId |
notify | Send system notification | node, title, body |
camera_snap | Take camera snapshot | node |
camera_list | List available cameras | node |
camera_clip | Record camera clip | node |
screen_record | Record screen | node |
location_get | Get device location | node |
run | Execute system command | node, command |
Output
Varies by action. Camera/screen actions return base64-encoded media:
{
base64: string;
width?: number;
height?: number;
facing?: string;
durationMs?: number;
hasAudio?: boolean;
fps?: number;
}
Notes
- CARNELIAN dependency: Gateway and paired node required for camera/screen/location/run actions
- Default gateway URL:
ws://127.0.0.1:18789
- Media is returned as base64 since the CARNELIAN worker does not have
saveMediaBuffer
- Node identifier can be
nodeId, displayName, or remoteIp
- All
node.invoke calls include idempotency keys
- No npm packages needed in the wrapper