🎯

pikvm

🎯Skill

from vm0-ai/vm0-skills

VibeIndex|
What it does

Remotely control computers via PiKVM by sending mouse movements, keyboard inputs, screenshots, and power commands through its REST API.

πŸ“¦

Part of

vm0-ai/vm0-skills(138 items)

pikvm

Installation

Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add vm0-ai/vm0-skills
Install PluginInstall plugin from marketplace
/plugin install notion@vm0-skills
Install PluginInstall plugin from marketplace
/plugin install slack-webhook@vm0-skills
git cloneClone repository
git clone https://github.com/vm0-ai/vm0-skills.git
πŸ“– Extracted from docs: vm0-ai/vm0-skills
11Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Remote KVM control via PiKVM REST API. Use for controlling remote computers through PiKVM - taking screenshots, moving mouse, clicking, typing text, pressing keys, keyboard shortcuts, scrolling, or power management.

Overview

# PiKVM Remote Control

Control remote computers via PiKVM REST API with mouse, keyboard, and power management.

When to Use

  • Take screenshots of remote machine
  • Move mouse and click
  • Type text or press keyboard keys
  • Execute keyboard shortcuts (Cmd+Space, Ctrl+Alt+Del, etc.)
  • Power control (on/off/reset)
  • Automate remote desktop operations

Prerequisites

```bash

export PIKVM_URL=https://pikvm.example.com

export PIKVM_AUTH=admin:admin

```

Get Credentials

  1. Access your PiKVM web interface
  2. Default credentials: admin:admin

> Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.

Coordinate System

Mouse coordinates use screen center as origin (0,0):

  • Negative X = left, Positive X = right
  • Negative Y = up, Positive Y = down

For 1920x1080 screen:

  • Top-left: (-960, -540)
  • Center: (0, 0)
  • Bottom-right: (960, 540)

---

Usage

Take Screenshot

```bash

bash -c 'curl -k -s -o /tmp/screenshot.jpg -u "$PIKVM_AUTH" "${PIKVM_URL}/api/streamer/snapshot"'

```

Type Text

Text must be sent as raw body with Content-Type: text/plain:

```bash

bash -c 'curl -k -s -X POST \

-H "Content-Type: text/plain" \

-u "$PIKVM_AUTH" \

-d "Hello World" \

"${PIKVM_URL}/api/hid/print?limit=0"'

```

Move Mouse

Move to absolute position (0,0 = screen center):

```bash

bash -c 'curl -k -s -X POST \

-u "$PIKVM_AUTH" \

"${PIKVM_URL}/api/hid/events/send_mouse_move?to_x=-500&to_y=-300"'

```

Mouse Click

```bash

# Press

bash -c 'curl -k -s -X POST \

-u "$PIKVM_AUTH" \

"${PIKVM_URL}/api/hid/events/send_mouse_button?button=left&state=true"'

# Release

bash -c 'curl -k -s -X POST \

-u "$PIKVM_AUTH" \

"${PIKVM_URL}/api/hid/events/send_mouse_button?button=left&state=false"'

```

Press Key

Press and release with state=true then state=false:

```bash

# Press Enter

bash -c 'curl -k -s -X POST \

-u "$PIKVM_AUTH" \

"${PIKVM_URL}/api/hid/events/send_key?key=Enter&state=true"'

bash -c 'curl -k -s -X POST \

-u "$PIKVM_AUTH" \

"${PIKVM_URL}/api/hid/events/send_key?key=Enter&state=false"'

```

Key Combo (e.g., Cmd+Space for Spotlight)

Press all keys in order, then release in reverse:

```bash

# Press Cmd

bash -c 'curl -k -s -X POST -u "$PIKVM_AUTH" "${PIKVM_URL}/api/hid/events/send_key?key=MetaLeft&state=true"'

# Press Space

bash -c 'curl -k -s -X POST -u "$PIKVM_AUTH" "${PIKVM_URL}/api/hid/events/send_key?key=Space&state=true"'

# Release Space

bash -c 'curl -k -s -X POST -u "$PIKVM_AUTH" "${PIKVM_URL}/api/hid/events/send_key?key=Space&state=false"'

# Release Cmd

bash -c 'curl -k -s -X POST -u "$PIKVM_AUTH" "${PIKVM_URL}/api/hid/events/send_key?key=MetaLeft&state=false"'

```

Mouse Scroll

```bash

bash -c 'curl -k -s -X POST \

-u "$PIKVM_AUTH" \

"${PIKVM_URL}/api/hid/events/send_mouse_wheel?delta_x=0&delta_y=-50"'

```

Get Device Info

```bash

bash -c 'curl -k -s \

-u "$PIKVM_AUTH" \

"${PIKVM_URL}/api/info"' | jq .

```

ATX Power Control

```bash

# Power on

bash -c 'curl -k -s -X POST \

-u "$PIKVM_AUTH" \

"${PIKVM_URL}/api/atx/power?action=on"'

# Power off

bash -c 'curl -k -s -X POST -u "$PIKVM_AUTH" "${PIKVM_URL}/api/atx/power?action=off"'

# Hard reset

bash -c 'curl -k -s -X POST -u "$PIKVM_AUTH" "${PIKVM_URL}/api/atx/power?action=reset_hard"'

```

---

Common Key Names

```

MetaLeft (Cmd), ControlLeft, AltLeft, ShiftLeft

Enter, Space, Escape, Tab, Backspace, Delete

ArrowUp, ArrowDown, ArrowLeft, ArrowRight

KeyA-KeyZ, Digit0-Digit9, F1-F12

PageUp, PageDown, Home, End

Equal (+), Minus (-)

```

API Endpoints Reference

| Endpoint | Method | Description |

|----------|--------|-------------|

| /api/streamer/snapshot | GET | Screenshot (JPEG) |

| /api/hid/print | POST | Type text (body: raw text) |

| /api/hid/events/send_mouse_move | POST | Move mouse (to_x, to_y) |

| /api/hid/events/send_mouse_button | POST | Click (button, state) |

| /api/hid/events/send_mouse_wheel | POST | Scroll (delta_x, delta_y) |

| /api/hid/events/send_key | POST | Key press (key, state) |

| /api/atx/power | POST | Power control (action) |

| /api/info | GET | Device info |

| /api/atx | GET | ATX status |

API Reference

  • Official docs: https://docs.pikvm.org/api/

More from this repository10