ShortlistLens
Structured website and review evidence for AI-assisted local-business shortlisting.
Crawler Summary
Remote desktop control via WebRTC. Connect to paired desktop agents, capture screens, send mouse/keyboard input, execute shell commands, and transfer files. --- name: desktop-control description: Remote desktop control via WebRTC. Connect to paired desktop agents, capture screens, send mouse/keyboard input, execute shell commands, and transfer files. metadata: openclaw: emoji: "π₯οΈ" requires: bins: ["node"] --- Desktop Control Skill Control remote desktops via WebRTC through the desktop-mcp-server. Architecture - **MCP Server**: Runs at /tmp/desktop-mcp-server, exposes t Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
desktop-control is best for general automation workflows where MCP and OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
Remote desktop control via WebRTC. Connect to paired desktop agents, capture screens, send mouse/keyboard input, execute shell commands, and transfer files. --- name: desktop-control description: Remote desktop control via WebRTC. Connect to paired desktop agents, capture screens, send mouse/keyboard input, execute shell commands, and transfer files. metadata: openclaw: emoji: "π₯οΈ" requires: bins: ["node"] --- Desktop Control Skill Control remote desktops via WebRTC through the desktop-mcp-server. Architecture - **MCP Server**: Runs at /tmp/desktop-mcp-server, exposes t
Public facts
4
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP, OpenClaw
Freshness
Feb 25, 2026
Vendor
Jagjerez Org
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/jagjerez-org/openclaw-skill-desktop-control.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Jagjerez Org
Protocol compatibility
MCP, OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
text
OpenClaw (this skill) β MCP Server (stdio) β WebRTC β Desktop Agent (remote PC)
bash
cd /tmp/desktop-mcp-server npm install && npm run build
bash
cd /tmp/desktop-mcp-server npm run start:agent
bash
node <skill_dir>/scripts/mcp-call.mjs <tool_name> '<json_args>'
bash
# Connect to a device
node <skill_dir>/scripts/mcp-call.mjs desktop_connect '{"deviceId":"abc-123"}'
# Check connection status
node <skill_dir>/scripts/mcp-call.mjs desktop_status
# Disconnect
node <skill_dir>/scripts/mcp-call.mjs desktop_disconnectbash
# Get latest frame (saved to /tmp/desktop-mcp-state/frames/)
node <skill_dir>/scripts/mcp-call.mjs get_frame '{"quality":80,"format":"jpeg"}'
# Get multiple frames
node <skill_dir>/scripts/mcp-call.mjs get_frames '{"count":3,"quality":60}'
# Get screen resolution and cursor position
node <skill_dir>/scripts/mcp-call.mjs get_screen_infoFull documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
Remote desktop control via WebRTC. Connect to paired desktop agents, capture screens, send mouse/keyboard input, execute shell commands, and transfer files. --- name: desktop-control description: Remote desktop control via WebRTC. Connect to paired desktop agents, capture screens, send mouse/keyboard input, execute shell commands, and transfer files. metadata: openclaw: emoji: "π₯οΈ" requires: bins: ["node"] --- Desktop Control Skill Control remote desktops via WebRTC through the desktop-mcp-server. Architecture - **MCP Server**: Runs at /tmp/desktop-mcp-server, exposes t
Control remote desktops via WebRTC through the desktop-mcp-server.
OpenClaw (this skill) β MCP Server (stdio) β WebRTC β Desktop Agent (remote PC)
/tmp/desktop-mcp-server, exposes tools via JSON-RPC stdiocd /tmp/desktop-mcp-server
npm install && npm run build
Install and run the agent package on the PC you want to control:
cd /tmp/desktop-mcp-server
npm run start:agent
The agent will display a pairing code. Use desktop_connect with the device ID to connect.
All tools are called via the helper script:
node <skill_dir>/scripts/mcp-call.mjs <tool_name> '<json_args>'
# Connect to a device
node <skill_dir>/scripts/mcp-call.mjs desktop_connect '{"deviceId":"abc-123"}'
# Check connection status
node <skill_dir>/scripts/mcp-call.mjs desktop_status
# Disconnect
node <skill_dir>/scripts/mcp-call.mjs desktop_disconnect
# Get latest frame (saved to /tmp/desktop-mcp-state/frames/)
node <skill_dir>/scripts/mcp-call.mjs get_frame '{"quality":80,"format":"jpeg"}'
# Get multiple frames
node <skill_dir>/scripts/mcp-call.mjs get_frames '{"count":3,"quality":60}'
# Get screen resolution and cursor position
node <skill_dir>/scripts/mcp-call.mjs get_screen_info
Frame images are saved to /tmp/desktop-mcp-state/frames/ as JPEG/PNG files.
Use the image tool to analyze captured frames.
# Move mouse
node <skill_dir>/scripts/mcp-call.mjs mouse_move '{"x":500,"y":300}'
# Click (left, right, middle)
node <skill_dir>/scripts/mcp-call.mjs mouse_click '{"x":500,"y":300,"button":"left"}'
# Double-click
node <skill_dir>/scripts/mcp-call.mjs mouse_click '{"x":500,"y":300,"button":"left","double":true}'
# Drag from A to B
node <skill_dir>/scripts/mcp-call.mjs mouse_drag '{"fromX":100,"fromY":100,"toX":500,"toY":500}'
# Scroll (positive=up, negative=down)
node <skill_dir>/scripts/mcp-call.mjs mouse_scroll '{"amount":-3}'
# Type text
node <skill_dir>/scripts/mcp-call.mjs keyboard_type '{"text":"Hello World"}'
# Press key combination
node <skill_dir>/scripts/mcp-call.mjs keyboard_press '{"keys":["ctrl","c"]}'
# Common shortcuts
node <skill_dir>/scripts/mcp-call.mjs keyboard_press '{"keys":["ctrl","a"]}' # Select all
node <skill_dir>/scripts/mcp-call.mjs keyboard_press '{"keys":["ctrl","v"]}' # Paste
node <skill_dir>/scripts/mcp-call.mjs keyboard_press '{"keys":["alt","tab"]}' # Switch window
node <skill_dir>/scripts/mcp-call.mjs keyboard_press '{"keys":["enter"]}' # Enter
# Hold/release key
node <skill_dir>/scripts/mcp-call.mjs keyboard_hold '{"key":"shift","action":"down"}'
node <skill_dir>/scripts/mcp-call.mjs keyboard_hold '{"key":"shift","action":"up"}'
# Read clipboard
node <skill_dir>/scripts/mcp-call.mjs clipboard_read
# Write to clipboard
node <skill_dir>/scripts/mcp-call.mjs clipboard_write '{"text":"copied text"}'
# Run command on remote desktop
node <skill_dir>/scripts/mcp-call.mjs shell_exec '{"command":"ls -la","timeout":10}'
# With working directory
node <skill_dir>/scripts/mcp-call.mjs shell_exec '{"command":"git status","workingDirectory":"/home/user/project"}'
# Text-to-speech on remote desktop
node <skill_dir>/scripts/mcp-call.mjs audio_speak '{"text":"Hello from Jarvis"}'
# Record from microphone (5 seconds)
node <skill_dir>/scripts/mcp-call.mjs audio_listen '{"duration":5}'
node <skill_dir>/scripts/mcp-call.mjs file_transfer '{"path":"/tmp/file.txt","direction":"download"}'
For visual tasks (click on button, fill form, etc.):
get_frame β saves image to diskimage tool to understand what's on screenExample automation loop:
get_frame β image analysis β mouse_click β get_frame β verify
| Variable | Default | Description |
|----------|---------|-------------|
| DESKTOP_MCP_DIR | /tmp/desktop-mcp-server | Path to MCP server repo |
| DESKTOP_MCP_STATE | /tmp/desktop-mcp-state | State/frame storage directory |
Captured frames are saved to /tmp/desktop-mcp-state/frames/ with timestamps.
Clean up periodically:
find /tmp/desktop-mcp-state/frames/ -name "*.jpg" -mmin +60 -delete
desktop_connect first with a valid device IDcd /tmp/desktop-mcp-server && npm run buildMachine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/contract"
curl -s "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Structured website and review evidence for AI-assisted local-business shortlisting.
Loan & mortgage calculator, compound interest, ROI, crypto prices, FX conversion for AI agents.
Search ReliefWeb humanitarian reports, disasters, jobs, training, and country profiles via MCP.
63 production tools for AI agents β one API key, pay per call in USDC (x402) or Stripe credits.
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP",
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-10-09T03:29:43.084Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile protocol:OPENCLEW|unknown|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Jagjerez Org",
"href": "https://github.com/jagjerez-org/openclaw-skill-desktop-control",
"sourceUrl": "https://github.com/jagjerez-org/openclaw-skill-desktop-control",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T01:46:47.505Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP, OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-25T01:46:47.505Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/jagjerez-org-openclaw-skill-desktop-control/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub Β· GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to desktop-control and adjacent AI workflows.